Our highest priority is to satisfy the customer

through early and continuous delivery

of valuable software.

우리가 가장 중요하게 여기는 것은

제 시간에, 지속적으로 가치 있는 소프트웨어를 인도함으로

고객을 만족시키는 것이다.

방법론의 변천

1970년대가 되어서야 폭포수 방법론이 등장했고, C 4세대 언어 도구들이 등장한 80년대에는 생명주기 관점에서 소프트웨어 개발 방법을 바라보게 되었다. 90년대가 되어서 반복과 통합된 프로세스를 토대로 하는 RUP가 등장했고, 이를 계승한 컴포넌트 기반 방법론인 CBD가 현재 위세를 떨치고 있다.

이와는 다른 관점에서 나온 방법들이 있다. 카네기 멜론 소프트웨어 공학 연구소에서 나온 업무능력 성숙도 평가 기준(Capability Maturity Model; CMM)은 개발 프로세스 향상을 통해 성공적인 프로젝트 수행이 가능하다고 얘기하고 있고, 중소규모의 개발팀에 적용해서 큰 효과를 보고 있는 XP방법론이 유행하고 있고, XP와 뜻을 같이하는 여러 방법론들의 연합체인 애자일 방법론도 개발자들 사이에서 큰 흐름을 형성하고 있다.


eXtreme Programming (XP)

Kent Beck이 만든 방법론으로 기존의 개발 방법론은 위에서 아래로 진행하는 반면 XP방법론은 아래부터 위로 향하는 습성을 갖고 있다. 농담 삼아 하는 얘기인지 모르지만 프로젝트에서 갈 데까지 간 개발자들이 극한의 상황에서 살아남기 위해서 만들어졌기 때문에 extreme이라는 단어를 붙였다고 한다.

XP에서 얘기하는 내용을 보면 방법론이라기 보다는 개발자 개인 및 팀원 간의 습관이라고 보는 것도 무리가 없다. 그림 8.에서 제일 안쪽에 있는 원은 개인의 실천사항을 얘기하고 있고, 중간의 원은 팀원간의 실천사항을 표현하고 있다. 제일 바깥의 원은 전체 프로젝트에서 일어나는 실천사항을 표현한다.


사용자 스토리가 나오면 스파이크라고 하는 핵심 기술을 빨리 구현해서 보일 수 있는 시범 프로그램을 만들어서 기한내에 완성이 가능한 스토리인지 가늠해 본다. 그 이후 구체적인 계획을 잡고 개발을 하고, 최종적으로 사용자 스토리에 있는 내용을 테스트케이스로 잡아서 고객의 인수테스트를 통과하면 작은 배포버전을 만든다. 보통 이 기간을 2주로 잡고 있으며 2주마다 기능을 추가해서 동작하는 소프트웨어를 만들어간다. 물론 처음에는 아주 기본적이고, 핵심적인 프로그램으로 시작하고, 2주 분량의 기능만 추가해서 진행하기 때문에, 고객은 진행되는 일의 산출물을 보면서 안도하고, 개발자는 동작하는 프로그램의 배포에서 꾸준한 성취감과 동기부여를 얻을 수 있다.

+ Recent posts