Model dojrzałości zdolności (CMM) wyjaśniony w 5 minut lub mniej

Model Dojrzałości Zdolności (CMM) to efektywna metoda, która ułatwia skalowanie różnorodnych aspektów działalności firmy.

Aby sprawnie kierować przedsiębiorstwem, nadzorować system czy zarządzać zespołem, zrozumienie posiadanych zdolności stanowi kluczowy element.

Po zidentyfikowaniu kluczowych funkcji w przedsiębiorstwie, konieczna jest ocena ich wydajności. Na podstawie tej oceny wyznaczane są standardy i cele dla organizacji.

Dlatego też, aby mierzyć i monitorować efektywność oraz postęp pracy w każdej funkcji i na poziomie indywidualnym, liderzy i przedsiębiorcy potrzebują solidnego i spójnego rozwiązania.

Umożliwia to firmie tworzenie systemów, które sprostają złożoności zadań i zapewnią precyzję niezbędną do dalszego rozwoju.

Właśnie w tym kontekście pojawia się Model Dojrzałości Zdolności – CMM.

W niniejszym artykule omówimy, czym są modele CMM i CMMI, jakie są ich poziomy oraz jakie różnice między nimi występują.

Zapraszam do lektury!

Czym jest Model Dojrzałości Zdolności?

Model Dojrzałości Zdolności (CMM) to przejrzysta metodologia, która służy do tworzenia i ulepszania procesów wytwarzania oprogramowania w organizacji. Pozwala to programistom na doskonalenie procesu tworzenia aplikacji, co przekłada się na większą spójność i produktywność.

Bez względu na rolę w zespole programistycznym, zrozumienie CMM może znacząco podnieść efektywność pracy. Można więc stwierdzić, że CMM to metoda, która wspomaga ocenę, rozwój i doskonalenie procesu tworzenia oprogramowania.

CMM wyznacza fundamentalne procedury wytwarzania oprogramowania, obejmujące inżynierię, zarządzanie i planowanie. Opiera się na założeniu, że systematyczne doskonalenie jest możliwe poprzez stopniowe kroki, a nie tylko nagłe, rewolucyjne zmiany.

Dodatkowo, CMM oferuje ramy do zarządzania postępem na różnych poziomach dojrzałości, zapewniając platformę do ciągłego doskonalenia procesu tworzenia oprogramowania. Z tego powodu, ta metodologia stanowi podstawę systemów zarządzania, które są specjalnie projektowane w celu podnoszenia jakości wytwarzanych produktów i usług, a także sposobu ich dostarczania.

CMM został opracowany i jest promowany przez SEI (Software Engineering Institute), jednostkę badawczo-rozwojową sponsorowaną przez US DOD. Obecnie SEI jest częścią Carnegie Mellon University. Firma SEI powstała w 1984 roku, aby rozwiązywać rozmaite problemy związane z oprogramowaniem i rozwijać metodologie jego tworzenia.

Celem SEI było optymalizowanie procesu opracowywania, nabywania i utrzymywania systemów, w których oprogramowanie odgrywało kluczową rolę dla Departamentu Obrony (DOD). Promuje ona szerokie przyjęcie przez branżę rozwiniętego modelu CMM, jakim jest CMM Integration (CMMI).

Dlaczego warto wdrożyć Model Dojrzałości Zdolności?

CMM ma wiele zalet, a jedną z najważniejszych jest oszczędność czasu i pieniędzy. Jest to wynik precyzyjnej konstrukcji tego systemu, który skuteczniej niż inne modele identyfikuje defekty w procesie doskonalenia.

Ponadto, CMM usprawnia procesy biznesowe i ogranicza nieoczekiwane zmiany w harmonogramach produkcji. Ponieważ CMM był pierwszym modelem zaprojektowanym w celu optymalizacji procesów przemysłowych, może on stanowić podstawę dla innych modeli, takich jak jego ulepszona wersja CMMI (Capability Maturity Model Integration), Business Capability Maturity Model (BCMM) i wiele innych.

CMM jest elastycznym modelem, który może być stosowany w różnych procesach i na różnych rynkach. Niezależnie od branży, w której działa firma, jeśli posiada zespół programistów, członkowie tego zespołu mogą użyć modelu do korygowania błędów w procesie.

Pięć poziomów dojrzałości w CMM

Model Dojrzałości Zdolności (CMM) w procesie rozwoju składa się z pięciu poziomów dojrzałości:

#1. Poziom początkowy

