『소프트웨어 장인』을 읽고

『소프트웨어 장인』을 읽고
Photo by Nick Karvounis / Unsplash
  • 한줄평: 열정이 결국 제일 중요하다.
  • 추천도: 2.5/5
소프트웨어 장인 : 알라딘
소프트웨어 장인에 대한 이야기. 프로그래머와 프로그래밍 관련 팀 또는 조직에 도움이 될만한 이야기를 풀어 놓았다. 생산성이 높은 프로페셔널, 자신의 일에 자부심을 갖는 프로페셔널로 도약하기 위해 필요한 계…

이 책은 2022년 4월에 선배한테 추천받아서 읽었던 책이다. 오랜만에 읽고 싶다는 마음이 들어서 읽어보았는데 나름 다양한 생각을 들게 해주었다. 소프트웨어 개발이 내게 주는 의미가 무엇일까. 나는 앞으로도 소프트웨어 개발자가 되고 싶은가? 요즘 진로에 대해 고민이 많아지는 것 같다. 내가 정말 지금 이 일을 좋아하고 있는건지 앞으로도 계속 잘 해내고 싶고 더 성장하고 싶다는 욕구가 생기는지 나 자신을 돌아보고 있는 중이다. 그 시간 동안 들었던 마음 중 하나는 ‘뭐가 되었든 SW 개발은 계속 하지 않을까?’ 하는 마음이었다. 무언가 개발을 하는 걸 좋아하기도 하고 코딩하는 것 자체도 좋아하기 때문이라는 생각이었다.

더 나은 소프트웨어 엔지니어가 되기 위해서 내가 무엇을 앞으로 해야할까?에 대한 답을 얻기 위해서 이 책을 읽었고 아쉽게도 명확한 답은 얻지 못했지만 나름 인상깊은 내용들이 있었다.

우선, 애자일이란 무엇일까? 스타트업과 뗄 수 없는 존재인 애자일은 나 스스로 정의하기론 ‘최대한 빠른 피드백 루프를 도는 것’이다. 책을 읽으면서 이런 정의를 내릴 수 있었다. 제품이 애자일하려면 제품에 대한 피드백이 빨라야한다. 제품에 대한 피드백이 빠르기 위해서는 고객과 최대한 맞닿아서 제품에 대한 고객 의견을 많이 들어야 한다. 팀이 애자일하게 운영되려면, 팀 내에 소통도 빠르게 이뤄져야 하고 업무 방식에 대한 피드백을 받고 변화하는 과정들이 더 주기적으로 이뤄지면 된다. 이 목적 외에 모든 것들은 수단이 된다. 스탠드업 미팅도 수단이고 스프린트도 수단이다. 꼭 그것들을 지켜야만 팀이 애자일하게 되는 것은 아니다. 그러니 더 중요한 것은 우리 팀이 애자일하게 되려면 어떤 방식을 팀에 도입해야할까?를 먼저 고민하는 것이다. 그 고민의 답이 스프린트라면 그렇게 진행하는 것이다.

이 책에서 TDD를 굉장히 많이 강조한다. 뛰어난 개발자라면 TDD를 함으로써 프로세스 속도가 느려지지 않는다고 말을 하지만, TDD를 잘 모르는 내 입장에선 TDD를 도입하기에는 걱정이 되긴한다. 테스트 중요한 거 누가 모르는가. 테스트 당연히 중요하지만 제품 개발을 하다보면 뒷전으로 밀리기 마련이다. 그리고 솔직히 정말 그렇게까지 테스트 주도 개발이 필요할까? 라는 의문이 이 책을 다 읽고나서도 제대로 해결되지 않은 것 같다. 워낙 우리 팀이 소규모기도 하고 레포 안에 코드가 몇십만줄이지도 않으며 레포를 관리하는 총 개발자가 열명이 채되지 않기 때문에 아직 테스트의 중요성을 쉽게 깨닫지 못하는 것 같다. 근데 그럼에도 한번 해볼 수 있는 거는 단위 테스트 개발인 것 같다. 요즘 Claude가 너무 잘 나와가지고 Cursor로 개발할때 Seamless하게 자주 사용하는데 한번 Claude한테 함수에 대한 유닛 테스트 코드를 짜달라고 했었는데 잘 짜줬고 그 테스트를 통해 명료하지 않은 코드를 수정할 수도 있었다. 이런 느낌으로 레포에 테스트 코드를 가볍게 추가해볼 수 있지 않을까 싶다.

열정, 이 단어 하나가 모든 것을 요약한다. 소프트웨어 장인은 소프트웨어 개발과 자신의 직무에 열정적이다.

더 나아지고 하는 마음과 열정이 없다면 아무리 좋은 기회가 와도 잡아낼 수 없다. 성장할 수 없다. 열정이 가장 중요하다. 열정이 지금 떨어져 있는 상태라면, 정말 어떻게하면 다시 열정적으로 일해낼 수 있을지 끊임없이 고민해야 한다. 내 안에 열정이 계속 더 타올랐으면 좋겠다. 열정적으로 일하고, 해내고 싶다.