CMM/CMMI opisuje najważniejsze elementy efektywnego procesu tworzenia oprogramowania. W obszarze IT model CMM/CMMI postrzega się jako benchamark poziomu dojrzałości organizacji lub jako zbiór dobrych praktyk dotyczących procesów inżynierii oprogramowania.
CMM i CMMI są następującymi po sobie wersjami opisywanego modelu (CMM jest bardziej zbliżony do modelu wodospadowego, gdy z kolei CMMI reprezentuje bardziej iteratywne metody), jednak ze względu na ogólny charakter poniższego opracowania, przyjęto mówić o nim jako CMM/CMMI.
Poziomy dojrzałości w CMM/CMMI wraz z określonymi dla nich kluczowymi obszarami procesowymi (ang. KPAs – Key Process Areas) to:
- początkowy - proces jest nieprzewidywalny i słabo kontrolowany,
- zarządzalny (powtarzalny) - organizacja reaguje dopiero, gdy wystąpią problemy (KPAs: zarządzanie wymaganiami, planowanie i śledzenie projektów tworzenia oprogramowania, zarządzanie dostawcami, zapewnienie jakości oprogramowania, zarządzanie konfiguracją),
- zdefiniowany - organizacja jest proaktywna (KPAs: organizacja zorientowana procesowo, definicja procesów, program treningów, zarządzanie integracją oprogramowania, inżynieria tworzenia oprogramowania, koordynacja międzygrupowa, przeglądy dokumentacji),
- ilościowo zarządzany - proces jest mierzalny i kontrolowany (KPAs: pomiary i analiza procesów, zarządzanie jakością, zapobieganie defektom),
- optymalizowany - wysiłki organizacji są ukierunkowane na ciągłe doskonalenie (KPAs: innowacje technologiczne, zarządzanie zmianami procesów).
Dla większości organizacji poziom trzeci jest głównym celem do osiągnięcia.
Model funkcjonuje w czterech obszarach: inżynieria systemów, inżynieria oprogramowania, integracja procesów i produktów oraz współpraca z dostawcami, a za główne cele obiera sobie:
- poprawę jakości w procesie produkcji i utrzymaniu oprogramowania,
- stworzenie oceny dla tych obszarów.
Usprawnienia fazowe zostały opracowane dla organizacji, które zamierzają podnosić swoją dojrzałość etapami. Takie podejście stanowi dla organizacji mapę drogową dojścia do najwyższego poziomu dojrzałości.
Główne korzyści, jakich może spodziewać się organizacja po wdrożenia modelu dojrzałości CMM/CMMI to:
- usprawnienie przewidywalności harmonogramów i budżetu,
- usprawnienie tworzenia oprogramowania,
- zwiększenie produktywności,
- poprawienie jakości (mierzonej ilością defektów),
- zwiększenie zadowolenia klientów,
- zwiększone morale pracowników,
- zwiększenie zwrotów inwestycji,
- obniżenie kosztów jakości.
Badanie SEI podaje, że widoczna jest poprawa wydajności wytwarzania podczas stosowania CMM/CMMI. Przedstawia to poniższe zestawienie badań w podziale na kategorie wydajności (średni współczynnik poprawy):
- koszty (34%),
- harmonogram (50%),
- produktywność (61%),
- jakość (48%),
- zadowolenie klienta (14%),
- zwrot inwestycji (4:1).
Ważne jest, że CMM jak i CMMI mają szerokie zastosowanie w inżynierii tworzenia oprogramowania. Dzięki temu można je stosować dla wszystkich obecnie zdefiniowanych modeli wytwórczych.
Jak CMM usprawnia organizacje oparte na modelu wodospadowym?
- wymusza ustalanie wymagań przed projektowaniem,
- koncentruje się na możliwości śledzenia w projekcie,
- zapewnia udokumentowanie i utrzymanie projektu,
- wymusza ocenę jakości przez niezależne zespoły,
- zapewnia wczesne planowanie z dużą dokładnością.
Jak CMMI usprawnia organizacje oparte na zasadach tworzenia oprogramowania metodami iteratywnymi?
- zniechęca do koncentracji wysiłków na architekturze,
- zachęca do utworzenia środowiska zarządzania zmianami,
- wskazuje procesy dla obiektywnej kontroli jakości,
- zapewnia ustanowienie konfiguracyjnych procesów.
Na zakończenie warto zacytować jedno z głównych założeń SEI dla CMM/CMMI:
Jakość produktu zależy od jakości procesu, jaki został zastosowany dla jego stworzenia i utrzymania.