[Review] Practices of an Agile Developer
예전에 쓴 Are U a Digital Nomad?라는 글에서 IT업종에 근무하는 사람들 유목민과 같다고 쓴 적이 있다. 손 끝 하나만 까닥하면 세계 반대편에서 일어나는 일도 알 수 있는데, 말 타고 다닌던 유목민과 비교를 하냐고 생각할 수도 있지만… 우리는 기술적으로 많은 발전을 했을 뿐, 새로운 목초지를 찾아 나서야 했던 유목민과 비슷하게 내년에 무엇을 하고 먹고 살지, 10년 후에는 무엇을 할지 예측할 수 없는 참으로 고단한 삶이다. 이에 반해 농사를 짓고 살았던, 농경민들의 삶의 주기는 1년이었다. 따라서 1년이 반복되면, 다시 또 다른 1년이 반복되는 삶이었기에, 10년 후에도 20년 후에도 농경민들은 자신이 어떤 삶을 살지를 대략적으로 예측해 볼 수 있었다.
농경민의 삶에서 중요한 것은 경험이다. 언제 파종을 해야 하는지, 언제 수확을 해야 하는지, 반복적인 삶을 통해서 경험을 축적하는 것이 농경 생활의 핵심이었다. 그렇기 때문에 마을에서 수 십년간 농사를 지어 왔던 어르신들은 말 그대로 농경 시대의 database(혹은 guru) 였다. 우리가 몸 담고 있는 IT 분야에도 예전 농경민이 갖추어야 하는 경험이 중요한 요소이지만, 눈만 감았다 뜨면 빛의 속도로 변하는 이 세계의 기술 트랜드를 쫓아가는 것이 더 중요하다.(그렇기 때문에 농경사회처럼 나이 먹는다는 것이 인정받음을 뜻하지 않는다.한편으로 서글픈 세상이다.) 따라서 이 시대는 농경민으로써 갖추어야 하는 순환적인 삶의 자세보다는, 언제라도 쉬고 있던 천막을 접고 가축들과 함께 새로운 목초지를 찾아 나설 수 있는 유목민의 기민함(agility)이 필요하다.

S/W 개발 방법론에는 크게 두가지 축이 있다. 즉, 프로세스 주의와 개발자 주의다. 프로세스 중심주의로 대표되는 것으로 CMM, RUP 등이 있다. 이에 반해 개발자 중심 주의라 볼 수 있는 것은 XP가 있다. 물론 둘 다 장단점이 있고, 포커스를 어디에 두느냐에 따라서 프로세스 주의와 개발자 주의로 나뉘지만 지향점은 더 좋은 소프트웨어를 빠른 시간에 전달하려는데 있다. 그러나 유연성 측면에서 바라본다면, 아무래도 개발자 주의가 프로세스 주의보다 우수하다. 따라서, 시장환경과 고객의 니즈가 수시로 바뀌는 소규모 프로젝트에는 개발자 주의에 대표적인 XP같은 Agile 방법론이 좋은 효과를 보인다.
오늘 Review할 책은 Agile 방법론의 주요 Practice를 쉽게 정리해 놓은 Pragmatic bookshelf의 “Practices of an Agile Development”(이하 Practices)다. Practices를 처음 읽었을 때 받은 느낌은 간결함이었다. 이미 XP를 현업에 적용했거나, XP의 전반적인 Practice를 알고 있는 사람에게는 큰 느낌을 주기는 어렵지만, 아직 Agile한 방법론을 적용해 보지 않았거나, 본인이 몸 담고 있는 프로젝트의 프로세스가 크게 도움이 안된다고 느끼는 이들에게는 많은 시사점을 선사해 줄 것이다. 책은 총 9개의 장으로 구성되어 있다.
- Agile Software Development
- Beginning Agility
- Feeding Agility
- Delivering What Users Want
- Agile Feedback
- Agile Coding
- Agile Debugging
- Agile Collaboratioin
- Epilogue : Moving to Agility
9개의 Chapter는 다시 ”Agile한 팀 구성하기”, “Agile한 개발을 위해 개발자가 갖추어야 할 덕목”, “Agile한 결과(s/w)를 어떻게 만들 것인가”로 구성되어 있다고 볼 수 있다. 또한 각 Chapter는 다시 4~6개의 practice로 나뉜다. 각 practice가 하나의 완결된 이야기의 형식을 갖추고 있다. 특히 각 practice의 제목을 잘 지어 놓았기 때문에, 한 practice를 읽었을 때 그 제목과 내용이 잘 연관되어서 머릿속에 제목만 외워둔다면 실전에 바로 사용할 수 있는 나만의 practice가 된다는 특징이 있다. 이 책을 다 읽고 Agile 프로세스를 현업에 적용하고 싶다면 이 책의 목차를 뽑아서 책상 앞에 붙여 놓고 마음이 흔들릴 때마다 읽어 보는 것도 좋은 생각이다.
영어 수준도 평이해서, 읽는데도 크게 무리가 없다는 것이 이 책의 장점이다. 앞서 이 책은 XP 방법론을 이미 섭렵한 이들에게는 너무나 익숙한 이야기라고 말했다. 하지만 이 이야기를 꺼꾸로 본다면, Agile 방법론을 접하지 못했거나 알고 있어도 현업에 적용할 수 있을 정도로 자신의 것이 되지 않은 사람들에게 Agile process의 전반적인 practice를 알려 주는 지침서라 할 수 있다. 아직도 폭포(waterfall 방식) 아래에서 망아지처럼 날뛰는 고객 요구를 받아 쓰느라 고생하고 있다면, 바람처럼 빨리 달리는 Agile을 타고 드넓은 프로젝트의 목초지를 달려 보길 권한다.
