이 전 소프트웨어 개발 방식은 ‘폭포수 모델(waterfall model)’이 대중적이었다.
이 모델은 분석, 설계, 구현, 테스트가 순차적으로 실행되는 모델이다. 이때, 앞의 단계가 끝나야 다음 단계를 진행할 수 있다. 즉, 요구사항이 모두 정의되고, 이를 바탕으로 설계가 완성되어야 구현을 할 수 있다는 것이다.
그렇다면 여기서 문제제기를 해보겠다.
개발팀에게 고객은 실제 일을 맡기는 클라이언트일 수도 있고, 프로젝트를 지시한 기획자일 수도 있다.
위 사항을 모두 100%로 만족하면 폭포수 모델을 이용하여 개발을 하여도 큰 문제를 못 느낄 것이다.
하지만 요즘 시대에는 요구사항이 다양하고, 모호성이 증가하고 있다. 또한, 트렌드가 빠르게 변화하고 있는 상황에서 폭포수 모델의 방식으로 개발을 진행하게 된다면 어떠한 문제점을 가지게 될까?
이 모델은 지나치게 계획과 절차에 의존한다는 단점이 있다. 빈틈없는 계획과 엄격한 심사를 중시하면서 시간과 비용의 낭비가 증가한다. 또한, 하나의 오류를 해결하기 위해서는 분석, 계획 단계부터 다시금 해야한다는 점이 마감기한을 지키기 어렵게 만든다.
즉, 이 모델은 변화에 대응하기 어렵고 문제점을 빠르게 알아차릴 수 없다는 단점이 있다.
이러한 문제점들을 해결하고자 17명의 개발자들이 스노버드에 모여 작성된 것이 ‘애자일 소프트웨어 개발 선언’이다.