The Nature of Software Development 를 읽고..

책을 읽고 이렇게 독후감(?)을 쓰는게 얼마만인지.. 초등학교 방학 숙제로 독후감을 쓴 이후 처음인 것 같다.

책을 그 동안 많이 읽은건 아니지만, 그래도 나름 책을 조금씩은 읽었는데.. 내가 그동안 어떤 책을 읽었고, 어떤 내용들을 배울 수 있었는지.. 시간이 흐르면 다 잊혀지는것 같아 이번에는 이렇게 글로써 내가 읽은 책에 대해 조금 끄적거려 보려 한다.

첫 느낌

"엇! 왜 이렇게 얇아?" 이것이 내가 처음 책을 받아들고 들었던 생각이다. 아마 이 책을 처음 받고 많은 분들이 나와 비슷한 생각을 하지 않았을까.. 책을 펼쳐들고 또 한번 놀랐던건(놀랐다기 보단.. 어라? 느낌 정도..ㅎ) 다른 애자일 관련 서적과는 다르게 삽화가 아주 많아서 일단 "부담없이 읽을 수 있겠구나~" 였다.

결론적으로.. 2~3일이면 다 읽을줄 알았던 이 책을 완독 하는데 2주 정도 걸렸지만, 이건 오롯이 개인적인 사정으로 시간이 많이 걸린거지 절대 책이 부담되어 그런것은 아니었다.

저자가 말하려고 하는 것은?

이 책은 앞에서 잠깐 언급했지만 애자일에 대해 얘기한다. 이 책을 알기전엔 몰랐지만 책의 저자가 애자일 선언문에 참여한 17명 중에 한 명이며, 익스트림 프로그래밍의 창시자 중 한 명이다. 이러한 화려한 경력을 가지신 분이 책을 썼다면 무슨 말을 하고 싶어할지 대충은 짐작가지 않는가? 당연히 효율적인, 합리적인 소프트웨어 개발에 대한 얘기이며, 이는 결국 애자일이다.

책도 두껍지 않고, 부담스럽지 않아 애자일 입문서로 좋을 것 같다. 하지만 저자가 이 책에서 말하려는 것이 "이것이 애자일이다!" 같이 애자일에 대한 정의는 아니다. 그것보다는 어떻게 효율적으로 + 완성도 높은 소프트웨어를 개발할 수 있을까? 에 더 집중하고 있다. (사실 이게 애자일에서 말하는 핵심인 것 같긴 하지만.. 내가 애자일 전문가는 아니라 잘 모르겠다 ^^;;)

이 주제에 대해 저자가 말하고 싶어하는 큰 맥락은 다음과 같이 요약할 수 있을 것 같다.

  • 피처(feature) 단위 개발
  • 항상 소프트웨어를 가치있는 상태로 유지하기
  • 그리고 조직 관리

또한, 일방적으로 정보를 알려주기 보다는 독자가 실제 소프트웨어를 개발하면서 경험 했던 것들을 바탕으로 어떻게 하면 좋은 소프트웨어를 개발할 수 있을지.. 생각할 거리(?)들을 툭툭~ 던져 준다.
저자가 독자에게 하는 질문들을 토대로 그 질문들에 대한 답을 찾다보면 독자는 자기만의 노하우를 터득할 수 있는 좋은 기회가 될 것이라 생각하지만.. 개인적으로 거기까진 귀찮아서 패스~ ㅋ

어떤 사람들이 읽으면 좋을까?

이 책을 읽는다고 해서 하루 아침에 좋은 소프트웨어를 개발할 수 있는 것은 물론 아니다. 다만, 저자의 경험과 지식을 조금 전수(?) 받을 수 있는 기회를 가질 수 있다.

하지만, 이 지식이라는 것은 결국 활용을 해봐야 본인의 것으로 만들 수 있는 것임을 많은 사람들이 알고 있을 것이다.

지금보다는 좀 더 효율적으로 완성도 있는 소프트웨어를 만들고 싶은 팀이라면, 팀원 모두(프로젝트 관리자 + 개발자 + 기획자) 이 책을 읽고, 거침없는 토론의 시간을 가진다면, 그 팀에 맞는 방법들을 찾아나가는데 이 책의 지식이 큰 도움이 될 수 있으리라 확신한다.

이 책 뿐만 아니라, 시중에는 좋은 소프트웨어를 만들기 위한 지침서들이 아주 많이 나와있다. 내가 이 많은 책들을 다 아는 것은 아니라 장담하긴 힘들지만, 아마도 이 책이 다른 많은 지침서들 중에서 좋은 입문서 정도는 되지 않을까 생각한다.