프로그램 개발에서 요구사항 변경은 피할 수 없는 운명과도 같다. 피한다고 피할 수도 없고, 그렇다고 당당하게 마냥 즐길 수도 없는 그런 존재이다. 프로젝트는 요구사항, 일정 그리고 인력 자원으로 시작한다. 최종 산출물은 당연히 훌륭하게 작동하는 소프트웨어다. 보통 일정과 인력 자원은 변경이 없으니, 흔들리는 요구사항에 따라서 흔들리는 것은 소프트웨어다. 보통의 클라이언트들은 요구사항을 계속 추가하고, 기존 요구사항을 자꾸 변경한다. 변경된 사항에 따른 일정 조절이나 추가 인력 자원 투입은 불가한 경우가 많으니 결국엔 요구사항에 충실하지 못한 소프트웨어가 나오고 만다. 예전에는 어떻게 요구사항을 고정할지에 대한 이야기를 했고, 요즘에는 어떻게 변경되는 요구사항에 맞출까를 많이 이야기한다. 처음 막연한 구상..