솔직히 말하면 이 책을 몰랐다. 2005년에 나온 책인데, 나름 개발자로 살아온 사람이 이걸 모르고 있었다는 게 좀 민망하긴 했다. 지인이 선물로 줬고, 그냥 책장에 꽂아뒀다가 어느 주말에 펼쳤는데 결국 이틀 만에 다 읽어버렸다.
조엘 스폴스키가 자신의 블로그에 연재하던 글을 묶은 책이다. 소프트웨어 개발과 경영, 채용, 팀 운영에 걸친 이야기를 특유의 직설적인 문체로 풀어낸다. 처음 몇 장을 읽다 보면 “이 사람 말을 정말 잘하네”라는 생각이 든다. 논리가 명쾌하고 예시가 구체적이다. 블로그 글이라서 그런지 읽히는 속도가 빠른데, 그렇다고 내용이 가볍지는 않다.
조엘 테스트
이 책에서 가장 유명한 부분이 조엘 테스트다. 소프트웨어 팀의 개발 환경을 12개 항목으로 평가하는 체크리스트인데, 항목 자체는 단순하다. 소스 컨트롤을 쓰는가, 한 번의 빌드로 배포할 수 있는가, 버그 DB를 쓰는가 같은 것들이다. 지금 기준으로 보면 당연한 얘기 같지만, 2005년 시점에 이걸 명문화한 게 의미 있었다고 본다. 그리고 솔직히, 지금 내가 있는 팀도 전부 충족하고 있다고 자신 있게 말하기 어려운 항목이 있었다.
개발자를 관리한다는 것
책에서 인상 깊었던 부분 중 하나는 관리자가 개발자를 어떻게 대해야 하는가에 관한 얘기다. 조엘은 좋은 개발자에게는 개인 사무실과 방해받지 않는 환경이 필요하다고 강하게 주장한다. 집중이 깨지면 다시 몰입 상태로 돌아가는 데 시간이 걸린다는 이유다. 오픈 오피스가 대세가 된 지금도 이 주장은 여전히 유효하다고 생각한다. 오히려 더 절실해졌을 수도 있다.
채용 이야기도 기억에 남는다. 그는 “똑똑하고 일을 처리하는 사람”을 찾는다고 했다. 단순해 보이는 기준인데, 생각할수록 적확하다. 기술 스택이나 경력보다 이 두 가지가 실제로 중요하다는 걸, 일을 오래 할수록 더 많이 느낀다.
오래된 책이지만
2005년 책이라 오래됐다. 애자일이나 클라우드, 현대적인 개발 관행 같은 것은 당연히 없다. 그 시대의 언어와 도구 이야기가 나오면 잠깐 낯설기도 하다. 그런데 이상하게 핵심적인 부분은 지금 읽어도 낡은 느낌이 없다. 사람을 다루는 방식이나, 좋은 소프트웨어를 만들기 위한 기본적인 태도 같은 것은 시간이 지나도 별로 안 변하는 것 같다.
이 책을 몰랐다는 게 어떤 면에서는 다행이었다. 더 일찍 읽었다면 좋았겠지만, 지금 읽었으니까 지금 내 상황에 맞게 와 닿는 부분들이 있었다. 선물해준 사람 덕분에 읽게 됐고, 읽길 잘했다.