고객이 기획자다, 애자일(agile) 방법론
요즘 애자일(agile)이란 용어를 개발자들이 쓴 문서 이곳 저곳에서 많이 보게 됩니다. 특히 이력서에서도 많이 만나게 됩니다. 본인을 애자일 방법론으로 일하는 사람이라고 소개하면서 말이죠.
agile을 옥스퍼드 영한사전에서 검색해보면, 다음과 같은 의미라고 나옵니다.
1. 날렵한, 민첩한
2. (생각이) 재빠른, 기민한
애자일에 대해 다양한 방식으로 정의를 내는데, 제가 내리는 정의는 다음과 같습니다.
"고객이 실질적 기획자라고 생각하고, 고객의 목소리에 따라 지속적으로 빠르게 서비스를 개선해가는 개발 방법론"
완벽한 기획을 통해서 웹 사이트 등의 서비스를 만들어 가는 것이 아니라, 빠르게 프로토타입을 개발하여 배포하여, 고객들의 반응을 보고, 그에 따라서 개선해나가는 것입니다.
기존의 방법론(폭포수 방법론)
기존에는 완벽한 기획, 설계에 따라 소프트웨어를 개발하려고 노력했습니다. 우선 기획한 대로 소프트웨어를 완벽하게 완성합니다. 정말 많은 돈과 시간이 투입됩니다. 그런데 슬프게도 사람들이 이 서비스에 호응하지 않습니다. 그러면 그냥 그 서비스는 사실상 버려집니다. 회복이 불가능합니다. 기획자가 아무리 똑똑하다고 해도 사람들이 이 서비스를 어떻게 받아들일지에 대해 예측하는 것이 어렵다는 것이 기존의 개발 방식의 문제였습니다.
애자일 방법론
하지만 애자일 방법론으로 일을 한다면, 일단 핵심적인 기능만 넣어서 서비스를 출시합니다. 그리고 고객들의 반응을 보고 어떤 기능을 추가할 지에 대해 고민하고 바로 업그레이드 합니다. 또 고객의 피드백에 따라 서비스의 방향성을 잡아갑니다. 처음의 기획에서 방향이 어느 정도 달라지더라도 괜찮습니다. 결국 사람들에게 필요한 서비스를 만들어내는 것이 더 중요하기 때문입니다.
당신의 선택은?
저는 애자일 방법론에 대체로 더 동의합니다. 결국 개발자는 사람들이 써주는 소프트웨어를 만들 때 기쁨과 보람을 느끼기 때문입니다. 핫한 프레임워크를 사용하고, 기획에 맞게 완벽하게 만들더라도, 사람들이 그 서비스를 써주지 않는다면 무슨 의미가 있을까요? 하지만 애자일 방법론에 따라 일할 때 주의해야 할 점은 너무 고객의 목소리에 일희일비하면서 흔들리는 것이라고 생각합니다. 어떤 서비스든 모든 사람을 만족시킬 수는 없습니다. 대체적으로 많은 고객이 만족할 만한 방향으로 개선을 해가야하지, 고객들의 모든 소리에 귀 기울이면 쉴 새없이 계속해서 유지보수하느라 서비스를 만드는 개발팀이 죽어나갈 수 있습니다. 그리고 사공이 많으면 산으로 간다고, 완전히 이상한 서비스가 될 수도 있습니다. 따라서, 애자일 방법론으로 성공을 보려면 고객의 피드백 중에 의미 있는 피드백을 잘 선별할 수 있는 통찰력, 지혜가 중요하다고 봅니다. 요약하자면, "유연함과 줏대" 이 두 가지를 갖춰야 합니다.