주로 소프트웨어 공학 분야에 초첨을 맞춰서 객체지향, 디자인 패턴, 리펙토링, 소프트웨어 공학, XML 이라는 다섯 가지의 주제에 대해서 저자의 경험담 및 견해. 그리고 해당 기술에 대한 소개를 담고 있다. 소프트웨어 공학의 초급 교과서 같은 딱딱한 느낌을 주기도 한다. 해당 기술에 대해서 깊이 있게 설명하지는 않지만 기술적인 배경과 발전과정, 그리고 기술의 장단점에 대해서 설명하려다 보니 아무래도 저자가 서문에서 밝힌 대로 "누워서 팝콘이라도 먹으면서 편하게 보는" 책이라고 하기에는 좀 무겁지 않았나 싶다.
그래서 사실은 이 책의 포지셔닝이 좀 어정쩡한 느낌도 든다. 책에서 소개하는 주제에 대해서 공부하기에는 이론적인 설명의 깊이가 떨어지고 (물론, 이것은 다분히 저자가 의도한 바이지 저자의 내공이 부족해서라고는 생각하지 않는다), 그렇다고 가벼운 마음으로 읽기에는 어느정도의 집중력과 기술적인 배경지식이 필요하다.
애자일 (Agile), XP (Extreme Programmin), TDD (Test Driven Development) 와 같은 다양한 소프트웨어 공학 기법들을 소개하면서도 궁극적인 소프트웨어 공학의 목적은 팀에서의 원활한 의사소통을 통한 성공적인 프로젝트 수행에 있다는 명쾌한 설명은 큰 공감이 들었다.
프로야구에서 코치나 감독이 야구 이론을 많이 알고 있다거나 훌륭한 교습법에 정통해 있다고 하더라도 그들이 결국 성적을 내지 못하고 경기에서 이기지 못하면 아무짝에도 쓸모가 없다. 감독(코치) 은 자신이 알고있는 지식을 선수들에게 잘 전파하고 선수들과 적절한 의사소통을 통해 좋은 팀웍을 만들고, 이를 바탕으로 경기에서 이기고 좋은 성적을 내는 것이 궁극적인 목적인 것이다. 마찬가지로 소프트웨어 공학도 학문 자체를 공부하고 연구하는 것이 목적이 되어서는 안된다. 소프트웨어 공학을 팀의 리더나 프로젝트 관리자들이 공부해야 하는 것은 결국 그들이 소프트웨어 공학 기법을 활용하여 개발 조직내에서의 의사소통을 원활하게 하고, 프로젝트 리더(관리자)의 열정을 주변사람들에게 쉽게 전파시켜서 궁극적으로는 프로젝트를 성공시키기 위한 도구로서 사용해야 한다는
최근들어 SW 개발에서 의사소통이 점점 중요해지는 이유는 근래의 SW 개발은 골프나 피겨 같이 혼자서 하는 종목이 아니라 야구나 축구와 같이 팀을 이뤄서 하는 종목처럼 되었기 때문이다. 경기에서 승리하기 위해서는 단단한 팀웍과 팀원들 간의 의사소통이 굉장히 중요하듯이, 프로젝트가 성공하기 위해서도 개발 팀원 들간의 팀웍, 그리고 관리자와 개발자들 간의 의사소통이 매우 중요하다. 그리고 소프트웨어 공학은 이러한 의사소통을 도와서 프로젝트를 성공으로 이끌기 위한 도구에 불과하다는 명확한 설명에 절로 고개가 끄덕여 진다. 책에서 언급하는 다양한 주제에 대해서 큰 지식이 없는 사람들을 저자가 주 독자층으로 설정하고 저술한 느낌으로, 해당 내용들에 대해서 개론 수준의 지식을 쌓고, 저자의 깊이 있는 견해를 받아들이는데 문제가 없을만한 좋은 책이다.
'여러가지 리뷰 > Book' 카테고리의 다른 글
[Book] 거의 모든 IT의 역사 (2) | 2011.06.17 |
---|---|
[Book] More Joel on Software (0) | 2011.05.02 |
[Book] 착한 맥주의 위대한 성공, 기네스 (0) | 2011.04.20 |
[Book] 슈퍼 월급쟁이 (0) | 2011.04.10 |
[Book] 해커와 화가 (0) | 2011.03.12 |