CMMI: Capability Maturity Model Integration
프로세스 개선을 위한 접근방법인 CMMI. 한마디로 말해 조직의 프로세스 개선 활동을 효율적으로 지원하기 위한 모델이다. 좀더 살펴본다면 기존의 CMM은 조직의 프로세스 능력을 어떠한 방향으로 발전시켜 나가야 하는지에 대한 비전을 단계적으로 제시하는 것이라 한다면 통합(Integration)은 기존 여러가지의 CMM모델들을 하나로 정리했다는 것을 의미한다.
그동안 SEI(Software Engineering Institute: 소프트웨어 엔지니어링 연구소)에서는 소프트웨어 엔지니어링이나 시스템, 소프트웨어 획등 등에 관한 많은 CMM 모델을 개발해왔고 이를 많은 기업과 프로젝트에서 적용하여 활용했다. 그러나 대부분은 복잡하고 관리가 힘든 여러 모델 대신 하나의 모델로 프로세스를 관리하길 원했고 그 결과로 CMMI가 만들어진 것이다.
CMMI는 단순히 모델을 통합했다는 것 이상의 의미를 갖는다. 그 이유는 여러 모델들에서 다르게 사용되던 용어들을 하나로 통일했다는 것과 개별 모델의 프로세스들이 서로 어떤 형태로 관계를 맺고 있는지를 확인하고 일관된 관점에서 재정립했기 때문이다.
CMMI 적용 이유
조직과 프로젝트 현장에서 CMMI를 필요로 하는 경우는 많이 접한다. 그들이 이야기를 가만히 들어보면 여러 이유가 있는데 수긍이 가는 측면이 많다.
♾️ 고객이 원한다.
♾️ 지금까지 CMM를 적용해봤지만 이젠 CMMI고 더 적합하다고 생각한다.
♾️ 프로세스 개선에서 앞서가고자 한다.
♾️ CMMI가 엔지니어링, 소프트웨어 획득, 통합 제품 팀개발 활동 등에 대한 구체적인 방법을 제시한다.
♾️ 그동안 서로 다른 프로세스 평가 및 개선 프로그램을 도입했으나 중복작업에 대한 비용과 혼선이 많다.
이런 이유들로 CMMI를 적용해보고 싶은 조직과 프로젝트 현장의 상황은 어느 정도 파악이 되는데 막상 CMMI를 도입하려는 입장에서는 이 또한 매우 어려운 일로 여긴다는 것도 안다. 이를 실제 현장에 적용하기 위해서는 제일 먼저 조직이 준비가 되어 있어야 하며 잘 받아들기 위한 지원체계 또한 제대로 구축이 되어 있어야 하기 때문이다. 타 조직이나 프로젝트에서 성공했다고 해서 섣불리 일을 진행하기가 쉽지 않은 것이다.
용어 먼저
항상 강조하지만 용어가 최우선이다. 여러 이해관계자들이 모여 하나의 목표를 설정하고 나아가고자 한다면 반드시 서로 합의하고 사용할 용어를 정의해야 한다. 특히 CMMI는 기존의 포괄적인 개념이 아닌 하나의 통합된 환경과 목표를 가지기 때문에 더욱 그러하다. 그럼 가장 중요한 용어 몇가지를 정의해 보자.
🚩 모델
: 조직의 프로세스에서 어떤 부분이 잘못되었는지 확인시켜주는 가이드라인. 단순하게 프로세스를 가져와 그대로 적용하는 것이 아니며 어떻게 업무를 수행하는가 보다는 무슨 일을 수행하는가에 대한 사례로 정의된다. 이는 다른 말로 수행했던 여러 성공사례의 모음집으로 말할 수 있다.
🚩 조직
: 프로세스 개선 활동을 수행하는 가변적 단위. 가변적인 단위는 퍼즐 조각처럼 더 이상 바꿀 수 없는 개념이 아닌, 레고 블록처럼 다양한 조합을 통해 여러 가지 모양을 만들 수 있는 개념이다. 그러므로 전사 차원에서 프로세스 개선 활동을 수행할 경우 조직은 회사 전체를, 사업부나 부서 차원에서 프로세스 개선 활동을 추진할 경우에는 해당 사업부나 부서를 말한다. 또한 한 사람만으로 구성된 조직도 조직으로 구성할 수 있다.
🚩 프로세스
: 하나의 문제를 해결하기 위한 일련의 작업모음. 이 작업들은 수행하는 사람들이 쉽게 이해할 수 있어야 하고 이를 사용하는 모든 사람들이 하나의 일관된 행동을 할 수 있도록 명확하게 정의되어야 한다. 이를 통해 조직에서 발생하는 모든 중복작업을 제거하고 최소화해야 한다.
🚩 CMM
: 능력 성숙도 모델. 소프트웨어를 개발하는 조직을 관리하기 위한 체계로 조직의 프로세스 능력에 대한 목표와 비전을 제시하며 수많은 조직의 여러 활동 중 의미있는 316개의 핵심활동(Key Practice)을 정리하고 이를 다시 그룹화하여 18개의 핵심 프로세스 영역(Key Process Area)으로 구성되어 있다.
🚩 프로젝트
: 고객에게 제품, 서비스를 제공하기 위해 요구되는 모든 활동과 자원. 여러 프로젝트가 모여 하나의 프로젝트가 될 수도 있다. 프로젝트는 명확한 목표와 목적을 가지고 반드시 시작일과 종료일이 있어야 한다. 반복되지 않고 유일하며 매우 치밀하고 구체적이어야 한다.
🚩이행(Implementation)
: CMMI 개별 프로세스 영역에서 정의하고 있는 활동을 조직 내부에서 수행하는 것으로 하나의 프로세스를 수립한 이후 그에 따라 업무를 수행한다. 내재화로 가기 위한 시작점이자 반복행위이다.
🚩내재화(Institutionalization)
: 하나의 프로세스가 조직 문화로 스며들어 모든 사람들이 아주 당연하게 해당 활동을 수행하는 것. 이를 통해 특정 업무를 다른 사람이 와서 수행하더라도 똑같은 방식으로 수행한다면 내재화는 성공한 것이다.
준비
CMMI는 조직의 프로세스 개선 활동을 지원하기 위한 여러 모델 중 하나이며 기존 모델들의 통합으로 조직의 많은 영역에서 도움을 줄 수 있다. 하지만 다양한 조직과 프로젝트에 적용할 수 있도록 하기 위해서는 포괄적인 개념이나 용어를 사용하고 있기 때문에 이를 적용하기 위하여 충분한 학습과 이해가 반드시 전제되어야 한다.
그 이후 해당 조직과 프로젝트의 구체적인 적용 방법에 대해서 한번 더 심사숙고하고 의사결정을 내려야 한다. 물론 단계과 범위에 따라 다르기는 하지만 여기엔 많은 시간과 비용이 들어가며 특히 경영진의 관심 여하에 따라 이 프로젝트도 성공과 실패로 나뉘기 때문이다. 무엇보다도 경영진의 지속적인 관심이 프로젝트 성공의 관건이다. 남들이 했다고 따라할 것은 절대 아니다.
※ 주요국 CMMI 인증 현황
SWSTAT에 따르면 2024년 5월 기준으로, 전 세계에서 CMMI를 인증받은 국가 1위는 중국(11,101건, 레벨5(2,273건), 레벨3(8,783건)), 2위는 미국(1,330건, 레벨5(40건), 레벨3(1,185건)), 3위는 인도(552건, 레벨5(182건), 레벨3(465건))이고 한국은 7위(48건, 레벨5(9건), 레벨3(27건))으로 아시아에서는 중상위권이다. 이렇게 보면 상당히 적게 보이지만 CMMI 인증 유효기간은 3년으로 이를 감안해서 보면 된다.