소위 프로그래머라면 한번 재미로 읽을 수 있는 이야기거리인것으로 보인다.
물론 저자의 주장과는 달리 이 책을 소설로 볼 수는 없고, 에세이라고 봐야 할 것 같다. 그리고 여러 장르가 혼합되어 있지만, 사례를 통해서 프로그래머를 교육시키는 책으로 봐야 할 것 같다.
이 책에서는 저자의 경험을 통하여, 개발 프로젝트에서 일어나고 있는 사례를 통하여 꼭 이런 것은 해야 한다고 주장하는 것이 있다. 여러가지가 있겠지만 소프트웨어 개발자를 간에 코드리뷰를 통하여 개발 품질을 향상시켜야 한다는 것과, 유닛테스트를 통하여 문제의 정확한 원인과, 소프트웨어 품질의 완성도를 높혀야 한다는 것이다. 이것은 한국의 개발자에게도 맞는 일일 것이다.
가장 공감가는 것은 잘 모르면 손되지 마라는 것이다. 실제 현업에서는 이브와 같은 사람이 존재하여 문제를 더 크게 만드는 사람이 존재하기도 하고 (반드시 이렇게 되지 않도록 차단하는 문화를 만들어야 하지만) 마이크처럼 자기가 맡은 문제를 책임지 못하고 남에게 넘기는 형태, 조금 실력있다고 무정부주의자처럼 구는 여러 형태가 존재한다. 어쨌던 모르는 것은 손되지 말고 물어서 하고, 철저한 검증이 필요하다.
개인적으로는 소프트웨어 개발이 예술이라고 생각하지는 않고, 철저한 협업이라고 생각하기에 전체가 공감할 수 있는 룰과 그 룰에 잘 적응하는 개인이 필요한 것 아닌가 한다. 이것을 문화라고 부르고 싶다. 이 책은 이런 인간들과의 관계에 대한 사례가 비교적 잘 표현하고 있는 것이 아닌가 한다.
하지만 이책의 아쉬움은 에세이류로 흘러서, 소프트웨어의 전체 부분을 다 그려내지 못하는 부분이 있다. 가령 요구사항에 대한 문제점과 요구 사항 분석등에 대한 부분등이 빠져 있으며, 프로젝트에서 힘든 요소중에 하나인 범위 통제(사양 변경)에 대한 요소들, QA등 다른 부서와의 협력과 갈등 등은 빠져있다. 그리고 좋은 설계가 무엇인가 하는 부분이 부족한 것도 아쉽다. 하지만 현업 소프트웨어 개발자라면 시간날 때 한번 읽어보면 아 이런면도 있구나라고 다시 한번 생각할 수 있는 좋은 책이라고 생각한다.