개인적으로 빨리 읽어보고 싶었던 책이였고, 미루고 미루던 책 후기를 이제야 올리게 되었다.
맨먼스 미신은 1975년에 처음 출판되었지만, 그 내용은 오늘날에도 여전히 유효하고 심오한 내용을 다루고 있다.
이 책의 저자 브룩스는 IBM에서 OS/360 운영체제 개발을 이끌었던 경험을 바탕으로 소프트웨어 프로젝트 관리의 어려움과 그에 따른 교훈을 공유하고 있다.
그 중에서 소프트웨어 개발에서의 시간과 인력 투입의 관계를 분석하며, 단순히 사람을 추가한다고 해서 생산성이 비례하여 증가하지 않는다는 '맨먼스 미신'을 강조하는 데 상당히 공감이 많이 됐다.
언제나 회사가 필요했던 인원은 단순히 개발자가 아닌 해당 회사가 다루는 도메인 또는 서비스의 성격을 잘 아는 사람이 필요한 사람이였었는데 이건 어디에나 동일하다는 것을 다시한 번 알게 됐다.
책은 총 15개의 에세이로 구성되어 있으며, 각 장은 소프트웨어 공학의 다양한 측면을 다루고 있는데 그 중에서 감명 깊게 봤던 부분들을 몇 가지 쓰자면
첫째로, 브룩스는 팀 규모가 커질수록 팀원 간의 커뮤니케이션 경로가 기하급수적으로 증가하여 커뮤니케이션의 복잡성이 높아진다는 점을 지적한다. 이는 프로젝트 관리에서 투명한 의사소통과 문서화의 중요성을 강조하는 부분으로, 팀 내에서 효율적인 커뮤니케이션 구조를 구축하는 것이 얼마나 중요한지 다시 한 번 깨닫게 되었다.
둘째로, 초기의 설계 결함이나 임시방편이 나중에 큰 문제로 이어질 수 있음을 경고하며, 처음부터 견고한 설계를 하는 것이 얼마나 중요한지를 언급한다. 이는 기술적 부채와 리팩토링의 중요성에 대한 통찰을 제공하는데, 실제로 프로젝트를 진행하면서 급하게 넘어간 부분이 나중에 더 큰 시간과 자원을 소모하게 만드는 경우를 많이 경험했다.
셋째로, 소프트웨어 개발은 예측하기 어려운 요소가 많아 시간 추정이 어렵다는 점을 강조한다. 이는 경험과 데이터를 통한 지속적인 개선이 필요함을 시사하는 부분으로, 프로젝트 관리에서의 시간 관리의 어려움을 공감할 수 있었다.
마지막으로, 소프트웨어 개발의 복잡성을 한 번에 해결할 수 있는 만병통치약은 없으며, 지속적인 노력과 개선만이 답이라는 메시지를 전달한다. 즉, '은탄환은 없다'는 것을 강조하는데, 이는 최신 기술이나 도구에만 의존하기보다는 기본에 충실하고 꾸준히 발전해나가는 자세가 필요하다는 것을 의미한다.
이러한 내용을 통해 소프트웨어 개발에서의 인간적인 요소와 팀워크의 중요성을 다시 한 번 생각하게 되었다. 특히, 프로젝트의 성공은 단순히 기술적인 능력만으로 달성되는 것이 아니라, 팀원 간의 원활한 의사소통과 협업, 그리고 초기 설계의 견고함에 크게 좌우된다는 것을 깨달았다.
결론적으로, "맨먼스 미신"은 소프트웨어 개발에 참여하는 모든 이들이 한 번쯤은 읽어봐야 할 필독서라고 생각한다. 비록 시간이 지나 기술은 발전했지만, 사람이 중심이 되는 개발 프로세스의 본질은 변하지 않았기 때문이다. 앞으로의 프로젝트에서 이 책에서 얻은 교훈들을 적극적으로 적용하여 더 나은 결과를 만들어내고 싶다.
이어서, 감명 깊게 보았던 부분들을 조금 더 상세히 살펴보고자 한다.
첫째로, 프로젝트가 지연될 때 인력을 추가하면 오히려 더 늦어진다는 역설적인 부분이다. 이는 '맨먼스 미신'의 핵심으로, 팀원 수가 늘어나면 커뮤니케이션 경로가 기하급수적으로 증가하여 오히려 생산성이 떨어질 수 있다는 것을 의미한다. 실제로 프로젝트에서 인원을 무작정 늘리기보다는 효율적인 팀 구조와 커뮤니케이션 방식을 고민하는 것이 중요하다는 것을 느꼈다.
둘째로, 소프트웨어는 제품이 아니라 지속적으로 발전하는 유기체로서의 특성을 가진다는 부분이다. 이는 소프트웨어 개발이 한 번 완성되고 끝나는 것이 아니라, 지속적인 유지보수와 개선이 필요하다는 것을 강조한다. 이에 따라 초기부터 견고한 설계를 하고, 기술적 부채를 최소화하려는 노력이 필요하다는 것을 깨달았다.
셋째로, 성공적인 시스템은 일관된 설계 철학을 가져야 한다는 점이다. 이는 프로젝트 전반에 걸쳐 설계 원칙과 방향성을 일관되게 유지하는 것이 중요하다는 것을 의미한다. 설계 철학이 흔들리면 개발 과정에서 혼란이 발생하고, 최종 결과물의 품질도 떨어질 수 있다는 것을 알게 되었다.
넷째로, 효율적인 팀 구조를 위해 각자의 역할을 명확히 하는 모델을 제시한다는 부분이다. 이는 팀원들이 자신의 역할과 책임을 명확히 이해하고 수행할 때 프로젝트의 효율성이 높아진다는 것을 강조한다. 특히 '외과팀' 모델은 이러한 팀 구성의 좋은 예시로 소개되고 있어 큰 인상을 받았다.
마지막으로, 커뮤니케이션과 문서화의 중요성을 강조한다는 부분이다. 이는 팀 내에서 정보가 원활하게 공유되고, 의사소통이 잘 이루어질 때 프로젝트의 성공 확률이 높아진다는 것을 보여준다. 문서화를 통해 지식을 공유하고, 커뮤니케이션을 통해 문제를 신속하게 해결하는 문화가 필요하다는 것을 느꼈다.
이러한 내용들을 통해 소프트웨어 개발에서의 인간적인 요소와 팀워크의 중요성을 다시 한 번 생각하게 되었다. 기술의 발전으로 도구와 환경은 바뀌었지만, 사람과 사람 사이의 협업이 핵심이라는 점은 변하지 않았다는 것을 깨달았다.
맨먼스 미신은 소프트웨어 개발에 참여하는 모든 이들이 한 번쯤은 읽어봐야 할 필독서라고 생각한다. 비록 시간이 지나 기술은 발전했지만, 개발 프로세스의 본질은 여전히 사람 중심이기 때문이다. 앞으로의 프로젝트에서 이 책에서 얻은 교훈들을 적극적으로 적용하여 더 나은 결과를 만들어내고 싶다.
'이것저것 > 책 후기' 카테고리의 다른 글
[바미] 클린 아키텍처 소프트웨어 구조와 설계의 원칙 (0) | 2024.07.24 |
---|---|
[바미] 책으로 시작하는 부동산 공부 (0) | 2024.07.23 |
[바미] 왕의 재정 2 (0) | 2024.07.17 |
[바미] 아브라함 카이퍼의 "영적주권"을 읽고 (0) | 2024.07.16 |
[바미] 세이노의 가르침을 읽고 (1) | 2024.06.26 |