Na tym etapie procesy są realizowane w sposób nieuporządkowany, a niekiedy chaotyczny. Sukces zależy tu od indywidualnych wysiłków poszczególnych członków zespołu i nie jest traktowany jako proces powtarzalny. Wynika to z faktu, że proces nie jest wystarczająco dobrze udokumentowany i zdefiniowany, by można go było powtórzyć.

Stosowane procesy są niedojrzałe i ad hoc, co stwarza niestabilne środowisko dla tworzenia oprogramowania. Nie istnieją też podstawy do przewidywania jakości produktu ani czasu jego realizacji.

#2. Powtarzalny

Na tym poziomie kluczowe procesy są dobrze ustalone, udokumentowane i zdefiniowane. W efekcie techniki zarządzania projektami są adekwatnie wdrożone, choć sukces nie zawsze jest powtarzalny we wszystkich kluczowych obszarach procesu.

Poziom powtarzalny można osiągnąć poprzez wprowadzenie podstawowych zasad zarządzania projektami. Doświadczenia z wcześniejszych projektów wykorzystuje się do zarządzania projektami o zbliżonym charakterze. Obejmuje to określenie wymaganych zasobów, celów, ograniczeń i innych istotnych elementów projektu.

Ten poziom prezentuje szczegółowy plan, który należy konsekwentnie realizować, aby skutecznie wytworzyć oprogramowanie wysokiej jakości. Głównym celem jest utrzymanie wydajności produktu, jako całości i jego poszczególnych elementów, przez cały cykl życia oprogramowania.

Poziom powtarzalny obejmuje również opinie klientów i zarządzanie zmianami, co może prowadzić do modyfikacji ustalonych wymagań. Zarządzanie wymaganiami polega na dostosowywaniu zmodyfikowanych założeń.

Dodatkowo, zarządzanie podwykonawstwem skupia się na kontroli pracy wykwalifikowanych wykonawców w zakresie rozwoju oprogramowania, co oznacza zarządzanie elementami oprogramowania tworzonymi przez podmioty zewnętrzne. Zapewnienie jakości oprogramowania gwarantuje wysoką jakość produktu dzięki przestrzeganiu zasad i standardowych wytycznych w procesie tworzenia.

#3. Zdefiniowany

Na tym poziomie następuje dokumentowanie wytycznych i procedur. Jest to precyzyjnie określony zbiór procesów z zakresu inżynierii oprogramowania i zarządzania. Obejmuje on:

  • Recenzje koleżeńskie: W tej metodzie konieczne jest usuwanie defektów przy wykorzystaniu różnorodnych procesów recenzowania, takich jak inspekcje, kontrole koleżeńskie, instruktaże itp.
  • Koordynację międzygrupową: Metoda ta polega na interakcji między wieloma zespołami programistycznymi w celu zapewnienia właściwego i efektywnego zaspokojenia potrzeb.
  • Definicję procesu organizacji: Metoda skupia się na rozwoju i utrzymywaniu procesów wytwarzania oprogramowania.
  • Koncentrację na procesie organizacji: Obejmuje praktyki i działania, które należy stosować w celu podnoszenia zdolności procesowych organizacji.
  • Programy szkoleniowe: Programy szkoleniowe koncentrują się na podnoszeniu wiedzy i umiejętności członków zespołu, co prowadzi do poprawy efektywności ich pracy.

#4. Zarządzany

Na tym poziomie wyznaczane są mierzalne cele jakości oprogramowania i procesów powiązanych z oprogramowaniem organizacji. Dokonywane pomiary pozwalają organizacji przewidywać jakość procesu i produktu w ramach ściśle określonych zakresów.

Ten poziom obejmuje strategie i plany opracowywane w celu zrozumienia i analizy ilościowej i jakości produktu. Skupia się on także na zarządzaniu wynikami projektów.

#5. Optymalizacja

Jest to ostatni etap dojrzałości procesowej w CMM, który koncentruje się na ciągłym doskonaleniu procesów rozwojowych w organizacji poprzez ilościowe sprzężenie zwrotne. Odbywa się to za pomocą technik, ocen i narzędzi dla procesów oprogramowania, aby uniknąć powtarzania znanych błędów.

Ten poziom obejmuje:

  • Zarządzanie zmianą procesu: Ten proces zarządzania koncentruje się na ciągłym ulepszaniu procesów wytwarzania oprogramowania. Powoduje to podniesienie jakości, skrócenie cyklu i zwiększenie produktywności oprogramowania.
  • Zarządzanie zmianą technologii: Polega na wykorzystaniu technologii i metod identyfikacji w celu poprawy jakości produktu i skrócenia czasu jego wytwarzania.
  • Zapobieganie defektom: Można to osiągnąć poprzez identyfikację przyczyn defektów i zapobieganie ich ponownemu pojawianiu się w kolejnych projektach. Prowadzi to do udoskonalenia procesów zdefiniowanych w projekcie.

