1. 스크럼(Scrum)기법★
: 팀이 중심이 되어 개발의 효율성을 높임.
1.1. 제품 책임자(PO: Product Owner)
– 이해관계자들 중 제품에 대한 이해도가 높고, 요구사항 결정. 주로 개발 의뢰자, 사용자가 담당.
– 요구사항이 담긴 백로그(Backlog)작성, 백로그에 대한 우선순위 지정.
* 백로그: 요구사항을 모아 우선수위를 부여해 놓은 목록
1.2. 스크럼 마스터(SM: Scrum Master)
– 스크럼 팀이 스크럼을 잘 수해할 수 있도록 객관적인 시각에서 조언을 해주는 가이드 역할.
– 진행사항 점검, 장애 요소 처리.
1.3. 개발팀(DT: Development Team)
– PO와 SM을 제외한 모든 팀원.
– 백로그에 스토리를 추가하는 것은 가능하지만, 우선순위는 지정 못함.
1.4. 스크럼 개발 프로세스
제품 백로그 | 스프린트
계획회의 |
스프린트 | 일일
스크럼 회의 |
스프린트
검토회의 |
스프린트 회고 |
2. XP(eXtreme Programming)
: 수시로 발생하는 고객의 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발 과정의 반복을 극대화하여 개발 생산성을 향상시키는 방법.
2.1. XP의 5가지 핵심가치.★★
- 피드백: 의사소통에 따른 즉각적인 피드백.
- 존중: 개발자의 역량을 존중.
- 용기: 요구사항 변화에 능동적으로 대처.
- 단순성: 사용하지 않는 알고리즘은 배제.
- 의사소통: 개발자, 관리자, 고객간의 원할한 소통.
2.2. XP개발 프로세스
<출처: https://funyphp.com/archive/knowledge/158?sst=wr_nogood&sod=desc&sop=and>
- 사용자 스토리(User Story): 고객의 요구사항을 간단한 시나리오로 표현
- 릴리즈 계획 수립(Release Planning): 부분 혹은 전체 개발 완료 시점에 대한 일정 수립
- 스파이크(Spike): 요구사항의 신뢰성을 높이고, 기술 문제에 대한 위험을 감소시키기 위해 별도로 만드는 간단한 프로그램
- 주기(iteration, 이터레이션): 하나의 릴리즈를 더 세분화한 단위
- 승인 검사(Acceptance Test, 인수 테스트): 하나의 이터레이션 안에서 계획된 릴리즈 단위의 부분 완료제품이 구현되면 수행하는 테스트
- 소규모 릴리즈(Small Release): 릴리즈를 소규모로 하게 되면, 고객의 반응을 기능별로 확인할 수 있어, 고객의 요구사항에 좀 더 유연하게 대응 가능.
2.3. XP의 주요 실천방법
- Pair Programming(짝 프로그래밍)
- Test-Driven Development(테스트 주도 개발)
- Whole Team(전체 팀)
- Continuous Integration(계속적인 통합)
- Design Improvement(디자인 개선) 또는 Refactoring(리팩토링)
- Small Releases(소규모 릴리즈)