CS

[CS / SW] 애자일 방법론

따봉치치 2023. 10. 24. 17:30

1. 애자일 방법론

소프트웨어 개발 및 프로젝트 관리에서 사용되는 접근 방식 중 하나로, 반복적이고 협업 중심의 개발 방법론. 작업 계획을 짧은 단위로 세우고 시제품을 만들어 나가는 사이클을 반복함으로써 고객의 요구 변화에 유연하고도 신속하게 대응하는 방법론이다.

  1. 계획 및 분석 : 고객과 사용자가 원하는 바를 파악하여 타당성을 조사하고 SW 기능과 제약조건을 정의하는 명세서 작성, 대상이 되는 문제 영역과 사용자가 원하는 task를 이해하는 단계
  2. 설계(디자인) : 기획의도에 맞는 설계 및 디자인 추가 및 수정하는 단계
  3. 개발(발전) : 설계단계에서 만들어진 설계서를 바탕으로 프로그램을 작성, 코딩, 디버깅, 단위/통합 테스트 수행
  4. 테스트 : 발생 가능한 실행 프로그램 오류를 발견, 수정하는 단계
  5. 검토(피드백) : 기획의도를 파악하고 시험결과와 기획에 따라 수정할 부분을 제시하는 단계

 

2. 특징

  • 고객 중심 : 고객의 피드백을 중요하게 여기며 제품을 지속적으로 개선
  • 반복과 적응 : 짧은 개발 주기를 갖고 각 주기의 끝에서 피드백을 받아 제품을 수정하고 개선
  • 자기 조직화된 팀 : 작은 자기 조직화된 팀을 강조하며 각 팀은 다양한 역할을 수행하고 소통을 강화하여 프로젝트를 성공적으로 수행
  • 협업과 피드백 : 팀 간 협업 강조하고 이를 통해 문제를 신속하게 해결하고 결정을 내림. 또한 고객과의 지속적인 소통을 통해 피드백을 수용하고 변경을 수용
  • 작은 릴리스와 반복: 작은 릴리스로 제품을 나누고 각 릴리스를 반복하며 개선. 이를 통해 초기 가치를 빠르게 제공하고 제품을 점진적으로 완성

 

3. 장점과 단점

장점

  • 프로젝트 계획에 걸리는 시간 최소화
  • 점진적으로 테스트하여 버그를 쉽고 빠르게 발견 가능
  • 계획 또는 기능에 대한 수정과 변경에 유연
  • 고객 요구사항에 대한 피드백을 즉각적이고 유연하게 대처 가능

단점

  • 확정되지 않은 계획 및 요구사항으로 반복적인 유지보수 작업 많아짐
  • 고객의 요구사항이나 계획이 크게 변경될 경우 모델이 무너질 수 있음
  • 반복적인 업무로 미흡한 기능들에 대한 대처 필요

 

4. 주요 애자일 방법론

  • 스크럼(Scrum
  • 익스트림 프로그래밍(Extreme Programming, XP)
  • 칸반(Kanban)