애자일 프로세스 모델
2025. 4. 13. 18:12ㆍ소프트웨어 공학
애자일 프로세스 모델의 이해
- 애자일: 납렵한, 민첩한
- 애자일 프로세스 모델: 고객의 요구에 민첩하게 대응하고 그때그때 주어지는 문제를 풀어나가는 방법론
- 가벼운 프로세스 방법론의 공통적인 특성을 정의
1. 애자일의 기본 가치
- 프로세스와 도구 중심이 아닌, 개개인과의 상호 소통을 중시
- 문서 중심이 아닌, 고객과의 협력을 중시
- 계획 중심이 아닌, 변화에 대한 민첩한 대응을 중시
- 프로세스 품질 자체보다는 산출물의 실행 가능성과 사용자 피드백을 더 중시
2. 애자일의 원칙
- 고객 만족을 위한 소프트웨어를 빠르고 지속적으로 제공
- 개발 후반 새로 추가되는 요구사항 허용
- 동작 가능한 소프트웨어를 자주 고객에게 전달 (짧으면 2주 길면 2달)
- 대면 의사소통 중시
- 자율적 사고와 자유로운 분위기 중시
3. 애자일 프로세스 개발 방법
- 기본기능만 1차 요구사항으로 분석 후 이를 반복으로 나누어 개발
- 사용자가 릴리스 1을 사용하는 동안 개발자는 2차 개발
- 반복적인 개발을 통한 잦은 출시를 목표
- 실행 가능한 프로토타입을 만들어 사용자에게 확인받음
- 빠른 시간안에 일부라도 소프트웨어를 사용할 수 있게 하는 걸 중시
4. 애자일 프로세스 모델: 스크럼
- 팀이라는 단어가 주는 의미를 개발 팀에 적용해 효율적인 성과를 얻기 위해 소프트웨어 개발 프로세스에서 사용
- 소프트웨어 개발보다는 팀의 개선과 프로젝트 관리에 중점을 둔 애자일 방법론
- 경험적 관리 기법 중 하나(경험이 많은 사람 필요)
- 구체적인 프로세스를 명확하게 제시하지 않음
5. 스크럼 방식의 진행 과정
단계 | 수행목록 | 내용 |
---|---|---|
1 | 제품 기능 목록 작성 | 요구사항 목록에 우선순위를 매겨 제품 기능 목록 작성 |
2 | 스프린트 계획 회의 | 스프린트 구현 목록 작성 스프린트 개발 기간 추정 |
3 | 스프린트 수행 | 스프린트 개발 일일 스크럼 회의 스프린트 현황판 변경 소멸 차트 표시 |
4 | 스프린트 개발 완료 | 실행 가능한 최종 제품 생산 |
5 | 스프린트 완료 후 | 스프린트 검토 회의 스프린트 회고 두 번째 스프린트 계획 회의 |
6. 제품 기능 목록의 정의
- 사용자가 요구하는 제품의 기능 목록을 말하며, 제품에 관한 모든 요구사항에 대해 우선순위가 정해져 있음
- 우선순위는 고객 측 대표인 제품 책임자가 결정하며 사용자와 계속 미팅하면서 목록이 완성
- 한 번 결정된 제품 기능 목록은 확정된 것이 아니고 개발 중이라도 수정이 가능
- 일반적으로 한 주기가 끝날 때가지는 제품 기능 목록을 수정하지 않음
7. 사용자 스토리
- 제품 기능이 도출되면 각 기능을 간략하게 서술
- 주로 한 장의 인덱스 카드(포스트잇)로 작성
- 기능을 상세하게 적는 것이 아니라 개발자와 대화를 지속할 수 있는 단서 정도로만 활용할 수 있게 작성
- 작성된 사용자 스토리는 스토리 보드에 나열되고 우선순위와 스토리 포인트가 결정
- 스토리 포인트: 요구사항의 규모를 측정하는 단위로 업무량을 이용해 산정
- 스토리 간의 상대적인 업무량을 비교해 가장 적을 때를 1로 두고 이를 기준으로 얼마나 큰지에 따라 스토리 포인트를 산정
- 일반적인 소프트웨어 개발 방법론에서는 개발에 소요되는 시간을 일/주/월의 시간 단위로 예측
- 애자일 방법론에서는 스토리 포인트라는 추상 개념으로
예측8. 스프린트 계획 수립
- 스프린트: 작업량이 그렇게 많지 않고 개발 기간도 짧은 경우를 의미
- 보통 1~4주 정도를 하나의 스프린트로 봄
- 하나의 스프린트에 어떤 사용자 스토리를 몇 개 포함할 것인지 스프린트 계획 회의에서 결정
- 계획된 일정 안에 개발을 마치지 못해도 정해진 일정이 끝나면 하나의 스프린트가 끝남
9. 스프린트 계획 회의
- 전체적인 스프린트 계획 회의:
- 제품 책임자를 통해 사용자가 원하는 것이 무엇인지를 파악하는데 중점
- 스크럼 마스터는 어떤 항목을 가장 높은 순위로 놓았는지 확인
- 세부적인 스프린트 계획 회의:
- 우선순위가 높은 항목을 어떻게 구현할 것인지 구체적인 작업 계획 설립
- 제품 기능 목록에서 개발 항목을 결정
- 스프린트 구현 목록 작성
- 정해진 작업을 수행하는 데 소요되는 시간을 추정
- 우선순위가 높은 항목을 어떻게 구현할 것인지 구체적인 작업 계획 설립
10. 소멸 차트
- 계획 대비 작업이 어떻게 진행되고 있는지를 날짜별 남은 작업으로 나타냄
- 개발 후 남은 작업량을 표현하므로 시간이 지남에 따라 차트가 감소
11. 일일 스크럼 회의
- 스프린트 기간에 하는 회의
- 모든 팀원이 매일, 서서, 약속된 시간에 짧게, 진행 상황만 점검하여 현황판 업데이트
12 . 스프린트 개발 완료 후
- 하나의 스프린트 반복 주기가 끝났을 때 생성되는 실행 가능한 제품을 검토
- 작업한 결과를 참석자들에게 시연하고 요구사항에 얼마나 부합하는지 검토
- 검토는 가능한 한 4시간에 마치며 회고를 진행할 수 있음
- 개선점, 규칙 준수 등을 검토
- 추정 속도와 실제 속도를 비교하고 차이가 크면 그 이유를 분석
13. 배포 목록 작성
- 배포 목록은 제품 기능 목록의 항목 중에서 이번 배포 본에 포함하기로 결정한 것
14. 스크럼 개발 관련자의 역할
- 제품 책임자:
- 제품 기능 목록 만들기
- 비즈니스 관점에서 운선순위와 중요도 매기고 새로운 항목을 추가
- 스프린트가 시작되면 팀 운영에 관여 안함
- 스크럼 마스터:
- 제품 책임자를 돕는 조력자
- 업무 배분만 하고, 일은 강요 안함
- 개발 과정에 방해될 만한 요소 제거
- 스크럼 팀:
- 기능을 작업 단위로 나누고, 일정이나 속도를 추정해서 제품 책임자에게 알려줌
- 하나의 스프린트에서 생산된 결과물을 제품 책임자에게 시연
15. 스크럼 방식의 장점과 단점
- 스크럼 방식의 장점:
- 반복 주기마다 생산되는 실행 가능한 제품을 통해 사용자와 충분히 의견을 나눌 수 있음
- 일일 회의를 통해 팀원들 간의 신속한 협조 가능
- 다른 개발 방법론에 비해 단순하고 실천 지향적
- 프로젝트 진행 현황을 볼 수 있어 목표와 결과 추정이 용이하며 목표에 맞는 변화 시도 가능
- 스크럼 방식의 단점:
- 반복작업이 많아지면 작업 시간이 그만큼 많아짐
- 회의 시간이 길어지면 작업하는데 방해가 됨
- 투입 공수를 측정하지 않기 때문에 작업이 얼마나 효율적으로 수행되었는지 알기 어려움
- 프로세스 품질을 평가하지 않아 품질 관련 활동이 미약하고 품질의 정도를 알 수 없음
투입공수: 프로젝트에 투입된 사람과 시간에 보고 프로젝트의 규모를 측정하는 것
반응형
'소프트웨어 공학' 카테고리의 다른 글
유스케이스 다이어그램 (0) | 2025.04.15 |
---|---|
UML (0) | 2025.04.13 |
소프트웨어 개발 모델 (0) | 2025.04.12 |
소프트웨어 개발 프로세스 (0) | 2025.03.25 |
인공지능 소프트웨어 품질 (0) | 2025.03.25 |