고객의 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발 과정의 반복을 극대화하여 개발 생산성 향상시키는방법
<피존의 용기는 단순>
1. 사용자 스토리(User Story)
2. 릴리즈 계획 수립(Release Planning)
3. 스파이크(Spike)
4. 이터레이션(Iteration)
5. 승인 검사(Acceptance Test, 인수 테스트)
6. 소규모 릴리즈(Small Release)
: 고객의 요구사항을 시나리오로 표현
: 간단한 테스트 사항(Test Case)도 기재
: 부분적으로 기능이 완료된 제품을 제공하는 릴리즈 계획 수립
: 부분 혹은 전체 개발 완료 시점에 대한 일정 수립
: 요구사항의 신뢰서 높이고 위험을 감소시키기 위해 만드는 간단한 프로그램
: 처리할 문제 외의 다른 조건은 모두 무시
: 하나의 릴리즈를 더 세분화 한 단위
: 1~3주
: 새로운 스토리 작성될 수 있음
: 새로 작성된 스토리는 진행 중인 이터레이션 혹은 다음 이터레이션에 포함
: 부분 완료 제품이 구현되면 수행하는 테스트
: 고객이 직접 수행
: 오류 사항은 다음 이터레이션에 포함
: 새로운 요구사항이 작성되거나 상대적 우선순위가 변경될 수 있음
: 완료되면 다음 이터레이션 진행
: 고객의 반응을 기능별로 확인 가능
: 요구사항에 좀 더 유연하게 대응
: 고객에 의한 최종 테스트 수행 후 최종 결과물을 고객에게 전달
: 다음 릴리즈 일정에 맞게 개발 진행
: 다른 사람과 함께 프로그래밍을 수행함
: 책임을 동동으로 나눠 갖음
: 개발 코드에 대한 권한과 책임을 공동으로 소유
: 테스트 케이스를 먼저 작성
: 자신이 무엇을 해야할지 정확하게 파악
: 자동화된 테스팅 도구 사용
: 모든 구성원(고객 포함)들은 각자 자신의 역할이 있음
: 역할에 대한 책임을 가져야 함
: 하나의 작업이 마무리될 때마다 지속적으로 통합
: 프로그램 기능의 변경 없이, 단순화, 유연성 강화 등을 통해 시스템 재구성
: 릴리즈 기간을 짧게 반복
: 요구 변화에 신속히 대응