성공적인 프로젝트 수행을 위해서 형상 관리는 반드시 수행되어야 하는 매우 기본적인 프로세스입니다. 형상 관리 실무들은 Automotive SPICE®나 CMMI®에서 능력도(Capability)이던 성숙도(Maturity)이든 수준(Level) 2를 달성하려면 꼭 수행해야 하는 필수 실무로 자리하고 있습니다. 이번 기사에서는 지난 Vol.9에 이어 형상 관리 주요 활동 중에서 형상 통제(Configuration Control) 및 형상 상태 파악(Configuration Status Accounting)에 대해 알아봅니다.
형상 통제 (Configuration Control)
형상 통제는 형상 관리의 주요 활동 중의 하나입니다. 형상 통제 활동은 주로 변경을 다루게 되는데, 변경은 개발 프로젝트의 고유한 특성입니다. 개발 프로젝트의 본질은 당면한 문제 해결에 대한 불확실하고 모호한 니즈를, 명확하고 실체적인 솔루션으로 변환하는 결정의 과정이기 때문입니다. 따라서 변경을 체계적으로 관리해야 하는 것은 프로젝트의 성공에 매우 중요합니다. 형상 통제의 주요 목적은 형상 항목에 대한 모든 변경 사항을 통제하고 체계적인 방식으로 조정(Coordination), 평가(Evaluation), 승인(Approval), 구현(Implementation) 및 문서화(Documentation)하는 것입니다. 이 활동은 전체 프로젝트 생명주기 동안 시스템 또는 제품의 무결성, 안정성 및 추적 가능성을 보장합니다. 형상 통제 활동은 아래에 설명된 여러 세부 활동으로 구성됩니다.
1.1 기준선 (Baseline) 설정
어떤 것의 변경을 인식하기 위해서는 우선 기준이 필요합니다. 기준이란 변경 후를 정확하게 정의하기 위해서 필요한 변경 전 상태를 의미합니다. 즉, 변경 ΔX를 알기 위해서 X2 및 X1을 알아야 하는데 여기서 X1을 기준으로 정합니다. 이것을 보통 형상 관리에서 기준선(Baseline)이라고 합니다.
변경되는 어떤 것, 즉 대상이 무엇인가에 따라 기준선에 포함되는 데이터나 항목들은 달라 집니다. 예를 들어 변경의 대상이 복잡한 시스템이라면 그 시스템의 형상을 정의하기 위해서 많은 형상 항목들과 형상 정보들을 담고 있는 자료(문서)들을 포함해야 할 수 있습니다. 반면에, 간단한 문서 하나가 변경 관리의 대상이라면 베이스라인을 설정할 때 그 문서 하나만 지정하면 충분할 수 있습니다.
개발 프로젝트에서 베이스라인을 보통 여러 번 설정하게 되는데 사실 무결성을 완벽하게 유지하는 것이 어려울 수 있기 때문에 실용적인 측면에서 변경을 관리하기 위한 기준을 여러 차례 세우게 됩니다. 예를 들면 고객에게 제품을 릴리스할 때마다 베이스라인을 설정하기도 하는데 고객과 제품의 형상에 대해 이야기 할 때 특정 릴리스를 기준으로 변경을 인식하고 관리하면 편리하기 때문에 그렇습니다.
1.2 변경 요청 (Change Request)
형상 통제 활동의 중요한 세부 활동은 변경 요청을 하는 것입니다. 이 요청은 다양한 이해관계자(개발팀 기타 다른 인원 또는 고객)로부터 올 수 있습니다. 변경요청에는 제안된 변경에 대한 명확하고 자세한 설명, 변경의 근거 및 시스템 또는 제품에 대한 예상 영향이 포함되어야 합니다.
1.3 변경 요청을 다루기 위한 조정 (Coordination)
조정은 형상 통제 활동의 중요한 측면입니다. 프로젝트 관리자, 개발자, 테스터, 지원 직원 및 최종 사용자를 포함한 다양한 이해 관계자 간의 효과적인 조정이 없으면 형상 통제 활동이 분리되고 비효율적일 수 있습니다. 적절한 조정을 통해 변경 사항이 원활하게 구현되고 관련된 모든 당사자가 협업할 수 있게 됩니다.
협업 및 커뮤니케이션, 충돌 및 중복 최소화, 일관성 보장, 자원 할당 및 예약 등을 위해 형상 통제 활동에서 조정 활동은 필수적이며, 잠재적인 위험과 충돌을 최소화하면서 변경 사항을 효과적이고 효율적으로 구현하는 데 도움이 됩니다.
1.4 변경 요청 평가 (Evaluation)
변경 요청이 제출되면 철저한 분석 및 평가 과정을 거칩니다. 여기에는 기술적 타당성, 비용, 일정 영향 및 잠재적 위험 평가가 해당됩니다.
제안된 변경과 관련이 있습니다. 분석에는 대체 솔루션에 대한 평가와 시스템의 성능, 품질 및 보안에 대한 잠재적 영향에 대한 결정도 포함될 수 있습니다.
1.5 변경 요청 승인 또는 기각 (Approval and Disapproval)
제안된 변경의 반영 여부를 결정하기 위해서는 적절한 권한이 주어진 의사결정 주체가 필요합니다. 이 결정 주체는 대개 여러 이해 관계자와 최종 의사 결정자로 구성된 형상통제위원회(CCB)라는 명칭으로 불리 웁니다. 형상통제위원회는 대개 변경의 종류나 그 영향력 등에 따른 결정 권한수준에 따라 여러 수준에서 존재할 수 있습니다. 변경의 성격에 따른 적절한 권한을 가진 위원회는 변경 요청의 분석 및 평가 결과를 검토하고 이 정보를 기반으로 제안된 변경 사항의 반영을 승인할지 또는 거부할지 결정합니다. 결정은 문서화되어 모든 관련 당사자에게 전달되어야 합니다.
그림: Coordination, Evaluation and Disposition actions
1.6 승인된 변경의 구현 (Implementation)
형상통제위원회가 변경 요청을 승인하면 개발팀은 변경의 구현을 진행합니다. 이 세부 활동에는 형상 정보의 수정 및 형상 항목의 변경, 프로젝트 일정 및 리소스에 필요한 조정이 포함될 수 있습니다. 또한 개발팀은 영향을 받는 모든 당사자에게 변경 사항 및 관련 영향에 대한 정보를 제공해야 합니다.
1.7 구현된 변경 사항의 검증 및 확인 (Verification and Validation)
변경이 구현된 후 개발팀은 변경이 올바르게 실행되었고 의도한 목표를 충족하는지 검증하고 확인해야 합니다. 이 세부 활동에는 새로운 문제를 도입하거나 시스템 또는 제품에 부정적인 영향을 주지 않고 변경 사항이 적절하게 통합되었는지 확증하기 위해 테스트 및 검토를 수행할 수 있습니다.
1.8 형상 기준선 및 문서 갱신 (Updating baseline and documentation)
구현된 변경 사항이 검증 및 확인되면 개발팀은 형상 기준선과 문서를 갱신하여 시스템 또는 제품의 변경된 새로운 형상 상태를 반영해야 합니다. 여기에는 형상 항목 기록, 버전 통제 저장소(repository) 및 기타 관련 문서의 갱신 활동이 포함됩니다. 적절히 기록을 보관함으로써 형상통제 활동에서 추적성과 책임성을 보장하게 됩니다.
그림: Implementation of Approved Changes
형상 상태 파악 (Configuration Status Accounting)
흔히 형상 상태 기록 및 보고로 번역을 하는 Configuration Status Accounting (CSA)는 전체 생명 주기 동안 모든 형상 항목에 대한 형상 정보의 체계적인 기록, 보고 및 추적과 관련된 형상 관리의 필수 활동입니다. 기록과 보고는 CSA의 수단이며 CSA 자체의 목적은 형상 항목의 형상 정보 및 그 상태를 명확하게 알아내는데 있으므로 여기서는 형상 상태 파악으로 번역합니다. 형상 상태 파악을 위해서는 형상 항목의 현재 상태, 버전, 기록 및 변경 사항 기록들을 정확하게 알아낼 수 있어야 합니다.
2.1 형상 상태 파악의 주요 목표
- 추적성: 형상 상태 파악은 형상 항목의 추적성을 유지하여 개발팀이 특정 시점에서 모든 항목의 내역과 계보를 결정할 수 있도록 합니다. 이것은 변경의 영향을 이해하고 문제 또는 결함의 해결을 촉진하는 데 중요합니다.
- 가시성: 형상 항목 및 해당 상태에 대한 포괄적인 최신 보기를 제공함으로써 형상 상태 파악은 프로젝트 이해관계자가 변경, 자원 할당 및 프로젝트 계획에 대해 정보에 입각한 결정을 내릴 수 있도록 합니다.
- 책임: 형상 상태 파악은 형상 항목에 대한 모든 변경 사항이 승인되고 문서화되며 적절하게 구현되도록 하여 개발팀 내에서 책임을 강화합니다.
- 감사 및 규정 준수: 형상 상태 파악은 형상 항목, 변경 사항 및 상태에 대한 정확하고 완전한 기록을 유지함으로써 감사 활동을 지원합니다. 이 정보는 산업 표준, 규정 요구 사항 또는 내부 정책 준수를 입증하는 데 사용할 수 있습니다.
2.2 형상 상태 파악을 위한 세부 활동
- 형상 상태 파악 활동의 정의 및 설정: 조직은 역할 및 책임, 절차 및 도구를 포함하여 형상 상태 정보를 유지 관리하고 갱신하기 위한 공식 절차를 개발합니다.
- 항상 항목 식별: 각 형상 항목에는 고유한 식별자가 부여되어 전체 생명주기 동안 추적하고 관리할 수 있습니다.
- 형상 항목 정보 기록: 현재 상태, 버전, 의존성 및 변경 기록을 포함하여 각 형상 항목에 대한 관련 정보는 CMDB(형상 관리 데이터베이스) 또는 기타 적합한 저장소(repository)에 기록 및 유지 관리됩니다.
- 변경 사항 추적: 변경 사항이 제안, 승인 및 구현될 때 CSA 프로세스는 형상이 그에 따라 상태 정보가 갱신되어 시스템 또는 제품의 현재 상태를 정확하게 반영합니다.
- 보고서 생성: 변경 사항, 미해결 문제 또는 예정된 마일스톤을 포함하여 형상 상태에 대한 개요를 이해 관계자에게 제공하기 위해 보고서를 생성합니다.
- 감사 및 검토 수행: 형상 상태 정보의 정확성과 완전성을 보장하고 CSA 프로세스에서 개선이 필요한 영역을 식별하기 위해 정기적인 감사 및 검토를 수행합니다.
그림: Configuration Status Accounting Activity Model (adapted from MIL-HDBK-61A)
2.3 형상 상태 파악의 중요 속성
- 정확성: 관련된 모든 형상 항목과 모든 형상 정보를 정확하게 포함
- 추적성: 현재, 과거뿐만 아니라 미래(계획)에 대한 형상 상태도 추적 파악 필요
- 신속성: 상태 파악이 필요한 시점에 지체 없이 실시간 상태 정보 제공
2.4 형상 상태 보고서 및 함정
형상 상태 보고를 정기적인 활동으로만 생각하고 수행하는 경향이 있습니다. 시스템이 복잡 방대하여 모든 형상 정보를 수집하고 정리하는데 시간이 소요되는 경우, 정기적인 보고 활동은 필수적일 수 있습니다. 제품 정보 관리 시스템이 그다지 발달하지 않은 과거 개발 환경에서 자주 목격되는 활동입니다. 그러나, 모든 형상 항목과 그 정보를 수집하여 이해 관계자에게 실시간 제공하는 시스템이 있다면 정기적인 상태 보고서의 필요성은 현저히 줄어들 수 있습니다. 그럼에도 불구하고 정기적인 상태 보고서의 발행과 이를 이용한 의사소통은 개발 프로젝트 진행에 이익을 가져다주는 측면도 있습니다. 자칫 아무도 이용하지 않는 보고서만 만들어 내는 활동이 되지 않도록 정보 수요에 맞추어 적절한 상태 보고가 이루어질 수 있도록 해야 합니다.
결론
형상 통제(Configuration Control): 형상 항목(CI)에 대해 제안된 모든 변경 사항이 체계적으로 평가, 승인 또는 기각되도록 합니다. 기준선을 설정하여 변경을 통제하고 관리하여 시스템 또는 제품의 무결성과 일관성을 유지하도록 합니다. 형상 통제의 주요 측면은 다음과 같습니다.
- 기준선 수립
- 변경 요청
- 변경 활동 조정
- 변경 영향 분석
- 변경 승인
- 변경 구현
- 변경 검증 및 확인
형상 상태 파악 (Configuration Status Accounting): 모든 형상 항목, 해당 상태 및 항목 간의 관계에 대한 체계적인 기록, 보고 및 추적을 하는 것입니다. 시스템 또는 제품의 현재 상태에 대한 가시성을 제공하고 시간이 지남에 따라 변경 사항을 추적할 수 있도록 도와줍니다. 형상 상태 파악의 주요 측면은 다음과 같습니다.
- 기록 보관: 모든 형상 항목, 해당 속성 및 변경 사항에 대한 정확한 최신 기록을 유지합니다.
- 추적 가능성: 변경 사항 및 관계를 포함하여 각 형상항목(CI)의 기록이 문서화되고 접근할 수 있도록 보장합니다.
- 보고: 형상 항목(CI) 상태 및 전체 형상 관리에 대한 상태를 이해 관계자에게 제공합니다.
요약하면 형상 통제는 시스템 또는 제품에 대한 변경의 통제에 중점을 두는 반면 형상 상태 파악은 시스템의 현재 상태 및 기록을 정확하게 추적하고 보고합니다. 두 가지 주요 활동은 전체 생명 주기 동안 시스템 또는 제품의 무결성, 일관성 및 추적 가능성을 유지하는 데 매우 중요합니다.
참고 자료
- MIL-STD-973 CONFIGURATION MANAGEMENT, the Department of Defense
- EIA-639™C Configuration Management Standard, SAE
- Automotive SPICE® Process Assessment/Reference Model Version 3.1
- CMMI® V2.0, ISACA
- ISO/IEC/IEEE 24765 Systems and software engineering — Vocabulary, International Organization for Standardization
- A guide to the Project Management Body of Knowledge PMBOK GUIDE, 6th Edition, PMI
- Automotive Core training series – Configuration Management material, Seon ENS Inc.