애자일 프로세스 모델

Stormi·2022년 4월 20일
0

소프트웨어 공학

목록 보기
1/2

저번 학기에 참여한 디프만이라는 동아리에서 애자일 강연을 들은 적이있다.
그때는 애자일이 뭔지도 모르고 그냥 개발을 할 때 좋은 방법이라고 생각하고 들었다. 이번 소프트웨어의 공학이라는 과목에서 애자일 프로세스가 나와서 너무 반가웠다. 소프트웨어 공학에서 개발 프로세스론 중에 개발 위주의 방법론이라는 것을 알고나니 이해하기가 더 쉬워졌고 나머지 소프트웨어 개발 방법론들과의 차이점을 이해하는데 더욱 흥미가 생겼다.

애자일 프로세스 모델

  • 애자일의 사전적 정의 : "민첩한", "날렵한"
  • 애자일 프로세스 모델은 고객의 요구에 민첩하게 대응하고 그때그때 주어지는 문제를 풀어나가는 방법론을 말한다.

애자일의 기본 가치

  • 프로세스와 도구 중심이 아닌, 개개인과의 상호 소통을 중시한다.
  • 문서 중심이 아닌, 실행 가능한 소프트웨어를 중시한다.
  • 계약과 협상 중심이 아닌, 고객과의 협력을 중시한다.
  • 계획 중심이 아닌, 변화에 대한 민첩한 대응을 중시한다.

애자일의 원칙

  • 최우선적인 목표는 고객을 만족시키기 위해 가치있는 소프트웨어를 빨리, 지속적으로 제공하는 것이다.

  • 개발 후반에 새로 추가되는 요구 사항도 기꺼이 받아 들인다. 애자일 프로세스는 고객의 경쟁력을 위해 요구 사항의 변경을 받아 들인다.

  • 동작 가능한 소프트웨어를 짧으면 2주, 길면 2개월 간격으로 자주 고객에게 전달한다. 이때 간격은 짧을 수록 좋다.

  • 프로젝트가 진행되는 동안에 업무 담당자와 개발자는 매일 서로 의견을 주고 받으며 함께 참여한다.

  • 정보전달을 위한 전화, 팩스, 인터넷 등 많은 매체 수단이 있으나 가장 효과적인 의사소통 방법은 직접 만나 얼굴을 보면서 대화하는 것이다.

  • 진척 사항의 척도를 나타내는 방법은 여러 도구로 표현할 수 있으나, 가장 좋은 방법은 실행 가능한 소프트웨어를 보여주는 것이다.

  • 자율적 사고와 자유로운 분위기의 프로젝트 팀에서 최고의 아키텍처, 요구사항, 설계가 나온다.

  • 프로젝트의 효율성을 향상시키기 위해 개발 팀 스스로 정기적인 미팅을 진행하여 자신들의 행동을 되돌아보고 조율 및 수정한다.

    애자일 개발 방법

    애자일 개발 방법은 반복적인 개발을 통한 잦은 출시를 목표로 한다.

  • 프로토타입 개발 -> 사용자확인 -> 일부 기능 사용

    애자일 방법 VS 폭포수 모델

  • 추가 요구사항 부분
    애자일 방법론 : 추가 요구사항을 수용할 수 있는 방법으로 설계 되어 있다.
    폭포수 모델 : 추가 요구사항을 반영하기 어려운 구조이다.

  • 릴리스 시점
    애자일 방법론 : 자주 릴리스된다.
    폭포수 모델 : 최종 완성된 제품을 릴리스한다.

  • 시작 상태
    애자일 방법론 : 시작단계에서는 부족한 점이 많지만 점차 완성도가 높아진다.
    폭포수 모델 : 시작 단계에서의 완성도가 매우 높다.

  • 고객과의 의사소통
    애자일 방법론 : 처음부터 사용자의 참여를 유도하고 많은 대화를 하면서 개발을 진행한다.
    폭포수 모델: 사용자와 산출물을 근거로 하여 빈번하게 대화하지 않는다.

  • 진행 상황 점검
    애자일 방법론 : 개발자와 사용자는 개발 초기부터 지속적으로 진행.
    폭포수 모델 : 단계별 산출물을 중요시 하기 때문에 단계별 산출물에 대한 결과로 개발의 진척 상황을 점검한다.

  • 분석, 설계, 구현 진행과정
    애자일 방법론 : 하나의 단계 또는 반복안에 분석, 설계, 구현 과정이 모두 포함도어 동시에 진행된다고 볼 수 있다.
    폭포수 모델 : 분석, 설계, 구현과정이 명확하다.

  • 모듈 통합(컴포넌트 통합)
    애자일 방법론 : 개발 초기부터 빈번한 통합을 통하여 문제점을 빨리 발견하고 수정하는 방식을 택한다.
    폭포수 모델 : 구현이 완료된 후에 모듈간의 통합 작업을 수행한다.

애자일 방법론 종류

  • 스크럼
  • 익스트림 프로그래밍 (XP)
  • 적응형 소프트웨어 개발 방법론
  • 린 소프트웨어 개발 방법론
  • 크리스털 패밀리
  • 기능 주도 개발 방법론
  • 동적 시스템 개발 방법론
  • 애자일 UP

0개의 댓글