Integracja Modelu Dojrzałości Zdolności

Capability Maturity Model Integration (CMMI) to przejrzysty model procesowy, który organizacje mogą wykorzystywać do doskonalenia procesów programistycznych, inspirowania efektywnych zachowań i zwiększania produktywności w przepływie pracy podczas wytwarzania produktu, usługi lub projektu. Prowadzi to do ograniczenia ryzyka w całym procesie.

CMMI został opracowany i wprowadzony przez Carnegie Mellon University. Głównym celem tego przedsięwzięcia jest zwiększenie efektywności i użyteczności modeli dojrzałości, które umożliwiają pomiar zdolności organizacji do ciągłego doskonalenia w określonych obszarach. Cel ten można osiągnąć poprzez integrację wielu modeli w jednej strukturze.

Pierwsza wersja CMMI została wydana w 2002 roku, a kolejna w 2006. W 2010 roku pojawiła się wersja 1.3, a najnowsza, 2.0, w 2018 roku. Wprowadziła ona różnorodne zmiany, które miały zwiększyć dostępność, wydajność i inne parametry istotne dla firm.

CMMI został przejęty przez ISACA (wcześniej znane jako Information Systems Audit and Control Association), która posiada certyfikaty takie jak ramy COBIT. CMMI to model procesowy i behawioralny, który wspiera organizacje w całym procesie rozwoju produktów lub usług.

Cel CMMI jest więc jednoznaczny. Służy do podnoszenia jakości usług lub produktów poprzez stosowanie modelu, który spełnia oczekiwania klientów i zwiększa wartość organizacji na rynku. Model ten ocenia także reputację firmy i wartość, jaką ma dla interesariuszy w branży.

CMMI obecnie obejmuje następujące obszary zainteresowania:

  • CMMI for Development: wykorzystywany do tworzenia produktów i usług.
  • CMMI for Services: Służy do tworzenia, dostarczania i zarządzania usługami.
  • CMMI for Acquisition: Dotyczy nabywania produktów i usług.

Reprezentacja CMMI

Reprezentacja CMMI umożliwia organizacji realizację zestawu celów w zakresie doskonalenia. Istnieją dwie reprezentacje:

Reprezentacja etapowa

  • Wykorzystuje zdefiniowany zestaw obszarów procesu rozwoju do opisu ścieżki doskonalenia.
  • Zapewnia ciąg ulepszeń, gdzie każdy krok stanowi fundament dla kolejnego.
  • Definiuje ścieżkę doskonalenia za pomocą poziomów dojrzałości, które wskazują stopień zaawansowania różnych procesów w organizacji.
  • Umożliwia porównanie różnych organizacji na różnych poziomach dojrzałości.

Reprezentacja ciągła

  • Umożliwia wybór poszczególnych obszarów procesu.
  • Wykorzystuje poziomy zdolności do pomiaru poprawy w poszczególnych procesach.
  • Umożliwia porównywanie organizacji w oparciu o obszar procesu, krok po kroku.
  • Reprezentacja ciągła pozwala organizacjom na wybór spośród wielu procesów w celu ich efektywniejszego doskonalenia.
  • W tej reprezentacji organizacje mogą lepiej realizować swoje cele i minimalizować ryzyko poprzez wybór kolejności ulepszania różnych procesów.

Etapy w CMMI

W CMMI w reprezentacji etapowej istnieje pięć poziomów dojrzałości:

#1. Początkowy: Na tym poziomie procesy rozwojowe są słabo kontrolowane i zarządzane. Wiąże się to z nieprzewidywalnymi skutkami procesów rozwojowych. Ponadto stosowane są chaotyczne i doraźne podejścia. Nie istnieją zdefiniowane kluczowe obszary procesowe (KPA). Jakość nie jest wysoka, a produkt lub usługi są najbardziej narażone na wady.

#2. Zarządzany: Na tym etapie dojrzałości wymagania są odpowiednio zarządzane, a procesy rozwojowe kontrolowane i zaplanowane. Projekt jest właściwie zarządzany i realizowany zgodnie z udokumentowanymi planami. Ryzyko nadal istnieje, ale jest mniejsze niż na poziomie początkowym.

#3. Zdefiniowany: Na zdefiniowanym poziomie dojrzałości procesy rozwojowe są precyzyjnie opisane i scharakteryzowane za pomocą odpowiednich procedur, standardów, narzędzi i metod. Jakość jest na średnim poziomie, a ryzyko również jest umiarkowane.

