애자일 선언문이 나온 이후로 다양한 애자일 방법론이 등장하게 되었고,
이 중에서 특히 세계적으로 널리 채택된 애자일 방법론인
(1) 스크럼(scrum)과
(2) 익스트림 프로그래밍(XP)을 알아보자.
초창기에는 XP를 주로 사용했지만 스크럼이 점차 인기가 끌면서 최근에는 두 개를 함께 사용한다.
최근에는 도요타 시스템의 린 생산방식을 소프트웨어 개발에 적용하자는
린 소프트웨어 개발 방법론이 급부상하고 있고 ,주로 스크럼과 함께 사용된다.
💡린 개발 방법론이란?
낭비를 최소화하고 가치를 최대화하는 것을 목표로 하는 개발방법론
제품을 개발하는 전 과정에서 고객의 피드백을 수시로 반영하며, 불필요한 작업을 최소화하여 생산성을 높이는 것을 목표
전적으로 사용자 관점이라는 것이 애자일과의 차이점 (애자일은 사용자와의 협업)
주요 애자일 방법론은 다음과 같다.
- 스크럼(Scrum), 켄 슈와버/제프 서덜랜드
- 익스트림 프로그래밍(eXtreme Programing, XP), 켄트벡/에릭감마
- 린(Lean) 소프트웨어 개발방법론, 메리포펜딕/톰포펜딕
- 애자일 UP(Agile Unified Process, AUP), 스콧앰블러
애자일 개발 방법론 - SCRUM
스크럼 개요
프로젝트 관리를 위한 애자일 방법론으로서 추정 및 조정 기반의 경험적 관리기법의 대표적인 형태이다.
스크럼에는 크게 3가지 역할자가 있다.
- 제품 책임자 (Product Owner)
- 제품 기능목록에 해당하는 제품 백로그(Product Backlog)를 만들고 우선순위를 조정하거나 새로운 항목을 추가하는 일을 관리
- 스프린트 계획 수립 시점에는 핵심 역할을 담당하지만 시작 후에는 가능한 팀의 운영에 관여하지 않는 것을 권장
- 스크럼 마스터 (Scrum Master)
- 팀의 업무를 방해하는 요소 제거에 노력
- 원칙과 가치를 지키면서 팀이 개발을 진행할 수 있도록 지원
- 스크럼 팀 (Scrum Team)
- 일반적으로 5~9명으로 구성
- 사용자 스토리를 사용하여 한 스프린트 동안에 개발할 기능을 도출
스크럼 프로세스
✅ 프로세스의 3가지 구성 요소
1️⃣ 스프린트 (Sprint)
- 1~4주 단위의 반복 개발 기간 의미
2️⃣ 3가지 미팅
- 일일 스크럼
- 매일 진행하는 15분 간의 프로젝트 진행상황을 공유하는 회의
- 모든 팀원이 참석하여 맹리 각자가 한 일, 할 일, 문제점 등을 공유
- 스프린트 계획
- 각 스프린트에 대한 목표를 세우고 제품 백로그로부터 스프린트에서 진행할 항목 선택
- 각 항목에 대한 담당자를 배정하고 태스크 단위로 계획을 수립
- 스프린트 리뷰
- 스프린트 목표를 달성했는 지 작업 진행과 결과물을 확인하는 회의
- 스크럼 팀은 스프린트 동안 작업한 결과를 참석자들에게 데모하고 피드백을 받음
- 가능하면 해당 스프린트 동안 진행된 모든 작업에 대한 데모를 진행, 고객이 참여하는 것이 좋음
- 스크럼 마스터는 스프린트 동안 잘된 점, 아쉬웠던 점, 개선할 점 등을 찬기 위한 회고 진행 가능
3️⃣ 3가지 산출물
- 제품 백로그 - 제품에 담고자 하는 기능의 우선순위를 정리한 목록
- 고객을 대표하여 제품 책임자가 주로 우선순위를 결정
- 사용자 스토리 : 제품 백로그에 정의된 기능
- 사용자 업무량에 대한 추정은 주로 스토리 포인트라는 기준을 이용
- 스프린트 백로그 - 하나의 스프린트 동안 개발할 목록
- 과업(task) : 사용자 스토리와 이를 완료하기 위한 작업
- 각각의 과업 크기는 시간 단위로 측정
- 소멸 차트 - 개발 완료까지 남은 작업량을 보여주는 그래프
- 각 이터레이션 별로 남아있는 작업량을 스토리 포인트라는 것으로 나타낸 것
스크럼 특징
- 투명성
- 프로젝트의 진행사항을 정확히 파악하는 것은 어려운 일이나, 스크럼을 통해 효과적으로 파악 가능
- 타임박싱
- 스크럼을 진행하는 데 들어가는 시간을 제한함으로써 프로젝트 진행에만 집중하는 것이 가능
- 커뮤니케이션
- 스크럼은 팀원 간 커뮤니케이션을 원할하게 하기 위해서 많은 노력(일일 스크럼, 플래닝 포커)을 기울인다.
- 일일 스크럼 - 개발자들이 갖고 있는 문제점을 공유
- 플래닝 포커 - 사용자 스토리으 구현 난이도, 시간을 토론하는 절차
- 경험주의 모델
- 고유의 프로세스 모델을 가지고 있지만 프로젝트에 참여하고 있는 개개인의 경험을 중시한다.
애자일 개발 방법론 - XP
XP 개요
1990년 후반 정립된 방법론으로, 중소규모 개발 조직에 적합한 경량화된 개발방식
❗️ XP의 경우, 테스트 주도 개발(TDD), 일일빌드(Daily Build), 지속적인 통합(Continuous Integration) 등 개발 테크닉과 연관된 부분이 많기 때문에 종종 '방법론'으로 규정짓는 것에 대해 논란이 되기도 함
- 국내에서는 작은 규모의 개발 팀을 중심으로 기법 중 일부를 적용하는 사례가 일반적
- 스크럼과 같은 추가적인 애자일 개발 방법을 함께 적용하기도 함
- 그 가치(Value)와 가치를 달성하기 위한 실천법(Practice)으로 구성
➡︎ 이 두 가지 균형을 유지하기 위한 원칙(Principle) 필요 - 반복적 개발방법론의 일종으로, 프로젝트 수행 과정에서 여러 번의 반복이 있으며 테스트 결과에 따라 업무를 반복적으로 수행함
XP 개발 절차 및 용어
개발 절차는 아래 그림과 같다.
용어 설명
- 유저 스토리 : 요구사항 수집
- 의사소통의 도구를 말하고 기능단위의 필요한 내용을 간단하게 기재
- 스파이크 : 어려운 요구사항 혹은 잠재 솔루션을 고려한 간단한 프로그램
- 사용자 스토리의 신뢰성을 증대, 기술 문제의 위험을 감소하는 목적
- 릴리즈 계획 : 전체 프로젝트에 대한 배포 계획을 수립하여 하나의 반복을 1~3주로 나누고 반복들을 균일하게 유지
- 승인 테스트 : 릴리즈 전 인수 테스트로서 고객이 직접 수행
- 작은 릴리즈 : XP 주기의 마지막 단계
- 소규모로 빈번하게 배포하면 고객에게 여러 이득을 조기에 제공 가능
XP 가치
XP에서는 기본적으로 5개 가치를 제안
1. 의사소통 : 고객, 개발자, 관리자들 간의 의사소통을 통해 문제를 해결하고 팀 빌딩을 강화
2. 단순성 : 불필요한 복잡성을 제거하여 설계를 단순하고 명확하도록 유지
3. 피드백 : 완전성을 추가하는 것보다 점진적인 개선이 효과적이므로 팀이 다룰 수 있는 한도 내에서 최대한 빨리, 많은 피드백을 만들어 개선에 활용
4. 용기 : 요구사항 및 기술 변경에 용감하게 대처함으로써 문제를 적극적으로 해결하려는 용기는 단순함을 추구하고, 구체적으로 제시하려는 용기는 피드백을 강화
5. 존중 : 앞의 4가지 뒤에 숨어있는 가치로 다른 사람들을 중요하게 여기지 않고는 프로젝트를 정상 진행하기 어려움
XP 실천 방법
5가지 가치 외에도 12가지 실천 방법을 제시한다.
'소프트웨어_개발' 카테고리의 다른 글
소프트웨어공학 생명주기 모델-V모델/VP모델/점증적모델/진화모델 (1) | 2023.09.10 |
---|---|
소프트웨어공학-개론/개발생명주기/개발방법론 (0) | 2023.09.10 |