이 포스팅은 SEI (Software Engineering Institute)의 블로그 "Agile Metrics: Assessing Progress to Plans (Will Hayes, Patrick R. Place, and Keith Korzec, July 19, 2021)"를 기반으로 작성하였습니다.
메트릭은 시스템의 실질적인 기능 구현뿐만 아니라 현재 실행 중인 프로세스의 성과에 대한 통찰력을 제공합니다. 이러한 통찰력은 계약된 기능을 제공하는 프로그램의 성과를 감독할 수 있게 해줍니다. 이번 포스팅에서는 복잡한 사이버-물리 시스템의 반복적, 점진적 전달에서 정부 프로그램의 진행 상황 평가에서 메트릭의 역할을 탐구합니다.
이 글은 SEI가 후원 조직의 임무에 맞춘 점진적 전달 접근 방식을 사용하는 프로그램을 지원한 경험을 바탕으로 작성되었습니다. 점진적 전달의 핵심이 되는 메트릭은 계획에 대한 진행 상황 평가와 품질 평가를 강조하며, 두 가지 모두 린(Lean)과 애자일(Agile) 사고에서 비롯된 흐름 기반 메트릭의 영향을 받습니다. 이 글에서는 특히 계획에 대한 진행 상황 평가에 중점을 두고 있지만, 품질 평가를 지원하는 메트릭도 시스템이 성공적으로 구현되었는지를 평가하는 데 있어 귀중한 통찰력을 제공합니다. 작업의 기술적 적절성은 계획에 대한 진행과 품질을 아 우르는 주요 관심사입니다.
평가 범위와 의사 결정 시간의 상관관계
반복적이고 점진적인 전달 방식의 진행 상황을 평가할 때는 단일 통합 마스터 계획이 아닌 단기, 중기, 장기 계획에 따른 측정이 필요합니다. 반복 개발 방법은 각 단계별 세부 수준에서 작업의 수용 가능성에 대한 명확한 기준을 설정하며, 이는 적절한 시점에서 계획 대비 진행 상황을 평가하는 기준이 됩니다.
단기 성과와 프로그램의 장기 계획 간의 연계는 프로그램 관리의 핵심 요소입니다. 이러한 연속적인 계획 체계는 단일 마스터 계획을 대신하며, 각각의 계획과 관련된 시간 범위에 따라 고유한 시각과 초점을 가집니다. 이 글에서는 각 계획에 대한 통찰을 제공하는 측정 항목을 아래에서 위로 설명합니다.
1. 엔지니어링(Engineering) — 이 메트릭은 기술 및 엔지니어링 목표와 성과 목표 달성에 기반하여 측정됩니다. 상세 작업의 기술적 적절성을 평가해 적시에 품질 작업이 수행되어 기능이 성숙해지는지를 확인하며, 팀 리더, 전문가, 엔지니어링 매니저를 대상으로 합니다.
2. 프로그램 관리(Program Management) — 연속 전달 방식을 지향하는 프로그램에서는 제품 요소의 파이프라인 전달 추적에 초점을 둔 메트릭을 사용합니다. 스토리, 기능, 역량의 진행 상황을 측정해 프로그램이 얼마나 잘 진행되고 있는지를 파악하며, 중간 및 상위 프로그램 관리자가 대상입니다.
3. 획득(Acquisition) — 이 메트릭은 획득 활동의 목표에 대한 통찰을 제공합니다. 미 국방부(DoD)에서 확립된 메트릭으로 장기적인 프로그램 예산과 계약에 직접적으로 연계되며, 주로 고위 경영진과 임원(예: 프로그램 실행 책임자)을 대상으로 하며, 프로젝트 관리보다 긴 시간 범위를 다룹니다.
엔지니어, 프로그램 관리자, 획득 전문가가 이 세 가지 관점에서 작업 진행 상황을 평가해야 합니다. 엔지니어링 관점은 기술적 진보에 중점을 두며, 프로그램 관리 관점은 계획된 전달물과 일정에 대한 진행 상황을 평가하고, 획득 관점은 조직의 목표에 중점을 둡니다. 각 영역에서의 진행 상황을 평가하기 위해 상이한 메트릭과 전문 기술이 필요합니다.
1. 엔지니어링 진행 메트릭
복잡한 설계가 기술적 성과를 성숙시켜 나가는 과정을 평가하려면 엔지니어링 관점이 필요합니다. 엔지니어는 사용 중인 기술과 문제의 특성을 기반으로 선행 지표를 도출합니다. 생산성과 품질과 같은 일반적인 지표는 사용 중인 특정 기술을 반영하지 않는 경우가 많아, 진행 상황을 부분적으로만 평가할 수 있습니다. 요구 사항 분석에서 파생된 산출물, 설계 활동, 구현 예시의 엔지니어링 검토는 중요한 평가 자료가 되며, 이를 바탕으로 공공기관의 엔지니어링 감독 담당자는 단기 계획 대비 엔지니어링 진행 상황을 측정합니다. 이러한 평가 결과는 프로그램의 주요 마일스톤을 결정하는 데 반영됩니다.
다음은 엔지니어링 진행 상황을 평가하는 주요 검토 예시입니다:
- 기술 리뷰: 각 기능에 대한 로드맵에 따라 설정된 주요 산출물은 시스템 엔지니어링 기술 검토(SETR) 프로세스를 통해 기술 리뷰를 거칩니다. 계약자는 정부 관계자와 협력하여 작은 작업 단위로 나누어 반복적으로 검토하며 작업의 신속한 진전을 도모합니다. 정부 감독 담당자는 전통적인 마일스톤(예: 초기 설계 리뷰(PDR), 핵심 설계 리뷰(CDR))에서 요구되는 성숙도 수준을 기술 작업 산출물을 통해 확인합니다. 이 성과는 다음 엔지니어링 활동으로 이어지는 기반이 됩니다.
- 데모 이벤트: 기능이 성숙해지면서 기능과 역량의 데모가 기술적 진척 상황을 가시적으로 보여줍니다. 테스트 하니스에서 기능의 작은 조각을 시연하거나, 강화된 실험실 환경에서 전체 시뮬레이션을 실행함으로써 개발자는 서면 보고서보다 더 깊은 통찰을 제공합니다. 적절한 주제 전문가가 특정 기능 또는 성능의 목표를 평가하며, 일부 조직은 데모된 기능의 유용성(또는 가치)을 점수로 측정합니다.
- 검증 이벤트: 특수 실험실 또는 테스트 범위에서 생산 하드웨어를 사용하여 수행되는 경우가 많으며, 이러한 이벤트에서 수집된 데이터는 기본적인 평가 자료로 사용됩니다. 기준 요구 사항에 대한 평가, 문서화된 테스트 범위 충족 여부, 그리고 테스트 데이터의 상세 분석은 의사 결정을 위한 정보를 제공합니다. 관찰된 이상 현상의 처리 및 인증 관련 데이터 제공 여부는 종종 검증 프로세스 종료의 기준이 됩니다.
이러한 엔지니어링 메트릭과 검토는 프로젝트의 기술적 성과를 확인하고 중요한 단계별 진척을 관리하는 데 필수적입니다.
2. 프로그램 관리 진행 메트릭
프로그램 관리 관점에서 진행 상황을 평가하는 메트릭은 엔지니어링 관점과 달리 마일스톤 로드맵, 리뷰 이벤트, 그리고 특정 산출물을 통해 수집됩니다. 이를 통해 개발 상황을 점검하거나 필요한 조치를 신속히 취할 수 있습니다. 프로그램 관리 지표의 일반적인 소스는 작업 단위(예: 스토리, 기능, 사용 사례, 기능들)의 완료 상태와 이에 따른 일정 및 비용 데이터입니다.
완료 기준(Definition of Done)은 개발 중인 항목이 완료되었다고 판단하기 위해 충족해야 할 모든 기준을 정의하는 데 사용됩니다. 이 기준을 확립하는 과정에는 정부와 계약자가 합의하여 업무의 완료 여부를 확인하는 절차가 포함됩니다. 대부분의 프로그램 관리 진행 메트릭은 애플리케이션 라이프사이클 관리 도구에서 자동으로 수집이 가능합니다. 이러한 도구는 데이터를 자동으로 생성할 수 있으며, 필요에 따라 요약 데이터를 제공하는 추가 도구가 사용되기도 합니다.
주요 프로그램 관리 메트릭 유형은 다음과 같습니다:
- 기능 완료 상태(인크리먼트 내): 인크리먼트는 엔지니어링 또는 테스트 빌드를 계획할 때 자주 사용되는 시간 단위로, 작업 산출물과 함께 검증을 지원합니다. 인크리먼트는 보통 1~2주간 지속되는 반복(iteration)으로 구성되며, 완료된 기능의 수를 측정하여 진행 상황을 파악합니다. 이러한 진행 데이터는 보통 번다운 차트에 표시되며, 기능의 완료 기준과 승인 기준을 통해 일정 수준의 통합 기능을 제공했음을 나타냅니다. 예를 들어:
- 완료된 기능 수와 계획된 기능 수를 비교하면 예상 시간 대비 실제 완성도를 알 수 있습니다.
- 특정 기능의 완료된 기능 수와 예상된 기능 수를 비교하여 전체 기능의 완료 추정치를 계산할 수 있습니다.
- 사용자 스토리 완료 상태(반복 내): 사용자 스토리 데이터는 작업을 수행하는 팀에게 더 유용하지만, 스토리 완료 데이터를 일정하게 유지하는 것은 정부에도 중요한 통찰을 제공합니다. 만약 스토리 완료 수치가 변동이 크다면, 개발 프로세스에 불안정성이 있을 가능성이 높고, 개발이 지연되거나 스토리의 난이도와 크기가 균일하지 않다는 것을 의미할 수 있습니다. 반복 단계에서 계획 대비 진행 상황을 평가하는 것은 소프트웨어 통합의 중요성을 고려할 때 불확실한 접근일 수 있습니다. 이때 지속적인 통합 전략이 필요합니다.
- 추적 매트릭스 보고서: 프로그램 관리자는 이 보고서를 통해 이해관계자에게 프로그램 우선순위에 따른 작업 진행을 확인할 수 있습니다. 개발 또는 테스트 환경 업그레이드, 진화하는 테스트 자산 유지, 그리고 기타 기술 진전 지원 요소들을 고려하는 것은 어려울 수 있습니다. 이 보고서는 집계된 측정을 통해 감독자가 계약된 기능의 완료 상태를 확인할 수 있도록 보조해 줍니다.
- 보고된 결함/유출 결함: 작업 완료 후 발견된 결함은 완료 기준이 약하거나 해당 기준을 따르지 않았음을 나타낼 수 있습니다. 많은 결함이 유출될 경우 완료 데이터와 메트릭에 대한 신뢰도가 저하되며, 결함 수정을 위해 개발 자원이 추가적으로 투입되므로 진행 속도가 늦어지게 됩니다.
이와 같은 프로그램 관리 메트릭은 프로젝트의 목표에 맞춰 진행 상황을 체계적으로 평가하고 관리하는 데 중요한 역할을 합니다.
3. 획득 진행 메트릭
획득 계획의 목표에 대한 통찰을 제공하는 메트릭에는 종종 프로그램 관리자가 초기 계획에 따라 비용, 일정, 범위를 추적하는 획득가치관리(Earned Value Management System, EVMS)가 포함됩니다. EVMS는 일반적으로 작업 분해 구조(WBS)와 마스터 일정과 연계되어 있으며, 초기에는 주로 컴퓨터 소프트웨어 구성 항목(CSCI)을 중심으로 사용되었습니다. 그러나, 이 방식은 애자일 개발과 잘 맞지 않는 경향이 있습니다. 애자일 방식에 맞춰 제품 백로그를 통해 EVMS를 작성하면 기술적 관점에서의 추적이 가능해집니다. 이는 Agile and Earned Value Management: A Program Manager’s Desk Guide에서 권장하는 방식입니다.
작동 가능한 소프트웨어를 전달하기 위해 요구사항을 기능(capabilities), 특징(features), 사용자 스토리(user stories) 등으로 세분화한 크기 제약을 설정하는 것은 진행 상황을 파악하는 데 일관된 프레임워크를 제공합니다. 이를 통해 WBS가 계약된 기능에 대해 진행 상황을 더 명확하게 나타낼 수 있습니다. 크기 제약은 작업 패키지를 일정한 크기 범위로 정규화하고 추적성을 유지하는 데 중요합니다.
애자일 개발의 Just-in-Time 계획과 EVMS의 롤링 웨이브 전략을 결합하는 접근법은 획득 진행 상황을 보다 정밀하게 평가하는 데 유용합니다. 인크리먼트 계획 활동에서 약속된 기능을 최신 비용 및 크기 정보로 EVMS에 반영하면 근거리 계획에서 더 세밀한 평가가 가능해집니다. 소프트웨어의 CSCI 구조보다 실제 제품 요소에 초점을 맞추면, 운영적으로 관련성이 높은 진행 상황에 더 집중할 수 있습니다.
주로 사용되는 주기는 2주 반복을 포함한 분기별 인크리먼트로 구성됩니다. 각 인크리먼트 내에서 기능이 완료될 수 있도록 충분히 작은 기능으로 세분화하면 추적에 의미 있는 수준의 세부 정보를 확보할 수 있으며, 전달된 제품의 검증과 성숙도도 보장됩니다. 이러한 기능 전달 진행 상황의 분석을 통해 릴리스 성과를 이해하고, 향후 성과에 대한 지표를 예측할 수 있습니다.
EVMS에 대한 간략한 논의에 그치지만, 프로그램 감독 메커니즘은 여기서 논의된 것보다 더 깊이 있는 논의가 필요합니다. 시스템의 총 소유 비용과 실제 운영 성능은 종종 개발 비용보다 더 중요한 요소입니다.
효과적인 측정 프로그램 개발
반복적/점진적 제공 계획의 진행 상황을 평가하려면, 단기, 중기, 장기 계획에 따른 진행 상황을 측정하는 것이 중요합니다. 효과적인 측정 프로그램은 각 계획과 시간 범위에 고유한 관점과 초점을 명확히 식별합니다. 이러한 메트릭 수집은 목표 성취를 입증하는 정보의 적시 전달을 통해 이해 관계자의 신뢰를 유지하는 것에 달려 있습니다. 이해 관계자들은 프로그램의 상황과 메트릭을 통해 추진되는 행동 및 결과에 대해 공통의 이해를 가지며, 이를 통해 계획 대비 진행 상황을 평가하는 데 필요한 통찰을 얻을 수 있습니다.
'System Engineering' 카테고리의 다른 글
시스템 엔지니어링: 시스템 공학 관점과 시스템 사고 (2) | 2024.12.13 |
---|---|
시맨틱 모델링과 지식 그래프 설계 전략 (with 시스템 엔지니어링) (2) | 2024.12.08 |
시맨틱 모델링: 목표, 구성요소, 장점, 응용 (0) | 2024.11.14 |
스크럼 이벤트(Scrum Event): 지속적인 점검과 적응을 위한 공식적인 기회 (0) | 2024.11.02 |
스크럼 팀(Scrum Team): 자율성과 협력으로 목표를 달성하는 핵심 단위 (2) | 2024.11.02 |