프로세스 능력 평가 모델 - CMMI

표준 프로세스가 필요한 이유

 

소프트웨어 개발에서 표준 프로세스는 요리의 레시피와 같다.

프로세스를 통해 조직원들이 우왕좌왕 해매는 시간을 줄여주고 생산성을 높일 수 있다.

 

네비게이션과 같이 표준 프로세스는 기준과 목표, 방향을 제시해주기 때문에 업무 처리 프로세스가 명확하고 계획적이며 결과를 충분히 예측할 수 있다.

 

 

만약 어떤 조직이 표준 프로세스를 사용하고 지속적으로 개선하게 될 경우, 조직의 업무 수행 능력 및 품질이 향상되고 프로젝트의 정량적 목표 및 계획을 수립할 수 있다.

즉, 소프트웨어 공학의 목표인 개발의 생산성 향상과 품질 향상을 꾀할 수 있다.

 

 

 

 

 

CMMI 모델 ( Capability Maturity Model Integration )

 

능력 Capability

개발 목표(주어진 기간, 정해진 비용, 고품질 등)를 달성할 수 있는 힘

 

 

성숙도 Maturity

경험이나 습관을 쌓아 익숙해짐으로, 다 자라서(완성되어) 책임감이 있는 느낌을 준다.

성숙도가 높은 조직은 책임감이 있는 조직으로서 개발 과정에서 객관적이고 정량적인 근거에 따라 프로세스가 측정되고 지속적인 개선이 이루어지는 조직이다.

 

 

모델 Model

프로세스를 감사(audit)하는 의미로 사용한다. 기준대로 하고 있는지, 그렇지 않은지를 검사한다.

 

 

통합 Integration

여러 가지 프로세스의 기준을 하나로 통합했다는 의미이다.

(여러 가지 프로세스는 소프트웨어 개발 생명주기의 각 단계)

 

 

그래서 결국 CMMI 란, 조직의 프로세스에 대한 가이드이자 기준이다.

‘능력’과 ‘성숙도’로 조직의 프로세스를 측정하고 평가하는 모델의 통합 버전인 프로세스 개선 성숙도 모델이다.

 

 

만약 조직의 성숙도가 높다면, 구성원들이 소프트웨어의 프로세스를 잘 알고있고 역할과 책임이 명확하겠지만

 

조직의 성숙도가 낮다면, 정해진 프로세스가 없어서 필요할 때마다 임시방편으로 만들거나 객관적인 비용산정이 되지 않아서 개발 기간과 비용이 초과될 것이다.

 

 

 

 

CMMI의 구성

 

CMMI 모델은 5 단계로 나눠서 볼 수 있다.

 

 

 

이렇게 각 단계와 범주로 이루어진 CMMI 모델의 전체적인 프로세스 구조도는 다음과 같다.

 

위 프로세스 구조도를 보면 일반 목표와 세부 목표로 나뉘어져 있는 것을 볼 수 있다.

 

 

일반 목표는 모든 프로세스 영역에 공통으로 적용되는 목표로, 해당 프로세스의 활동들이 조직에 내재화되어 자연스럽게 수행될 수 있다.

 

세부 목표는 특정 프로세스 영역에만 적용되는 좁은 의미의 구체적인 목표를 말한다.

 

각 수행 지침은 일반적인 / 세부적인 목표를 만족시키기 위해 수행해야 하는 활동이 무엇인지를 설명한다.

 

 

 

각 단계를 아우르는 영역에는 필수 구성 요소, 예상, 정보 제공 구성 요소가 있다.

 

 

필수 구성 요소

조직이 프로세스 영역을 만족시키기 위해 무엇을 성취해야 하는지를 기술하는 구성 요소이다.

세부 목표와 일반 목표가 이에 해당한다.

 

 

예상 구성 요소

조직이 필수 구성 요소를 성취하기 위해 전형적으로 무엇을 구현해야 하는지를 기술한다.

이 구성 요소들은 누가 평가를 수행하고 개선을 구현하는지를 가이드한다.

일반 수행 지침과 세부 수행 지침이 이에 해당한다.

 

 

정보 제공 구성 요소

필수 구성 요소와 예상 구성 요소에 접근할 수 있도록 돕는 세부 내용을 제공한다.

예제 작업 산출물, 하위 지침, 일반 수행 지침의 정책, 입문 노트, 관련 프로세스 영역 등이 이에 해당한다.

 

 

 

 

 

CMMI의 평가 방법

 

CMMI 모델을 평가하는 방법은 두 가지가 나뉜다.

 

성숙 단계를 나타내는 단계적 표현 staged representation 방법과

 

