CMMI

기술노트

🎖️ CMMI (Capability Maturity Model Integration)

CMMI는 소프트웨어 및 시스템 개발 조직의 프로세스 성숙도와 역량을 평가하고, 개선하기 위한 모델입니다. 카네기 멜런 대학의 소프트웨어 공학 연구소(SEI)에서 개발했으며, 조직이 얼마나 체계적이고 예측 가능한 방식으로 프로젝트를 수행하는지를 측정하는 척도로 사용됩니다.


📈 CMMI의 5단계 성숙도 레벨

CMMI는 조직의 프로세스 성숙도를 5개의 레벨로 정의합니다.

  • 레벨 1: 초기 (Initial) : 프로세스가 거의 없고, 예측 불가능하며 혼란스러운 상태. 프로젝트의 성공이 특정 개인의 역량에 의존합니다.
  • 레벨 2: 관리 (Managed) : 기본적인 프로젝트 관리(요구사항, 계획, 측정 등)가 이루어지는 상태. 유사한 프로젝트에 대해 성공을 반복할 수 있습니다.
  • 레벨 3: 정의 (Defined) : 조직 전체의 표준 프로세스가 정의되고, 모든 프로젝트가 이 표준을 따르는 상태. 일관된 프로세스를 통해 안정적인 성과를 냅니다.
  • 레벨 4: 정량적 관리 (Quantitatively Managed) : 프로세스의 성과를 정량적인 데이터와 통계적 기법을 통해 측정하고 관리하는 상태. 데이터 기반의 예측과 통제가 가능합니다.
  • 레벨 5: 최적화 (Optimizing) : 정량적인 데이터를 바탕으로, 지속적으로 프로세스를 혁신하고 최적화하는 상태.

⚙️ CMMI 모델의 표현 방식

  • 단계적 표현 (Staged Representation) : 위에서 설명한 5단계 성숙도 레벨을 순차적으로 달성하는 데 중점을 둡니다. 조직의 전반적인 프로세스 성숙도를 평가하는 데 주로 사용됩니다.
  • 연속적 표현 (Continuous Representation) : 조직이 필요로 하는 특정 프로세스 영역(PA, Process Area)을 선택하여, 각 영역별로 역량 레벨(0~5)을 평가하고 개선하는 데 중점을 둡니다. 더 유연한 접근 방식입니다.

💡 기술사 핵심 Point

  • CMMI의 핵심 목표는 프로세스 개선을 통한 소프트웨어 품질 및 생산성 향상입니다.
  • CMMI 인증은 조직의 소프트웨어 개발 역량이 일정 수준 이상임을 객관적으로 증명하는 수단으로 활용되며, 공공기관 사업 등에서 입찰 자격 요건으로 요구되기도 합니다.
  • CMMI는 전통적인 폭포수 모델 기반의 계획 중심적인 개발 문화에 더 적합하다는 비판도 있으며, 애자일 방법론과 CMMI를 접목하려는 'CMMI for Agile'과 같은 연구도 진행되고 있습니다.
  • CMMI는 소프트웨어뿐만 아니라, 서비스, 획득 등 다양한 분야에 적용될 수 있는 통합 모델입니다.