정말 최근에 읽었던 책 중에서 최고의 책이었다. 처음에 읽기 시작할때는 이런 책인 줄 예상하지 못했다. 단순한 소프트웨어 개발에 관한 이야기 일 줄 알았다. 소프트웨어 개발에 관한 이야기는 맞았다. 하지만 내용은 '단순'하지 않았다. 이 책은 소프트웨어 개발 역사의 처음부터 되짚어 보면서 현재 관찰하고 있는 Chandler 개발 프로젝트를 서술하고 있다.
그동안 인간의 역사에서 수많은 IT프로젝트들이 있었다. 많은 프로젝트의 결과는 참혹했다. 프로젝트가 중도 폐기 되는 경우가 많았고, 그마나 힘들게 끝마친 프로젝트에도 처음 생각했던 기능이 들어가지 않는 경우가 많다. 우리가 현재 굉장히 많은 유용한 소프트웨어를 사용하고 있는데, 그 소프트웨어들을 수많은 프로젝트중에서 어렵에 살아남은 소프트웨어들일 뿐이다. 역사는 반복되어 왔다. 실패한 프로젝트로부터 사람들은 새로운 것을 배웠다고 생각한다. 하지만 프로젝트를 시작하면 그 실수는 되풀이 된다. 이 책은 이러한 수많은 반복되는 실수들과 그 과정에서의 사람들의 소프트웨어 개발에 대한 철학을 볼 수 있다.
소프트 웨어 개발에 관한 책은 많다. 이 책의 유별난 점이라면 굉장히 포괄적으로 소프트웨어 개발을 다루고 있다는 것이다. 인류의 역사에서 사용된 거의 모든 개발론들을 포함하고 있다. 이 책을 읽으면서 정말 놀라웠던 것은 소프트웨어 개발 방법론은 컴퓨터 역사의 초기인 1950년대와 비교해서 크게 달라진것이 없고, 오히려 그때의 개발 방법론으로 돌아가려는 사람들도 있다는 것이다. 오랜 시간동안 사람들은 어떻게 해야 소프트웨어를 빠르고 안전하게 개발할 수 있는 가에 대한 생각을 해 왔다. 많은 개발자들은 교량건설을 하는 것처럼 소프트웨어를 개발하고 싶어했다. 교량을 건설할때는 먼저 설계도를 만든다. 그리고 그 설계도대로 교량을 건설한다. 그러면 그 교량은 빠른속도로 건설될 수 있고 굉장히 안전하다. 소프트웨어 개발은 그렇지 못하다. 계획서는 수시로 변경되며 결과물도 안정되지 못하고 수많은 버그로 얼룩져 있다.
이 책에서 다루는 챈들러 프로젝트는 실패한 프로젝트로 생각된다. 애초 일정을 훨씬 뛰어넘어서 거의 5년이라는 세월이 흘러서야 1.0버전이 릴리스 됬기 때문이다. 이 책의 저자는 처음에 이 프로젝트가 길어봐야 2년이라고 생각했었다. 하지만 이렇게 프로젝트 기간이 길어지면서 저자는 수많은 생각을 하게 되게 었다. 그래서 이렇게 훌륭한 책이 나올 수 있었던것 같다. 이 책에서는 저자의 소프트웨어 개발에 되한 자신의 고찰을 찾아 볼 수 있다. 저자는 소프트웨어를 조금 다뤄본 적은 있지만 개발자는 아니다. 그래서 프로젝트회의에서 사람들이 기술적인 말을 하면 전혀 알아 듣지 못한다고 한다. 하지만 이 사람은 그 어떤 개발자 보다도 소프트웨어 개발론에 대해 전문적이라고 생각한다.
소프트웨어는 공학이 아니라 예술이라는 말이 있다. 소프트웨어는 새로운 것을 창조해 내는 것이다. 나는 소프트웨어 개발이 교량 건설같은 것과 비교할 수 없다고 생각 된다. 비교된다는 자체가 웃긴 것이다. 교량은 이미 만들어진 교량을 참고해서 거의 비슷한 모양으로 만든다. 딱히 새로운 필요가 없다. 하지만 소프트웨어는 새롭지 못하면 도태된다. 창조를 해야한다. 이것은 예술이다. 물리, 화학, 수학같은 자연과학 같이 완벽한 법칙으로 이루어져 있지 않다. 건축이나 반도체 제조같이 고정된 특정 프로세스를 통해 만들어지는 것도 아니다. 미술가나 음악가가 여러가지를 시도해 보고 여러 실패를 해보면서 새로운 것에 도전하는 것이다. 소프트웨어 개발은 멋있다. 재밋고, 창조적이며 새로운 세계를 만들어 갈 수 있다. 그들에게는 꿈이 있다. 소프트웨어를 만드는 것은 개발 방법론이 아니라 이런 꿈을 만들어 가는 의지라고 생각한다.
나는 정말 이런 최고의 책을 읽은것에 대해 굉장한 행운이라고 생각한다. 이런 책을 써준 스콧 로젠버그 씨에게도 굉장히 감사하다. 이 책은 내가 소프트웨어를 개발할때마다 나를 자극해줄 것이다.
댓글 없음:
댓글 쓰기