728x90

나의 경우 회사에서 개발할 때에는 항상 워터폴(Waterfall) 방법론이었다.


워터폴 방법론은 다음과 같다.



사실 고객은 자기가 원하는 것을 스스로도 정확하게 알지 못한다. 그냥 이런 기능이 있으면 좋겠는데, 저런 기능이 있으면 좋겠는데 할 뿐이다....


그렇기 때문에 처음부터 고객의 요구조건에 맞춰서 개발하다보면 계속해서 추가 요구 사항이 들어오게되고, 그러다보니 점점 구조가 꼬이는 형태가 될 수 밖에 없었다. (내가 근무한 방위산업체쪽에서는 항상 이랬다 ㅎㅎㅎㅎ)


즉, 이 워터폴 방식은 정말 제대로된 관리자가 고객의 요구를 정확하게 알고, 완벽한 설계를 하고, 완벽한 구현을 한 후 개발 완료를 할 때에는 좋은 개발 방법이지만, 그게 아니라면 좋지 못한 방법론이다. (보통 개발을 모르는 사람이 관리자였다...)




위의 문제 때문에 새롭게 나온 개발 방법론이 바로 애자일 모델(Agile Model) 이다.


사전에서 먼저 찾아보면 "Agile = 기민한, 날렵한" 이란 뜻이다.

즉 좋은 것을 빠르게 취하고, 낭비 없게 만드는 다양한 방법론을 통칭해 일컫는 말이다.


애자일 모델이 다른 방법론과 구별되는 가장 큰 차이점은 Less Document-Oriented, 즉 문서를 통한 개발이 아니라 Code-Oriented 실질적인 코딩을 통한 방법론이라는 것이다.



애자일 모델은 일정한 주기를 가지고 계속해서 프로토 타입(Proto Type)을 만들어서 고객에게 보여주며 고객과의 소통을 통한 요구사항을 추가하거나, 필요없는 부분은 제거하면서 점점 프로그램을 개발해 나가는 방법이다.


이렇게 실질적인 프로토 타입을 계속해서 만들어내는 과정에서 고객이 자연스럽게 참여할 수 있게 되고, 수정 요청을 하거나 다음 단계로 넘어가는 과정을 고객과 긴밀한 관계를 형성할 수 있다.




애자일 방식은 일반적으로 스크럼 프로세스를 따르게 되는데, 스크럼은 보통 30일 단위로 주기를 나누고, 짧게는 1~2주 길게는 3~4주 단위의 스프린트(개발 주기)로 쪼개서 개발하게 된다.


특정 기간 동안 해야 할 목표와 필요 작업을 명시하고, 실제로 어떻게 진행 되었는지 백로그(Backlog)를 남겨 각 스프린트가 끝나는 시점에 함께 모여 리뷰하고 피드백을 주고 받는 형태의 업무를 진행한다.


출처 : http://blog.rightbrain.co.kr/?p=5810

728x90

+ Recent posts