유튜브와 블로그를 하다보면 여러 사람들에게 고민 상담 메일을 받게 된다.
그 중 자주 받는 질문은 다음과 같다.
"일정을 지키고자 버그가 많은 소프트웨어를 출시하는 것이 마음에 들지 않습니다.
어떻게 하면 일정을 연기해서 안정된 소프트웨어를 내는 것이 더 중요하다고 리더들을 설득할 수 있을까요?"
이런 고민에 대해 항상 윈도우 95의 프로그래머이신 "나카지마 사토시" 님의 이야기를 전달한다.
아래 문장은 나카지마 사토시님의 저서인 오늘, 또 일을 미루고 말았다 에 나온다.
"프로그래머에게 요구되는 것은 100점이 아닌 80~90점짜리 프로그램을 기한 내에 완성하는 일이다."
이렇게만 답변을 마무리 한다면, "퀄리티 보다 일정이 더 중요한 것인가" 라고 생각이 될 수도 있다.
그래서 항상 덧붙여 이야기하기를, "일정과 퀄리티는 어느 한쪽을 포기해야한다와 같은 시소 관계가 아니라, 어떻게 하면 아무리 급해도 항상 80~90점의 소프트웨어를 개발할 수 있는지가 중요하다." 라고 전달한다.
물론 나카지마 사토시님을 실제로 뵙진 못했지만, 아마도 같은 의도로 이야기를 하신게 아닐까하고 혼자 생각해본다.
이 답변 속에는 항상 다음 질문을 내포한다.
"그럼 어떻게 하면 항상 80~90점의 소프트웨어를 개발할 수 있나요?"
주변을 보면 급한 일정으로 일이 주어져도 항상 80~90점의 소프트웨어를 출시하는 프로그래머분들이 있었다.
옆에서 쭉 지켜보면서 찾아본 그분들의 공통점은 바로 경험과 학습으로 체득된 본인만의 소프트웨어 원칙들이 있었던 것이다.
예를 들어 누군가는 A 코드가 더 나을지, B 코드가 더 나을지 고민하면서 시간을 보낸다면, 그 분들은 A 코드와 B 코드 중 현재 상황에 더 적합한 코드를 판별하는 기준과 원칙들이 있어 고민 없이 바로 선택을 할 수 있었던 것이다.
대부분의 개발에서는 이렇게 기준과 원칙을 통해 빠르게 결정을 내리고 진행하면서, 정말 중요한 설계와 선택이 필요할때 더 깊게 시간을 사용한다.
그러다보니 당연히 항상 일정과 퀄리티 양쪽을 잡을 수 있었던것 같다.
대니얼 J. 레비틴의 정리하는 뇌 에서는 머릿속이 정리 되면 크게 애쓰지 않아도 좋은 의사 결정을 할 수 있다고 이야기 한다.
본인만의 원칙들이 세워져 고민거리의 숫자가 줄어들수록 약속된 시간에 약속된 품질의 소프트웨어를 출시하기가 쉬워지는것 같다.
그럼 그 잘하는 분들의 소프트웨어 원칙들은 대표적으로 무엇이였을까?
여기까지 인트로였습니다…!
이번에 존경하는 8분의 리더분들 (박성철 (컬리), 강대명 (레몬트리), 공용준 (카카오), 김정 (코드스쿼드), 박미정 (무신사), 박종천 (몰로코), 이동욱 (데이블), 장동수 (데이원컴퍼니))과 함께 "개발자 원칙" 이라는 책을 집필했다.
👉 교보문고 : https://bit.ly/3EV7gqy
👉 알라딘 : https://bit.ly/3iuDO39
집필 주제는 여러 테크리더분들에게 "코드, 협업, 커리어 관리 등 개발자로 성장하고 더 나은 제품(서비스)을 만드는 데 도움이 된 원칙/철학/기준" 들을 모아보자는 것이였다.
이런 주제 자체가 너무 부담스러워서 보통은 거절을 하는 편이다.
하지만 공저에 참여하는 리더분들을 워낙 평소부터 존경하고 있던터라 이번 기회를 놓치고 싶지 않아서 참여했다.
감히 내가 누구에게 개발자 인생의 조언, 철학, 원칙등을 이야기할 수 없다.
다만, 나 외 다른 리더분들의 이야기가 참 좋았고,
내 이야기는 평범한 엔지니어가 10년쯤 지나다보니 자주 적용하는 원칙이 이런게 있더라 같은 유형으로 본다면 괜찮을것 같다.
이런 유형의 책은 앞으로도 꾸준히 나왔으면 한다.
그래야 미리 미래를 다녀온 선배님들의 경험을 내 것으로 가져오지 않을까 싶다.