Capability Maturity Model

Capability Maturity Model for Software (ang.) – stworzony przez Software Engineering Institute (SEI) model służący ocenie procesu wytwórczego służącego do produkcji oprogramowania. CMM ocenia praktyki stosowane podczas produkcji. Model ocenia proces w skali pięciostopniowej – od chaotycznego (nic nie jest sterowane ani kontrolowane), aż do ścisłego, zdyscyplinowanego procesu uwzględniającego wszystkie potrzebne aspekty.

Poziomy CMM

  1. Initial – oprogramowanie tworzone chaotycznie, bez żadnych formalnych procedur, ewentualnie z takimi, które są szczątkowe – nie określają procesu.
  2. Repeatable – stosowane są podstawowe techniki śledzenia projektu – śledzi się koszt, harmonogram oraz funkcjonalność. Stosuje się techniki pozwalające na powtarzanie udanych projektów na podstawie informacji zapisanych przy okazji poprzednich.
  3. Defined – proces wytwórczy jest opisany, wszystkie wykonywane czynności są udokumentowane w postaci procedur lub instrukcji.
  4. Managed – podczas projektów stosuje się szczegółowe metryki dotyczące samego procesu, oraz jakości produktu.
  5. Optimizing – stosuje się praktyki mające na celu ciągłe poprawianie procesu wytwórczego oprogramowania – poprzez monitorowanie procesu pod względem możliwości usprawnień oraz poprzez ich wprowadzanie.

Poziom 1 Initial – wstępny

Procesy na 1 poziomie dojrzałości charakteryzują działania ad hoc, spora część prac ma charakter okazjonalny lub chaotyczny. Niewiele elementów procesu na tym poziomie rozwoju jest zdefiniowanych przed rozpoczęciem prac, a i tak efekt zwykle bardziej zależy od indywidualnego układu pracy niż zapisów w planie projektu.

Organizacja prowadząca projekty na poziomie pierwszym charakteryzuje się zwykle brakiem stabilnej technologii wytwarzania i utrzymania produktów.

Sukces projektu zależy od charyzmy kierownika projektu i nakładu pracy członków zespołu. Rzadko kierownik projektu zdobywa się na odwagę i odmawia pominięcia rzekomo zbędnych procedur takich jak dokumentowanie czy ponowne testowanie. Zwykle zwyciężają argumenty sponsora wymagającego dotrzymania terminu za wszelką cenę.

Zakres projektów realizowanych na pierwszym poziomie dojrzałości jest zupełnie nieprzewidywalny. Sposób wykonywania podobnych w gruncie rzeczy prac podlega stałym zmianom generowanym potrzebą chwili. Harmonogram i budżet funkcjonalności i jakość wykonywanego produktu jest w zakresie nieprzewidywalna, wydajność pracy bardziej zależy od indywidualnych umiejętności i zaangażowania, niż od skutecznego wykorzystanie posiadanych zasobów. Parametry procesu nad którym sprawujemy kontrolę, stanowią zdecydowaną mniejszość w zbiorze parametrów procesu produkcji.

Poziom 2 Repeatable – powtarzalny

Proces wymaga od członków zespołu coraz to bardziej efektywnej pracy, zdobywanie nowych umiejętności, uczenie się na własnych błędach, a więc również umiejętności dokumentowania zdobywanych doświadczeń. Drugi poziom dojrzałości to samoświadomość, umiejętność zdefiniowania sposobu w jaki pracujemy.

Projekty będące na danym poziomie dojrzałości charakteryzuje się dążeniem do powtórzenia raz osiągniętego sukcesu. Podstawowe procedury są mniej więcej zdefiniowane i opanowane od strony zarządczej. Wiedza historyczna jest podstawową informacją kształtującą plan działania bieżącego projektu.

Proces posiada udokumentowane standardy dokumentacji, szkoleń i utrzymywania stworzonego oprogramowania. Projekt ma również w miarę ustabilizowane środowisko pracy i procedury zarządzania. Spotkania kierownictwa projektu zwoływane są systematycznie, co pozwala na bieżące rozwiązywanie problemów pojawiających się w obszarze harmonogramu, przydziału zasobów (np. ludzi, sprzętu) oraz realizowanego zakresu funkcjonalnego. Osiągnięcie założonej funkcjonalności produktu odbywa się w oparciu o wyznaczone w kluczowych momentach projektu linie bazowe. Poziom ten charakteryzuje zdyscyplinowanie, realizacja zapisów harmonogramu i zakresu prac.

