소프트웨어 엔지니어링의 역량 성숙도 모델(CMM)
⚡ 스마트 요약
CMM(Capability Maturity Model)은 조직의 소프트웨어 개발 프로세스가 얼마나 성숙했는지 측정하는 데 사용되는 벤치마크입니다. 소프트웨어 엔지니어링 협회(Software Engineering Institute)에서 개발된 이 모델은 팀이 무질서하고 임시방편적인 작업에서 지속적이고 최적화된 개선으로 나아가도록 안내하는 5단계 레벨을 정의합니다.

CMM이란 무엇입니까?
기능 성숙도 모델 이는 조직의 소프트웨어 프로세스 성숙도를 측정하는 벤치마크로 사용됩니다.
CMM은 80년대 후반 소프트웨어 엔지니어링 연구소에서 개발되었습니다. 이는 미 공군의 자금 지원을 받은 연구의 결과물로, 하청업체의 업무를 평가하는 방법으로 개발되었습니다.trac토르. Later1991년에 소프트웨어 개발 성숙도를 평가하기 위해 만들어진 CMM-SW 모델을 기반으로, 여러 다른 모델들이 CMM-I에 통합되었습니다.
CMM(역량 성숙도 모델) 수준이란 무엇입니까?
이 모델은 점진적인 성숙도 수준을 5단계로 정의합니다.
- 처음의
- 반복 가능/관리됨
- 한정된
- 양적 관리
- 최적화
CMM의 다양한 수준에서는 어떤 일이 발생합니까?
아래 표는 각 단계별 활동 및 혜택을 자세히 보여줍니다.
| 레벨 | 활동 | 장점 |
|---|---|---|
| 레벨 1 초기 |
|
없음. 프로젝트는 완전 혼돈 그 자체입니다. |
| 레벨 2 관리 |
|
|
| 레벨 3 정의 |
|
|
| 레벨 4 정량적으로 관리됨 |
|
|
| 레벨 5 최적화 |
|
|
다음 다이어그램은 CMM의 여러 단계에서 발생하는 상황을 그림으로 나타낸 것입니다.
CMM을 구현하는 데 시간이 얼마나 걸리나요?
CMM은 모든 소프트웨어 개발 회사에서 제품 품질을 유지하는 데 가장 바람직한 프로세스이지만, 구현에는 예상보다 시간이 다소 걸립니다.
- CMM 구현은 단기간에 이루어지지 않습니다.
- 단순한 "서류 작업"이 아닙니다.
- 일반적으로 구현에 소요되는 시간은 다음과 같습니다.
- 3-6 개월 -> 준비를 위해
- 6-12 개월 -> 구현을 위해
- 3 개월 -> 평가 준비를 위해
- 12 개월 -> 새로운 레벨마다
CMM의 내부 구조
CMM의 각 레벨은 다음과 같이 정의됩니다. 핵심 프로세스 영역 또는 KPA레벨 1을 제외하고, 각 KPA는 관련 활동들의 집합을 정의하며, 이러한 활동들을 종합적으로 수행함으로써 소프트웨어 기능 향상에 필수적인 목표들을 달성할 수 있습니다.
CMM 레벨별로 KPA 세트가 존재합니다. 예를 들어, CMM 모델-2의 KPA는 다음과 같습니다.
- REQM – 요구사항 관리
- PP – 프로젝트 계획
- PMC – 프로젝트 모니터링 및 관리
- SAM – 공급업체 계약 관리
- PPQA – 프로세스 및 품질 보증
- CM – 구성 관리
마찬가지로 다른 CMM 모델에도 특정 KPA가 있습니다. KPA 구현이 효과적이고 지속 가능하며 반복 가능한지 여부를 확인하려면 다음 기준에 따라 분석합니다.
- 수행하겠다는 약속
- 수행능력
- 수행된 활동
- 측정 및 분석
- 구현 확인
CMM 모델의 한계
이 모델에는 몇 가지 한계점도 있습니다.
- CMM은 프로세스가 어떻게 구현되어야 하는지가 아니라 프로세스가 무엇을 다뤄야 하는지를 결정합니다.
- 이는 소프트웨어 프로세스 개선의 모든 가능성을 설명하는 것은 아닙니다.
- 이 보고서는 소프트웨어 문제에만 집중하고 전략적 사업 계획, 기술 도입, 제품 라인 구축 및 인적 자원 관리는 고려하지 않습니다.
- 이는 조직이 어떤 종류의 사업을 해야 하는지에 대해서는 언급하지 않습니다.
- CMM은 현재 위기에 처한 프로젝트에는 유용하지 않을 것입니다.
CMM을 사용하는 이유는 무엇입니까?
오늘날 CMM은 소프트웨어 업계에서 "인증 마크" 역할을 합니다. CMM은 다양한 방식으로 소프트웨어 품질을 향상시키는 데 도움을 줍니다.
- 이는 반복 가능한 표준 프로세스를 지향하게 하므로, 업무 수행 방법을 배우는 데 걸리는 시간을 줄여줍니다.
- CMM을 실천한다는 것은 개발을 위한 표준 프로토콜을 따르는 것을 의미하며, 이는 팀의 시간 절약에 도움이 될 뿐만 아니라 무엇을 해야 하고 무엇을 기대해야 하는지에 대한 명확한 시각을 제공합니다.
- 질적 향상 활동은 별도의 행사로 생각하기보다는 프로젝트와 잘 어우러집니다.
- 프로젝트와 팀 간의 소통 매개체 역할을 합니다.
- CMM의 노력은 항상 프로세스 개선을 향해 있습니다.



