개념: 반복적으로 가치 시연
이 원칙은 반복적 개발의 가치를 설명합니다.
기본 설명

소개

이 원칙은 반복으로 인해 소프트웨어 개발이 상당이 이점을 얻게 되는 이유에 대해 설명합니다. 반복 프로세스는 이 원칙이 변경을 쉽게 수용하고 피드백을 확보하며 프로젝트에 포함시켜서 초기에 위험을 줄이고 동적으로 프로세스를 조정할 수 있도록 만듭니다.

        
이점
  • 초기에 위험성 감소
  • 프로젝트 전체적으로 더 높아진 예측 가능성
  • 이해 당사자(stakeholder) 사이의 신뢰
패턴
  1. 각각의 반복에서 점진적 사용자 가치를 전달하여 피드백 사용
  2. 반복적 프로세스를 사용하여 계획 적응
  3. 변경 채택 및 관리
  4. 주요 기술, 비즈니스 및 프로그램적 위험성 초기 공격
안티패턴
  • 전체 라이프사이클을 상세히 계획하고 계획에 대한 편차 추적(실제로 프로젝트 실패를 초래할 수 있는)
  • 작동 중인 소프트웨어의 테스트 결과와 시연의 상태를 평가하기 보다는 스펙 검토에 의존하여 프로젝트의 처음 2/3에서 상태 평가

논의  

이 원칙 뒤에는 몇 가지의 필요성이 있습니다. 첫 번째는 점진적 가치를 전달하여 초기에 연속 피드백을 사용할 수 있도록 해야 하는 것입니다. 이는 프로젝트를 반복 세트로 나눔으로써 달성됩니다. 각각의 반복에서, 요구사항, 디자인, 구현 및 응용프로그램 테스트를 수행하므로, 최종 솔루션에 한 단계 더 근접한 인도물이 생성됩니다. 이를 통해 일반 사용자 및 다른 이해 당사자(stakeholder)에게 응용프로그램 시연을 보여주거나 직접 응용프로그램을 사용할 수 있도록 하여 수행 중인 방법에 관한 신속한 피드백을 제공하도록 할 수 있습니다. 올바른 방향으로 이동하고 있습니까? 이해 당사자가 지금까지 수행한 내용에 대해 만족하고 있습니까? 지금까지 구현된 기능을 변경해야 합니까? 그리고 마지막으로, 비즈니스 부가 가치를 제공하기 위해 어떤 추가적 기능을 구현해야 합니까? 이와 같은 질문에 충분히 응답할 수 있으면, 개발 중인 시스템이 이해 당사자의 요구사항을 다룰 것이라는 신뢰가 이해 당사자 사이에 구축됩니다. 또한 일반 사용자에게 유용하지 않은 기능을 추가하거나 접근 방식을 과도하게 엔지니어링하지 않게 됩니다.

두 번째 필요성은 시연 및 피드백을 통해 계획을 적응시키는 것입니다. 요구사항 스펙, 디자인 모델 또는 계획과 같은 스펙 평가에 의존하기 보다는, 코드가 제대로 개발되었는지 그리고 더 나아가서 실제로 어떻게 작동하는지 평가해야 합니다. 즉, 테스트 결과와 이해 당사자를 상대로 한 작동 코드 시연을 사용하여 어떻게 진행 중인지 판별해야 합니다. 그러면 현재 위치, 팀의 진행 속도, 프로젝트의 성공적 완료를 위한 과정 정정의 수행 여부에 대해 제대로 이해할 수 있습니다. 그러면 이 정보를 사용하여 프로젝트의 전체 계획을 갱신하고 다음 반복에 대한 자세한 계획을 개발할 수 있습니다.

세 번째의 기본적인 필요성은 변경을 채택하고 관리하는 것입니다. 오늘날의 응용프로그램은 처음부터 계속 완벽하게 맞추기에는 요구사항, 디자인, 구현 및 테스트가 너무 복잡합니다. 대신, 가장 효과적인 응용프로그램 개발 방법에 변경의 필연성이 포함되게 됩니다. 초기의 연속 피드백을 통해 응용프로그램을 개선하는 방법을 학습하므로, 반복적 접근 방식은 이와 같은 변경사항을 점진적으로 구현하는 기회를 제공합니다. 이와 같은 모든 변경은 프로세스와 도구를 자리 잡음으로써 관리하게 되므로 창조성을 방해하지 않으면서 효과적으로 변경을 관리할 수 있습니다.

이 원칙을 기본으로 하는 네 번째 필요성은 아래의 다이어그램에 설명된 것처럼 라이프사이클 초기에 주요 위험성을 제거하는 것입니다. 위험성 분석을 프로젝트 후반부로 미루는 대신 가능하면 초기에 주요 기술, 비즈니스 및 프로그램적 위험을 처리해야 합니다. 이는 직면하는 위험성을 계속적으로 평가하고 다음 반복에서 상위의 나머지 위험성을 처리함으로써 수행됩니다. 성공적인 프로젝트에서는 기술적 위험성 완화를 위해 초기 반복에 아키텍처 디자인, 구현 및 테스트를 비롯하여 비전 및 상위 레벨 요구사항에 대한 이해 당사자(stakeholder) 합의가 포함됩니다. 어떠한 주요 재사용가능한 자산 또는 COTS(Commercial-of-the-shelf) 소프트웨어를 사용할 것인지 강제 결정하는 데 필요한 정보도 확보해야 합니다.

반복적 프로세스가 폭포수형 프로세스보다 더 빠르게 위험성 감소를 달성할 수 있음을 보여주는 다이어그램

폭포수형 및 반복적 개발에 대한 위험성 감소 프로파일.

반복적 개발의 주요 목적은 초기에 위험을 줄이는 것입니다. 이는 각각의 반복에서 상위의 위험을 분석하고 우선순위를 결정한 후 공격하여 수행됩니다(지원 자료: 반복적 개발 참조). 반복을 중심으로 개발 라이프사이클을 구성하는 데 도움이 되는 추가 안내는 개념: 반복개념: 단계를 참조하십시오.