Poziom 3 Defined – doskonalenie zarządzania

Charakteryzuje go szczególna dbałość o bezkonfliktowe następowanie po sobie zaplanowanych zadań oraz identyfikacja zagrożeń i nieprawidłowości w przebiegu procesu, zanim negatywne skutki tych zjawisk zaczną odciskać swoje piętno na kolejnych zadaniach wykonywanych w ramach projektu.

Na tym poziomie pojawia się spójny zbiór definicji i standardów ukonstytuowany nie tylko na poziomie projektu, ale również na poziomie organizacji realizującej projekt. Wiedza o sposobie prowadzeniu i organizowaniu pracy nad projektem staje się sposobem funkcjonowania firmy. Standardy i procedury modyfikowane są w miarę zmieniających się uwarunkowań technologicznych lub organizacyjnych.

Wyodrębniają się role członków zespołów projektowych. Polaryzują wymagania i umiejętności. W zespole wyodrębniają się specjaliści od realizacji poszczególnych zadań, a organizacja dąży do wyposażenia ich w niezbędną wiedzę i umiejętności.

Projekt na tym poziomie rozwoju zaczyna mieć, bądź kształtować swoją świadomość, mającą na celu zdefiniowanie własnego sposobu realizacji produktu. Zmniejsza się znaczenie metodyk zapożyczonych. Organizacja zaczyna na podstawie własnych doświadczeń modyfikować sposób prowadzenia projektów, tak aby maksymalnie odpowiadał specyfice organizacji i tworzonego przez nią produktu.

Definicja projektu dobrze poprowadzonego nie zawiera jedynie wymogu odniesienia sukcesu. Na poziomie trzecim dobrze przeprowadzony projekt to projekt dobrze zdefiniowany, poprawnie i systematycznie udokumentowany, posiadający spójny i odpowiadający specyfice organizacji zbiór ukonstytuowanych i używanych standardów i procedur. To projekt posiadający mechanizmy i kryteria weryfikacji jakości produktu, punkty kontrolne, procedury weryfikacyjne zarówno w obszarze jakości produktu, jak i w obszarach zarządzania projektem. To projekt stabilny i powtarzalny.

Poziom 4 Managed – skoncentrowany na poprawie zarządzania

Jeżeli proces jest zarządzany to znaczy, że w jakimś zdefiniowanym obszarze wyniki podejmowanych działań przenoszą określone rezultaty, które można zmierzyć za pomocą wcześniej zdefiniowanych metryk. Nie chroni to przed ponoszeniem kosztów popełniania i naprawy pewnej liczby błędów, które zawsze przytrafić się mogą, ale daje podstawę do oceny stabilności procesu.

Tutaj, mimo iż proces jest zarządzalny i mierzalny, możemy zawsze znaleźć miejsca wyjątkowo niebezpieczne, które powinny zostać poddane bardziej szczegółowej kontroli (zarządzanie ryzykiem).

Zadania, których wykonanie nie generuje dużej liczby błędów mogą być kontrolowane z mniejszą częstotliwością, zaś obszary zdefiniowane jako potencjalnie niebezpieczne np. w związku ze zmianą technologii, mogą podlegać ściślejszej kontroli.

Nakłady na identyfikację problemów i opracowanie metod zapobiegania ich powstawaniu powinny minimalizować koszty korygowania błędów podczas realizacji kolejnych projektów.

Poziom 5 Optimizing – optymalizowany

Proces optymalizowany to ideał, który staramy się jeszcze ulepszyć. Proces jest już tak dobrze zorganizowany i zarządzany, że nie pozostaje nic innego jak tylko dalsze podnoszenie stawianych przed procesem wymagań.

Celem stawianym na tym poziomie jest optymalizacja i dalsze ulepszanie procesu, zwiększanie jego efektywności (polepszanie wyników) oraz wydajności (zmniejszanie kosztów).

Organizacja jest już na tyle dojrzała, aby móc określić silne i słabe strony procesu. Informacje te służą dalszym analizom, mającym na celu wybór bardziej efektywnych technologii lub rozwiązań organizacyjnych.

Organizację stać finansowo i organizacyjnie na projekty pilotażowe (studium wykonalności) sprawdzające w praktyce nowe pomysły na szybki i efektywny proces produkcji. Dopiero po takiej weryfikacji, nowe rozwiązania mają szansę stać się dla organizacji obowiązujące.

Zobacz też