저번 학기에 참여한 디프만이라는 동아리에서 애자일 강연을 들은 적이있다.
그때는 애자일이 뭔지도 모르고 그냥 개발을 할 때 좋은 방법이라고 생각하고 들었다. 이번 소프트웨어의 공학이라는 과목에서 애자일 프로세스가 나와서 너무 반가웠다. 소프트웨어 공학에서 개발 프로세스론 중에 개발 위주의 방법론이라는 것을 알고나니 이해하기가 더 쉬워졌고 나머지 소프트웨어 개발 방법론들과의 차이점을 이해하는데 더욱 흥미가 생겼다.
최우선적인 목표는 고객을 만족시키기 위해 가치있는 소프트웨어를 빨리, 지속적으로 제공하는 것이다.
개발 후반에 새로 추가되는 요구 사항도 기꺼이 받아 들인다. 애자일 프로세스는 고객의 경쟁력을 위해 요구 사항의 변경을 받아 들인다.
동작 가능한 소프트웨어를 짧으면 2주, 길면 2개월 간격으로 자주 고객에게 전달한다. 이때 간격은 짧을 수록 좋다.
프로젝트가 진행되는 동안에 업무 담당자와 개발자는 매일 서로 의견을 주고 받으며 함께 참여한다.
정보전달을 위한 전화, 팩스, 인터넷 등 많은 매체 수단이 있으나 가장 효과적인 의사소통 방법은 직접 만나 얼굴을 보면서 대화하는 것이다.
진척 사항의 척도를 나타내는 방법은 여러 도구로 표현할 수 있으나, 가장 좋은 방법은 실행 가능한 소프트웨어를 보여주는 것이다.
자율적 사고와 자유로운 분위기의 프로젝트 팀에서 최고의 아키텍처, 요구사항, 설계가 나온다.
프로젝트의 효율성을 향상시키기 위해 개발 팀 스스로 정기적인 미팅을 진행하여 자신들의 행동을 되돌아보고 조율 및 수정한다.
애자일 개발 방법은 반복적인 개발을 통한 잦은 출시를 목표로 한다.
프로토타입 개발 -> 사용자확인 -> 일부 기능 사용
추가 요구사항 부분
애자일 방법론 : 추가 요구사항을 수용할 수 있는 방법으로 설계 되어 있다.
폭포수 모델 : 추가 요구사항을 반영하기 어려운 구조이다.
릴리스 시점
애자일 방법론 : 자주 릴리스된다.
폭포수 모델 : 최종 완성된 제품을 릴리스한다.
시작 상태
애자일 방법론 : 시작단계에서는 부족한 점이 많지만 점차 완성도가 높아진다.
폭포수 모델 : 시작 단계에서의 완성도가 매우 높다.
고객과의 의사소통
애자일 방법론 : 처음부터 사용자의 참여를 유도하고 많은 대화를 하면서 개발을 진행한다.
폭포수 모델: 사용자와 산출물을 근거로 하여 빈번하게 대화하지 않는다.
진행 상황 점검
애자일 방법론 : 개발자와 사용자는 개발 초기부터 지속적으로 진행.
폭포수 모델 : 단계별 산출물을 중요시 하기 때문에 단계별 산출물에 대한 결과로 개발의 진척 상황을 점검한다.
분석, 설계, 구현 진행과정
애자일 방법론 : 하나의 단계 또는 반복안에 분석, 설계, 구현 과정이 모두 포함도어 동시에 진행된다고 볼 수 있다.
폭포수 모델 : 분석, 설계, 구현과정이 명확하다.
모듈 통합(컴포넌트 통합)
애자일 방법론 : 개발 초기부터 빈번한 통합을 통하여 문제점을 빨리 발견하고 수정하는 방식을 택한다.
폭포수 모델 : 구현이 완료된 후에 모듈간의 통합 작업을 수행한다.