형상 관리
형상 관리는 프로젝트 내 각종 산출물에 대해서 각각의 식별성과 추적성을 확보하고 유지관리하기 위함이다. 이를 통해서 프로젝트 수행 중 제품/서비스에 대한 가시성을 확보하고 PM과 여러 이해관계자의 관리 활동에 도움을 줄 수 있다.
형상 관리의 주요 활동은 프로젝트 생명주기 동안 기준선이 되는 형상 항목을 식별하는 형상식별 활동, 형상 항목의 상태 및 수정 요구를 기록하고 보고하는 형상 상태 보고, 형상 항목의 완전성, 일관성, 정확성을 보장하기 위한 형상 감사 및 검토 등으로 나눠볼 수 있다.
형상 관리와 관련한 몇 가지 주요 용어들은 다음과 같다.
♾️ 형상 요소(component): 하나의 시스템의 기본적인 부분
♾️ 형상기준선(configuration baseline): 승인된 기능적 형상 문서
♾️ 기능적 형상 감사(fuctional configuration audit): 형상 항목이 결과물의 기능, 성능, 상호운용성, 인터페이스 요구사항을 만족시키는지 검증하기 위해 인수에 앞서 형상 항목의 특성에 대하여 공식적으로 수행하는 시험
♾️ 형상 항목(configuration item): 형상 관리를 위한 단위로 하드웨어, 소프트웨어 요소들의 집합
♾️ 형상 감사(configuration audit): 요구되는 모든 형상 항목이 만들어졌는지, 현재 형상이 명세화된 요구사항에 일치하는지, 기술적 문서화 작업이 완전하고 정확하게 형상 항목을 서술하는지, 모든 변화가 해결되었는지를 증명하는 과정
이러한 형상 관리도 다른 작업처럼 착수의 과정을 가진다. 형상 관리착수는 형상 관리 계획수립 및 문서화, 자원확보, 책임과 권한 설정, 훈련 등의 타스크를 가지며 활동의 결과로 형상 관리 계획이 작성된다. 아래는 주요 형상 관리 계획들이다.
♾️ 목적, 범위, 정의 등
♾️ 조직 및 (내외부) 조직간 관계, 책임자와 R&R
♾️ 형상 관리 자원(도구, 기법, 방법론 등)
♾️ 각종 정책, 표준, 절차, 보고서 등
♾️ 비용, 일정
형상식별
형상식별 활동은 프로젝트의 형상 항목을 정의하여 문서화하고 이들의 특성을 기록하는 활동이다. 이를 통해 각 프로젝트의 산출물의 추적성을 확보하고 접근 가능성을 높인다. 이와 관련한 형상 항목에는 모든 소스 코드를 비롯하여 관련 문서, 자료 등 많은 요소가 해당하는데 이를 너무 많이 선정하거나 반대로 너무 적게 선정하면 관리의 어려움이 있다. 너무 많다면 가시성이 낮아지고 너무 적다면 형상 관리 목적을 달성하기 어렵게 된다.
형상식별 활동의 타스크는 기능 형상 식별 및 기능 기준선 설정, 할당 형상 식별 및 할당 기준선 설정, 제품 형상 식별 및 제품기준선 설정, 식별의 호환성 식별, 인터페이스 통제 식별, 형상식별 코드 부여 및 각종 기록 등이 포함된다. 이러한 활동의 결과물로는 형상 항목 선정목록, 기능 기준선, 할당 기준선, 제품기준서, 형상 항목 코드 부여 체계, 버전 및 릴리스 관리체계, 기능명세서, 개발 명세서, 제품 명세서, 인터페이스 통제서, 시스템 명세서 등이 있다.
— 주요 형상 항목들 —
♾️ 소스 코드
♾️ 지원 소프트웨어
♾️ 문서
♾️ 소프트웨어 개발체계, 라이브러리
♾️ 프로젝트 계획, 시험계획
♾️ 형상 관리계획, 절차
♾️ 개선보고서, 형상 관리보고서 등
형상 통제
형상 통제는 기준선으로 설정된 형상 항목에 대한 변경 요청을 체계적으로 처리하고 구현하는 활동으로 변경 요청, 조정, 평가, 협조, 승인 및 기각 등의 과정과 밀접하다. 이런 형상 통제의 주요 타스크는 변경 기준 설정, 변경 분류, 변경요청서 준비, 형상 통제위원회 활동, 변경 및 변경 결과 평가, 형상 통제, 변경 관련 문서 및 기록관리가 있고 활동의 산출물은 변경요청서, 변경요청서 검토 및 승인기록, 변경보고서 등이 있다.
여기서 변경 기준을 설정하는 이유는 프로젝트를 성공적으로 완수하기 위해 필요한 경우에만 변경을 할 수 있게 하기 위함이다. 이렇게 변경을 할 수 있는 원인으로는 문제점의 수정, 운영상의 변경 또는 요구사항의 변경을 수용, 실질적인 프로젝트 비용 절감 효과 발생, 프로젝트에 중요한 이익을 제공하는 면제 등이 있다. 또한 변경 수준에 대한 분류는 보통 2단계로 구분한다.
✔️ 1급: 기능 형상, 할당 형상 혹은 제품 형상 식별 결과에 영향을 미치는 경우
✔️ 2급: 1급 기준 외 철자 오류, 오류가 있는 코드의 재컴파일, 주석의 첨가 등과 같은 사소한 변경
PM은 형상 관리계획, 형상 관리 절차, 형상 항목 선정, 변경의 검토/평가, 처리, 승인/기각, 구현 권한을 가지는 형상 통제위원회를 운영하는 것이 좋다. 이 위원회는 형상과 관련한 모든 활동의 대표자로 구성하고 보통은 PM이 임명할 수 있다. 이들은 주요한 변경 필요성, 기술 요소 및 프로젝트 내 모든 이벤트의 영향도를 검토하는 역할을 가진다.
이러한 과정들이 모두 진행되면 보고 활동한다. 보고는 형상을 효율적으로 관리하는데 필요한 정보를 기록하고 관리하며 적절한 형상 항목이 식별되고 변경 관리가 충실하게 수행되어야 정확한 형상 상태를 보고할 수 있다. 이 활동의 주요 타스크는 형상 상태 기록, 형상 상태 보고이며 활동의 결과는 형상 상태 기록, 형상 상태 보고서가 된다. 이후 감사 활동을 통해 형상 항목이 계약서 등에 명시된 요구사항을 만족하는지를 확인하기 위하여 인수 활동 이전에 형사감사를 행하게 된다.
※ 관리 도구
프로젝트를 진행하면서 단계별로 도입되고 운영하는 시스템들이 워낙 많다. 하지만 형상 관리만큼 관리 도구의 역할이 큰 경우도 없다. 이는 사람 손으로 할 수 있는 일이 아니며 여러 도구의 힘이 필요로 한다. 최근 많이 사용하는 관리 도구에는 SVN, CVS, Git 등이 있고 개발자는 개발뿐만 아니라 이러한 도구들을 자유자재로 활용할 수 있는 능력!을 갖춰야 한다. 가끔은 잘 활용하는 사람임에도 항시 사용하는 기능에만 익숙할 뿐 추가로 필요하거나 예외 사항이 발생했을 때 대처를 못하는 경우도 많다. 도구는 말 그대로 누구의 손에 쥐여주느냐에 따라 도깨비방망이도 될 수 있고 똥 막대기가 될 수도 있다. 그러니 공부할 것이 참 많아 행복하지 않은가? (AI도 한 몫!!)