#4. Zarządzany ilościowo: W tym modelu ustalane są mierzalne cele jakości i wydajności procesów. Opierają się one na potrzebach organizacji, wymaganiach klientów i innych czynnikach. Mierniki wydajności procesów poddawane są analizie ilościowej. Procesy są wyższej jakości przy niższym poziomie ryzyka.

#5. Optymalizacja: Jest to ostatni etap modelu dojrzałości, który obejmuje ciągłe doskonalenie wydajności i procesów. Ulepszenia na tym poziomie są zarówno innowacyjne, jak i stopniowe. Procesy i wyniki są najwyższej jakości, a ryzyko jest najniższe.

Poziomy zdolności CMMI

Poziom zdolności wskazuje odpowiednie praktyki dla konkretnego obszaru procesu, w celu usprawnienia procesów organizacji z nim związanych. W modelach CMMI istnieje sześć poziomów zdolności:

  • Poziom zdolności 0 (niekompletny): Obejmuje procesy niekompletne, częściowe i niewykonane. Na tym poziomie nie ma ustalonych celów.
  • Poziom zdolności 1 (wykonany): Wydajność procesu na tym poziomie nie jest stabilna. Cele dotyczące kosztów, harmonogramu i jakości nie są spełnione. Proces na poziomie 1 musi być wykonywany zgodnie z określonymi praktykami.
  • Poziom zdolności 2 (zarządzany): Na tym poziomie proces jest monitorowany, kontrolowany i planowany. Cele obejmują zarówno model, jak i jakość, harmonogram oraz koszty. Organizacja musi aktywnie zarządzać procesami przy wykorzystaniu wskaźników.
  • Poziom zdolności 3 (zdefiniowany): Na tym poziomie proces jest dobrze zarządzany i spełnia zestaw wytycznych i standardów organizacji. Koncentruje się na standaryzacji procesów.
  • Poziom zdolności 4 (zarządzany ilościowo): Proces jest kontrolowany przy wykorzystaniu technik ilościowych i statystycznych. Na tym poziomie wydajność procesu jest rozumiana w kategoriach metrycznych i statystycznych.
  • Poziom zdolności 5 (optymalizacja): Ten poziom koncentruje się na ciągłym doskonaleniu wydajności procesu. Ulepszenia wdrażane są zarówno w sposób innowacyjny, jak i stopniowy.

CMM vs. CMMI: różnice

CMMI to zaktualizowany model CMM. SEI opracowało CMMI, aby standaryzować i zintegrować CMM, który zawiera oddzielne modele dla każdej funkcji. Te modele nie są zsynchronizowane; integracja CMMI sprawia, że proces jest elastyczny i wydajny.

W odniesieniu do kluczowych obszarów procesów, praktyk, poziomów dojrzałości i celów struktura CMMI jest podobna do struktury CMM. Jednak CMMI oferuje dwie różne reprezentacje procesów.

Przyjrzyjmy się bliżej różnicom między CMM a CMMI:

CMM | CMMI
—|—
CMM (Capability Maturity Model) został opracowany w 1984 roku. | CMMI (Capability Maturity Model Integration) został opracowany w 2006 roku.
Jest to model behawioralny, który służy do pomiaru procesów tworzenia oprogramowania w organizacji. | Jest to zaktualizowana wersja modelu CMM, która jest bardziej ukierunkowana na zadania i efektywność.
Głównym celem jest ocena poziomów dojrzałości w procesie tworzenia oprogramowania. | Głównym celem jest połączenie różnych modeli oprogramowania w jeden i wyeliminowanie wad CMM.
CMM składa się z pięciu etapów: początkowy, powtarzalny, zdefiniowany, zarządzany i zoptymalizowany. | CMMI ma pięć etapów: początkowy, zarządzany, zdefiniowany, zarządzany ilościowo i optymalizowany.
CMM jest mniej wydajny. | CMMI jest bardziej wydajny.
Jest zbyt mocno zorientowany na proces. | Jest zorientowany na cele.

Podsumowanie

Capability Maturity Model (CMM) to system rozwiązywania problemów w procesach tworzenia oprogramowania w różnych branżach. Pomaga on firmom unikać problemów związanych z tymi procesami.

Z kolei CMMI oferuje bardziej zaawansowaną metodologię niż CMM. Obejmuje on spełnianie oczekiwań klientów, docenianie innowacyjności, rozwój marketingu, poprawę jakości produktów i usług, a także wzmacnianie reputacji firmy.

Warto również zapoznać się ze strukturą zarządzania cyklem życia aplikacji, która pomaga w tworzeniu i dostarczaniu oprogramowania zgodnie z harmonogramem, w ramach budżetu i przy zachowaniu najwyższej jakości.