카테고리 없음

[북리뷰] 소프트웨어 장인 - 세상을 바꾸는 개발자

zoey 2022. 4. 12. 22:57

개발자 양성 교육을 5년째 하면서 자주 듣는 질문들이, '개발자가 부족하다는데 왜 그렇다고 생각하시나요? 정말 그런가요?', '정말 6개월이면 개발자가 될 수 있나요?'와 같은 질문이다. 개발자 품귀 현상, 개발자 연봉 1억 등 자극적인 기사들도 많이 보인다.
부스트캠프는 대학과 현업 간의 간극이 크다는 문제 인식에서 시작되었다. 그 갭을 메꿔서 실무에 바로 뛰어들 수 있는 우수한 인재를 양성하기 위해 시작했다. 교육을 시작한 2016년에도, 사실 10년 전에도 개발자는 부족했다.

자고나면 연봉 2배…SW개발자‘ 귀한 몸’

스마트기기 급증으로 IT상품 각광게임업체·대기업 콘텐츠사업 강화턱없이 부족한 개발자 모시기 전쟁중소 보안업체는 인력 이탈 골머리지난해까지 한 중소 보안업체에서 보안솔루션과 애플리

biz.heraldcorp.com

엊그제 본 것 같은 익숙한 헤드라인인데, 놀랍게도 2012년 5월에 나온 기사다. '요즘 개발자가 취업이 잘된다던데 나도 개발자로 취업해볼까?'라고 막연하게 생각하거나 이제 막 발을 딛고 진로를 고민하고 있는 사람이라면 이 책을 추천하고 싶다. 물론 세상의 모든 개발자가 소프트웨어 장인이 되어야 하는 것은 아니다. 하지만 내가 만나본 실력 있고 인정과 존경을 받는 분들은 책에서 설명하는 태도와 모습을 갖추고 있거나 이를 위해 끊임없이 노력하는 분들이었다. 장인정신까지 가지 않더라도 개발자라는 직업은 끊임없이 학습하지 않으면 도태될 수밖에 없는 속성을 가진 커리어인 만큼 본인의 성향과 적성에 맞는지 꼭 확인해보길 바란다.


이미지 출처: yes24


평소에 많은 개발자분들이 공통적으로 얘기해서 공감이 되었던 문장들을 꼽아봤다.
#읽을 수 있는 코드 Readable Code

"동작하는 소프트웨어라고 해서 잘 만들어진 애플리케이션이라고 할 수 있을까? 좋은 소프트웨어라면 그 애플리케이션이 얼마나 오래되었든 간에 개발자가 쉽게 이해할 수 있어야 한다"

교육을 기획할 때 여러 전문가 분들에게 자문을 구하는데 늘 얘기하시는게 코드가 'readable' 해야 한다는 거다. 여기에는 많은 의미가 담겨 있다. 변수명을 정하는 것부터 코드를 깨끗하게 관리하는 것, 유지보수 비용을 최소화할 수 있는 코드를 짜는 것까지. 개발은 혼자 하는 게 아니다, 누가 봐도 이해할 수 있는 코드를 작성해야 한다는 얘기를 늘 들었다.

#단위 테스트

"단위 테스트는 우리가 코드를 작성하는 방식에 이미 녹아있는 것이지 별도의 작업이 아니다."

단위 테스트도 정말 많이 강조되었다. 단위 테스트를 하지 않고 코드 리뷰를 요청하는 건, 문제를 풀고 스스로 검토도 하지 않은 채 채점을 넘기는 것과 같은 것이라고 했다(이 예시가 딱 맞지 않을 수도 있다). 내가 테스트 하지 않고 넘기면 다른 사람이 테스트하고 디버깅하는데 더 많은 시간을 쓰게 된다고. 당연한 것 같지만, 생각보다 개발을 시작하는 많은 사람들이 모르고 있는 부분이라고 한다.

#고객 가치

"고객이 소프트웨어 프로젝트를 통해 무엇을 성취하려 하는지 반드시 이해해야 한다."

책에서 꾸준하게 강조하고 있는 것 중 하나가 '고객에게 가치를 제공해야 한다'는 것이다. 더 나은 방법을 찾아 고객을 만족 시켜야 하고, 개발팀 차원에서 비즈니스를 도울 방법을 찾아 실행해야 하며, 고객이 소프트웨어 개발을 통해 무엇을 성취하려는지 반드시 이해해야 한다고 말한다. 개발자가 아니라서 잘 모르겠지만, 어떤 일에서든 궁극적으로 고객에게 가치를 주는 것이 중요하다는데 공감한다.
첫 사회 생활을 시작했을 때였다. 신입사원 교육을 마치고 본사에 갔는데 인사팀 상무님이 물어보셨다. '너의 고객은 누구니?' 연구소에서 거래하고 있는 기업들의 이름을 댔더니, '네가 보고를 하는 상사도, 옆에 있는 동료도, 동기도 고객이 될 수 있다. 문서 하나를 건네도 고객을 생각해야 한다.'라고 말하셨다. 사회생활을 시작한 지 10년이 다 되어서야 이 말의 뜻을 조금은 알 것 같다. 고객을 중심에 놓으면, 기존의 방법이나 방식에 얽매이지 않고 문제 해결에 집중하여 가치를 만들어낼 수 있지 않을까.


소프트웨어로 가치를 만들고, 지식과 경험을 아낌없이 나누는 개발자들을 리스펙 한다.
소프트웨어 장인 정신 운동의 가장 큰 목적은 소프트웨어 개발이라는 업의 수준을 기술적, 사회적으로 높이는 것이라고 한다. 앞서간 많은 개발자들이 길을 닦아 놓았다. 그 길에 새로 발을 내닿는 예비 개발자들이 잘 이어갈 수 있도록 우리가 할 수 있는 일들, 해야 하는 일들을 하나씩 해나가야 겠다.