능력 단계를 나타내는 연속적 표현 continuous representation 방법이 있다.

 

 

 

성숙 단계를 나타내는 단계적 표현

 

조직에서 해당 업무를 얼마나 체계적으로 수행하고 있는지를 나타내며, 지표로는 1에서 5 까지 5단계로 구분하여 사용한다.

 

초기 단계는 프로세스가 없는 경우를 말한다.

아직 프로세스가 정확히 정의되지 않았기 때문에 개발자는 임의로 프로세스를 정의하거나 수시로 바꿀 수 있다.

 

이 단계의 개발 조직은 아직 체계적으로 관리되지 않고, 개발과 유지보수를 위한 조직 환경이 불안정한 상태이다.

개발 과정과 상황 또한 정확히 측정되지 않는다.

 

 

 

관리 단계는 프로젝트 별로 프로세스가 존재한다.

 

우선 기본적인 프로세스가 확립되어 있다. 이를 통해 프로젝트의 예산, 일정, 기능에 대해 추적 및 예측이 가능하다.

 

개발 조직은 프로젝트 관리를 위한 정책을 세우고 절차들을 실행한다.

기본 프로젝트 관리 통제 체계가 확립되어 요구 사항을 명확하게 문서로 작성하거나 진행 상황을 추적할 수 있다.

 

 

 

정의 단계는 조직 차원의 표준 프로세스 존재한다.

 

표준화된 프로세스가 존재하여 조직 전체는 표준 프로세스를 따르고, 개별 프로젝트는 제공된 가이드를 참조하여 표준 프로세스를 수정하여 활용한다.

 

조직 내에는 관리자를 위한 기술 교육 SEPG가 존재하고

표준 프로세스를 사용하여 개발 공정, 비용, 일정 등을 통제할 수 있다. (일관성으로 프로세스 안정화)

 

 

 

정량적 관리 단계는 측정 가능한 정량적 프로세스가 존재한다.

 

수치화, 계량화를 통해 SW 프로세스와 제품의 품질을 철저히 관리하고, 이를 통해 성과를 예측할 수 있다.

 

 

 

최적화 단계는 프로세스를 지속적으로 개선하는 단계이다.

 

지금까지 조직 차원에서 사용해오던 표준 프로세스를 개선하여 최적화하고,

보완 및 최신 기술을 지속적으로 반영하여 개선된 프로세스를 전 조직이 사용한다.

 

 

 

능력 단계를 나타내는 연속적 표현

 

 

프로세스 영역 능력 수준을 측정하는 연속적 표현 모델이다.

 

해당 조직의 각 프로세스 영역에 대한 능력이 얼마나 되는지를 나타내어 프로세스 영역별 능력 수준을 확인한다.

능력이 잘되는 영역, 떨어지는 영역을 구별하여 파악할 수 있다.

 

 

이렇게 프로세스 영역별 능력 수준을 점검하는 것의 이점은

떨어지는 프로세스 영역을 집중 관리할 수 있고,

중요한 프로세스 영역은 집중적으로 자원을 투입하여 능력 수준을 향상시킬 수 있다.

 

 

 

 

 

SPICE (ISO 15504) 모델

 

 

이 모델은 소프트웨어 프로세스 평가를 위한 프레임워크를 제공한다.

특히 정보 시스템 분야에 특화된 품질 표준이자 인증 규격의 역할을 한다.

 

 

 

 

 

품질 관리

 

품질 관리란, 개발의 각 단계에서 일어나는 모든 활동과 활동 중에 생성되는 여러 산출물을 통제하고 보증하여 품질을 관리하기 위한 활동을 말한다.

 

 

품질 통제란

품질 좋은 소프트웨어를 만들기 위해 품질 절차와 표준을 개발자들이 준수하도록 프로세스를 정의하고 규정을 만드는 것이다.

 

 

품질 보증이란

소프트웨어의 결함을 줄여 품질 좋은 소프트웨어를 만들기 위해, 사용자가 요구하는 품질 수준을 파악하고 이를 어떻게 달성할 수 있는지를 정의하는 개발 단계 전역에 걸친 작업을 말한다.

 

 

이렇게 품질을 보증하기 위해 개발자들은 개발 단계 전역에 걸쳐 품질에 영향을 미치는 문제점을 조기에 발견하여 제거하는 것으로 개발된 소프트웨어의 품질이 목표한 수준에 있다는 것을 보증한다.

 

 

 

세계적인 엔지니어 단체 IEEE에서 제시하는 품질 보증 계획서는 다음과 같이 구성되어 있다.