Agile 방법론?

Agile 방법론?

애자일 소프트웨어 개발(Agile Software development) 혹은, 애자일 개발 프로세스는 소프트웨어 엔지니어링에 대한 개념적인 얼개로, 프로젝트의 생명주기동안 반복적인 개발을 촉진한다. 최근에는 애자일 게임 보급 등의 여파로 소프트웨어 엔지니어링 뿐 아니라 다양한 전문 분야에서 실용주의적 사고를 가진 사람들이 애자일 방법론을 적용하려는 시도를 하고 있다. wikipedia 출처.

애자일 방법론은 소프트웨어 개발 방법에 있어서 아무런 계획이 없는 개발 방법과 계획이 지나치게 많은 개발 방법들 사이에서 타협점을 찾고자 하는 방법론이다.

계획이 없는 방법론의 경우, 앞으로의 일을 예측하기 힘들고 효율적이지 못하다는 점에서 취약점을 가지고 있다. 반면에, 계획에 너무 의존하는 경우는 그 형식적인 절차를 따르는데 필요한 시간과 비용을 무시할 수 없으며, 전체적인 개발의 흐름 자체를 느리게 하는 단점을 가지고 있다.

그렇기 때문에 애자일 방법론에서 택한, 그리고 다른 고전적인 방법론, 예를 들면 폭포수 모델 또는 나선 모형과 구별되는 가장 큰 차이점은 less document-oriented, 즉 문서를 통한 개발 방법이 아니라, code-oriented, 실질적인 코딩을 통한 방법론이라는 점이다.

애자일 개발 프로세스는 어느 특정 개발 방법론을 가리키는 말은 아니고 Agile(좋은것을 빠르고 낭비없게 만드는 것) 개발을 가능하게 해 주는 다양한 방법론 전체를 일컫는 말이다.

  • 소프트웨어 개발 생산성과 품질 향상을 위하여 개발자의 잠재력 발휘와 개발팀의 협업 최적화를 중심으로 하는 개발 방법론.
  • 소프트웨어 개발 팀원들을 고무하는, 협력적 개발 접근 방법
  • Agile이란 개발과정에서의 시스템의 변경사항을 유연하게 또는 기민하게 대응할 수 있도록 방법론을 제공한다는 것을 의미함.


왜 Agile을 쓰는지?

왜 Agile을 쓰는지를 이야기하기 전에, 앞에서 언급한 폭포수모델(Waterfall Model)의 문제점에 대해 알아보도록 한다.

폭포수 모델(Waterfall Model)

waterfall_model.jpg

폭포수 모델은 한 과정을 모든 사람들이 완벽하게 한다음에 다음 과정을 넘어가게 되는 개발 모델을 말한다.

각 과정이 순차적으로 처리되어야 하고 피드백과 많은 문서작업을 필요로 하기 때문에 큰 프로젝트를 주로 진행하는 회사에서 주로 사용하는 모델이다.

폭포수 모델의 문제점.
  • 한과정이 제대로 되지 않으면 다음으로 넘어가지 못한다.
  • 다음 단계가 되더라도 전 단계가 문제가 생기면 다시 처음으로 돌아가게 된다.
  • 전 단계로 돌아가는데 큰 비용과 시간이 소요됨.
  • 쓸데없는 문서작업에 너무많은 노력이 요구됨.

1) 전통적인 폭포수 모델의 의 한계

  • 전통적인 폭포수 모델의 요구분석단계에서 사용자가 개발자에게 한 번에 모든 요구사항을 정확하게 전달하는 것을 가정하고 있으나, 현실적으로 불가능함.
  • SW의 비가시성으로 사용자의 요구사항이 프로젝트 진행 시 지속적으로 변경

2) 개발환경의 변화

  • 개발환경의 개선:고급개발자의 양산, 컴퓨팅환경의 발전
  • 신속한 개발을 지원하는 GUI환경의 모델링 및 개발 도구의 발전
  • 테스트 및 디버그 자동화 도구의 등장
  • CBD,MDA등의 신속성을 제공하는 개발방법론 등장
  • 점차 짧아지는 정보시스템의 수명주시

3) 기업 경영환경의 변화

  • 경영전략이 빈번히 그리고 짧아지는 RTE기업의 등장
  • 사용자 요구사항의 지속적인 변화

4) 소프트웨어 구축 비용의 낭비

이러한 문제점 이외에도 개발 환경의 변화 등으로 새로운 모델의 필요성이 증가함.