SW-CMM은 프로세스 개선이라는 아이디어가 보편적으로 퍼지면서 널리 쓰이기 시작했고 전반적인 산업에서 이를 위해 사용됨을 알 수 있다. 비록 미국 국방성에서 먼저 시도 되었지만 프로세스 개선에 도움이 된다는 것을 알고 여러 기업에서 자발적으로 노력하게 되었다.
SW-CMM을 통해 P사는 9년 동안 꾸준히 39%의 결함을 줄였음을 알 수 있다.
초기에(Pre-1922) 25개의 회사가 level 1에서 2로 갈때 최소 15에서 최대 98개월을 소요했다는 것을 알 수 있다. 중앙값은 39개월이다. 30개월을 소요했을때 25%의 회사가, 72개월을 소요했을때 75%의 회사가 1에서 2레벨로 넘어갔음을 파악할 수 있다.
CMMI(Capability Maturity Model Integration, 능력 성숙도 통합 모델)
CMMI는 기존 능력 성숙도 모델(CMM)을 발전시킨 것이다. 기존에 소프트웨어 품질보증 기준으로 사용되언 SW-CMM과 시스템 엔지니어링 분야의 품질보증 기준으로 사용되던 SE-CMM을 통합하여 개발한 후속 평가 모델이다. 1~5단계까지 있으며, 5단계가 가장 높은 수준이다.
이전에는 해당 프로젝트에 필요없는 사안이라도 그것이 부족하면 다음 단계로 진급을 못했다. 하지만 CMMI는 관심 있는 프로세스 영역에 대해서만 등급을 산정하며 이에 대한 대안을 제공한다.
해당 그림은 단계별 KPA(Key Process Area)를 나타낸다. 위와 같은 사항들을 만족함으로써 단계를 올릴 수 있다.
예를 들어 2단계로 올라가기 위해서는 형상관리, 하청 / 용역 관리, 요구사항 관리 등이 되어야 하고, 4단계를 받기 위해서는 정량적 프로세스 관리가 필요함을 알 수 있다.
CMMI의 성공적인 예시에는 왼쪽의 표와 같은 Martin Example이 있다. level 3에서 level 5로 성장하기 까지 12년이 소요됐고, 그 과정에서 결함은 600에서 15 로, 재작업률은 1/3으로 줄었음을 알 수 있다. 또한 오른쪽의 표를 통해 2005년에 전반적인 CMMI의 결과를 알 수 있다.
SPI(Software Process Improvement, 소프트웨어 프로세스 개선)
SPI의 팁으로는 다음과 같은 것들이 있다.
- 처음의 성공 사례를 만드는 것이 중요하다. 크게 시작하는 것보다 작아도 성공 사례를 만드는 것이 중요하다.
- 레벨에 대한 달성 자체가 목적이 되어서는 안된다. 효과적으로 일하기 위한 것이 본질이고, 그렇게 하다보면 레벨은 따라오는 것이다.
- 성공이 진짜로 이뤄진다는 것을 입증해라.
‘아래에서 1/3 정도만 도달해도 비용 측면에서 25% 정도의 변화를 가져올 수 있다’라는 설명이 가능하다.
생각해볼점
- 소프트웨어 프로세스 개선을 위한 노력을 개발자와 프로세스 개선자 입장에서 생각해보기
- 각각의 kpa에 대해 알고 있어야함. 위키피디아 수준에서 각각 kpa 뭐고 못할때 무슨일 일어나고 장점은 뭐고. 각각 kpa 에서 나온 best practice에 대해 이게 왜 best practice인지 설명할 수 있어야함.