SW Engineering/CMMI2008. 5. 21. 00:24


소프트웨어 개발에 있어서 프로세스 평가나 개선은 항상 중요한 과제가 되고 있습니다. 그중에서 CMMI(Capability Maturity Model Integration)가 가장 많은 기업의 주목을 받고 있고요. SI업체나 소프트웨어 발주자가 CMMI를 중요하게 생각하는 것은, 기업가치로 직결되는 무언가가 있기 때문일 것입니다. 하지만, 기업들이 CMMI를 충분히 제대로 살리고 있는지는 의문입니다.

여기부터 시작하여 여러회에 걸쳐 CMMI에 대한 글을 적으려고 하는데요. 첫번째 글에서는 CMMI에 대한 개요를 간단히 설명하여, CMMI의 개념과 목표가 무엇인지를 알려 드리려 합니다.


CMMI의 개요


CMMI는 미국 카네기멜론 대학교 소프트웨어 공학 연구소(SEI)에서 개발한 소프트웨어 프로세스의 평가 및 개선을 위한 가이드라인입니다. CMMI는 품질을 향상시키고 생산성을 높이는것에 도움이 됩니다만, 진짜 효과는 따로 있습니다.


CMMI의 진짜 효과는 소프트웨어 개발의 품위를 높여주는 것입니다.


주위를 보면, "작동되는 프로그램을 만들어냈지만 전체적으로 보면 결과적으로 실패한 프로젝트"가 많이 있습니다. 문제를 가지고 있는 소프트웨어 개발은 개발의 품위가 부족하다고 볼수 있습니다. 품격을 가지기 위해서는 "해야할 일"을 하게 하는 조직내 규율이 필요하고, CMMI에는 그 규율이 기술되어 있습니다.


현재, CMMI는 8월 말에 버전 1.2가 나와있습니다. (이 글을 적는 현재 CMMI-DEV가 나와있으며, 추후 CMMI-Aquisition과 Service가 나올 예정입니다.) 내년부터는 지원되지 않겠지만, 현재까지는 가장 활발한 것은 CMMI 버전 1.1입니다. 두가지 버전 모두 한글판은 현재까지는 지원하지 못하고 있습니다. (한글 자료로는 인터넷 ID 지나파님께서 CMMI 1.1한글 도움말을 만들어서 배포해 주셨습니다. 그 외에 CMMI의 이해라는 서적이 있습니다.)  양이 많지만, 반드시 읽어볼 것을 권합니다.


 

CMMI도입시에 선택가능한 2개의 표현방식


CMMI에는 "단계적 표현"과 "연속적 표현"이라고 부르는 2개의 표현방식이 있습니다. CMMI를 도입할때, 조직은 프로세스 개선 활동의 목적에 따라서 둘중 하나의 방식을 선택합니다.


단계적 표현


단계적 표현에서는 소프트웨어 성숙도가 레벨 1~5까지 있으며, 각각의 레벨별로 실시해야 할 프로세스가 정의되어 있습니다.


<그림 1> 단계적 표현과 연속적 표현


또한, CMMI로 프로세스 개선활동 전체를 레벨업 할때, 다음같은 메리트가 주어집니다.

  • 조직에 필요한 프로세스가 레벨마다 제공된다.
  • 조직간의 횡적 종적인 비교가 가능해진다.
  • 실제적 개선을 위한 개선 순서가 제공되기에, 견고한 개선을 기대할 수 있다.

연속적 표현


연속적 표현에서는 프로세스 별로 능력레벨이 0~5까지 정해져 있습니다. 프로세스 개선활동을 "프로세스 관리", "프로젝트 관리", "엔지니어링", "지원"의 4개로 구분짓고 있으며, 프로세스를 선택하여 개선할 경우 얻을 수 있는 메리트는 다음과 같습니다.

  • 비지니스 목표에 맞는 특정 프로세스를 향상 시킬 수 있다.
  • 비지니스 상황에 맞추어, 여러 프로세스를 각기 다른 속도로 개선하거나 순서를 정해서 할 수 있다.



개선을 목표로 한다면, "단계적 표현"이나 "연속적 표현", 어느쪽을 선택해서 사용해도 개선의 효과는 같습니다. 단계적 표현은 조직에 필요한 프로세스를 성숙도 레벨에 따라 확립하고 개선할 수 있습니다. 그때문에 프로세스 개선에 익숙하지 않은 조직에서는 "단계적 표현"을 선택하는 것이 좋습니다. 어느 표현방법이나 프로세스의 고유 목표나 공통목표는 같기때문에, 이후의 포스트에서는 연속표현이 아닌 단계적 표현을 전제로 하여 적어 가겠습니다.@

출처 : Tong - 투명잉크님의 S/W공학통

Posted by 시티락