애자일(Agile) 방법론이란?
Agile은 사전적 의미로 기민한, 날렵한 이란 뜻으로 좋을 것을 빠르게 취하고, 낭비 없게 만드는 다양한 방법론을 통칭하는 말이다.
일정한 주기를 가지고 계속 검토해 나가며 필요할 때마다 요구사항을 더하고 수정하여 커다랗게 살을 붙이면서 개발해나가는 프로세스 모델 방식이다
미리 정해진 몇개의 단계에 따라 엄격한 순서대로 이루어지는 폭포수 프로세스와는 반대의 개념이다
→ 처음부터 완벽한 계획이 아닌 간소한 계획과 유연한 대처를 추구하는 방법론
애자일 선언문
- 공정과 도구보다 개인과 상호작용을
- 포괄적인 문서보다 작동하는 소프트웨어를
- 계약 협상보다 고객과의 협력을
- 계획을 따르기보다 변화에 대응하기를
애자일 방법론의 장점, 단점
장점
- 프로젝트 계획에 걸리는 시간을 최소화할 수 있다.
- 점진적으로 테스트할 수 있어서 버그를 쉽고 빠르게 발견 가능하다.
- 계획 혹은 기능에 대한 수정과 변경에 유연하다.
- 요구사항에 대한 즉각적인 피드백에 유연하며 프로토타입 모델을 빠르게 출시할 수 있다.
단점
- 변화하는 계획과 요구사항으로 인한 반복적인 유지보수 작업이 많다.
- 요구사항 및 계획이 크게 변경될 경우 모델이 무너질 수 있다.
- 개인이 아닌 팀이 중심이므로 공통 작업이 많을 수 있다.
- 확정되지 않은 계획으로 개발 진행시 이해하지 못하고 진행하는 부분이 많을 수 있다.
애자일 방법론의 진행 과정
애자일 방법론은 계획 → 설계(디자인) → 개발(발전) → 테스트 → 검토(피드백) 순으로 반복적으로 진행한다.
- 계획 및 분석 : 고객과 사용자가 원하는 바를 파악하여 타당성을 조사하고 SW 기능과 제약조건을 정의하는 명세서 작성, 대상이 되는 문제 영역과 사용자가 원하는 task를 이해하는 단계
- 설계(디자인) : 기획의도에 맞는 설계 및 디자인 추가 및 수정하는 단계
- 개발(발전) : 설계단계에서 만들어진 설계서를 바탕으로 프로그램을 작성, 코딩, 디버깅, 단위/통합테스트 수행
- 테스트 : 발생 가능한 실행 프로그램 오류를 발견, 수정하는 단계
- 검토(피드백) : 기획의도를 파악하고 시험결과와 기획의 따라 수정할 부분을 제시하는 단계
스프린트(Sprint)와 스크럼(Scrum)
애자일에서의 스프린트(Sprint)란?
- 소프트웨어를 개발할때 한번의 장거리 달리기가 아니라, 여러번의 단거리 전력질주를 하자는 것
- 스프린트 기간은 대략 1~2주 단위로 잡는다.
→ 워터폴 방법론에서는 데드라인이 중요시되고, 애자일 방법론에서는 애자일속도(프로젝트 진행 속도)를 제일 중요시 여긴다.
스크럼(Scrum)이란?
정해진 스프린트 기간동안 기능을 완성 시키기 위해서 협력하는 팀원의 모습이 럭비의 스크럼과 비슷해서 지어진 이름
스크럼의 특성
- 기능/개선점에 대한 우선 순위를 부여
- 개발 주기(스프린트)마다 실제 동작할 수 있는 결과를 제공하라.
- 개발 주기마다 적용할 기능이나 개선에 대한 목록을 제공
- 날마다 15분 정도 회의를 가져라, 항상 팀 단위로 생각하라.
- 원할한 의사소통을 위하여, 구분 없는 열린 공간을 유지하라.
스프린트 사이클
- 3~9명의 스크럼 팀에서 작은 프로젝트를 수행하여 한 달 이내로 개발
- 스프린트 계획 → 이번 스프린트 사이클에 개발할 요구사항 목록을 선택
- 일일 스크럼 회의
- 진행중인 스프린트 사이클 종료전, 스프린트 리뷰와 회고 수행
스프린트 팀의 구성
- 개발팀
- 제품 책임자(Project Owner, PO) : 제품 백로그 작성 및 관리
- 스크럼 마스터 : 프로젝트 관리자, 스크럼 회의 주관, 외부 소통 창구 역할
참고
https://atoz-develop.tistory.com/entry/소프트웨어-개발-방법론-애자일Agile-방법론
반응형