Model dojrzałości zdolności (CMM) w inżynierii oprogramowania

⚡ Inteligentne podsumowanie

Model Dojrzałości Zdolności (CMM) to punkt odniesienia służący do pomiaru dojrzałości procesu oprogramowania w organizacji. Opracowany w Instytucie Inżynierii Oprogramowania, definiuje pięć poziomów, które pomagają zespołom przejść od chaotycznej, doraźnej pracy do ciągłego, zoptymalizowanego doskonalenia.

  • 📊 Definicja: CMM to wskaźnik mierzący dojrzałość procesu rozwoju oprogramowania w organizacji.
  • 🏛️. Pochodzenie: Został opracowany w Instytucie Inżynierii Oprogramowania pod koniec lat 1980. na potrzeby Sił Powietrznych Stanów Zjednoczonych.
  • 🪜 Pięć poziomów: Początkowy, zarządzany, zdefiniowany, zarządzany ilościowo i optymalizujący tworzą drabinę dojrzałości.
  • Czas wdrożenia: Pełne wdrożenie na danym poziomie zazwyczaj zajmuje kilka miesięcy, a nie jest to zmiana, która następuje z dnia na dzień.
  • 🧩 Kluczowe obszary procesu: Każdy poziom, z wyjątkiem poziomu 1, definiowany jest przez Kluczowe Obszary Procesów (KPA), które grupują powiązane cele.
  • ⚠️ Ograniczenie: CMM określa, co proces powinien uwzględniać, ale nie określa sposobu jego wdrożenia, ignorując przy tym strategię biznesową.

Model dojrzałości zdolności (CMM)

Co to jest CMM?

Capability Maturity Model służy jako punkt odniesienia przy mierzeniu dojrzałości procesu oprogramowania w organizacji.

CMM został opracowany w Instytucie Inżynierii Oprogramowania pod koniec lat 80. Powstał w wyniku badań finansowanych przez Siły Powietrzne Stanów Zjednoczonych, jako sposób oceny pracy podwykonawców.tractorsy. Later, na podstawie modelu CMM-SW stworzonego w 1991 r. w celu oceny dojrzałości rozwoju oprogramowania, zintegrowano wiele innych modeli z CMM-I.

Capability Maturity Model

Co to są poziomy modelu dojrzałości zdolności (CMM)?

Model definiuje pięć poziomów dojrzałości progresywnej:

  1. Początkowy
  2. Powtarzalne/zarządzane
  3. zdefiniowane
  4. Zarządzane ilościowo
  5. Optymalizacja

Poziomy modelu dojrzałości zdolności (CMM).

Co dzieje się na różnych poziomach CMM?

Poniższa tabela przedstawia szczegółowe informacje na temat działań i korzyści na każdym poziomie.

Poziomy Aktywności Korzyści
Poziom 1 Początkowy
  • Na poziomie 1 proces jest zazwyczaj chaotyczny i doraźny.
  • Zdolność charakteryzuje się na podstawie jednostek, a nie organizacji.
  • Postęp nie jest mierzony.
  • Często zdarza się, że opracowywane produkty są opóźnione lub przekraczają budżet.
  • Duże zróżnicowanie w harmonogramie, kosztach, funkcjonalności i celach jakościowych.
Żadnego. Projekt to totalny chaos.
Poziom 2 Zarządzany
  • Zarządzanie wymaganiami
  • Oszacuj parametry projektu, takie jak koszt, harmonogram i funkcjonalność
  • Mierz rzeczywisty postęp
  • Opracuj plany i procesy
  • Zdefiniowano standardy projektów oprogramowania
  • Identyfikuj i kontroluj produkty, zgłaszaj problemy, zmiany itp.
  • Procesy mogą się różnić w zależności od projektu
  • Procesy stają się łatwiejsze do zrozumienia
  • Menedżerowie i członkowie zespołu poświęcają mniej czasu na wyjaśnianie, jak wykonać zadania, a więcej na ich realizację
  • Projekty są lepiej szacowane, lepiej planowane i bardziej elastyczne
  • Jakość jest zintegrowana z projektami
  • Koszty mogą być początkowo wysokie, ale z czasem maleją
  • Wymaga więcej papierkowej roboty i dokumentacji
Zdefiniowano poziom 3
  • Wyjaśnij wymagania klientów
  • Rozwiąż wymagania projektowe, opracuj proces wdrożenia
  • Upewnia się, że produkt spełnia wymagania i przeznaczenie
  • Systematycznie analizuj decyzje
  • Napraw i kontroluj potencjalne problemy
  • Doskonalenie procesów staje się standardem
  • Rozwiązanie przechodzi od „kodowania” do „projektowania”
  • Bramy jakości pojawiają się przez cały czas trwania projektu i obejmuje cały zespół zaangażowany w proces
  • Ryzyko jest łagodzone i nie zaskakuje zespołu
Poziom 4 Zarządzany ilościowo
  • Zarządza statystycznie procesami i podprocesami projektu
  • Zrozumieć wydajność procesów, ilościowo zarządzać projektem organizacji
  • Optymalizuje wydajność procesów w całej organizacji
  • Wspiera ilościowe zarządzanie projektami w organizacji
Optymalizacja poziomu 5
  • Wcześnie wykryj i usuń przyczynę usterek
  • Identyfikuj i wdrażaj nowe narzędzia i ulepszenia procesów, aby sprostać potrzebom i celom biznesowym
  • Wspiera innowacyjność organizacyjną i wdrażanie
  • Daje impuls do analizy przyczynowej i rozwiązania

Poniższy diagram przedstawia obrazowo, co dzieje się na różnych poziomach CMM:

Różne poziomy CMM

Ile czasu zajmuje wdrożenie CMM?

CMM to najbardziej pożądany proces służący utrzymaniu jakości produktu dla każdej firmy zajmującej się tworzeniem oprogramowania, ale jego wdrożenie zajmuje nieco więcej czasu, niż się spodziewano.

  • Wdrożenie CMM nie odbywa się z dnia na dzień.
  • To nie jest tylko „papierkowa robota”.
  • Typowe terminy wdrożenia to:
  • 3-6 miesięcy -> do przygotowania
  • 6-12 miesięcy -> do realizacji
  • 3 miesięcy -> do przygotowania oceny
  • 12 miesięcy -> za każdy nowy poziom

Struktura wewnętrzna CMM

Każdy poziom w CMM jest zdefiniowany w kluczowy obszar procesu lub KPA, z wyjątkiem poziomu 1. Każdy KPA definiuje zbiór powiązanych działań, które, gdy są wykonywane łącznie, osiągają zestaw celów uznawanych za kluczowe dla poprawy możliwości oprogramowania.

Dla różnych poziomów CMM istnieją zestawy KPA. Na przykład dla modelu CMM 2, KPA to:

  • REQM – Zarządzanie wymaganiami
  • PP – Planowanie projektu
  • PMC – Monitorowanie i kontrola projektu
  • SAM – Zarządzanie umowami z dostawcami
  • PPQA – Zapewnienie Procesów i Jakości
  • CM – Zarządzanie konfiguracją

Podobnie, w przypadku innych modeli CMM istnieją konkretne wskaźniki KPA. Aby sprawdzić, czy wdrożenie wskaźnika KPA jest skuteczne, trwałe i powtarzalne, mapuje się je na podstawie następujących kryteriów:

  1. Zaangażowanie w występ
  2. Możliwość wykonania
  3. Wykonywane czynności
  4. Pomiar i analiza
  5. Weryfikacja wdrożenia

Ograniczenia modeli maszyn współrzędnościowych

Model ten ma również kilka ograniczeń:

  • CMM określa, co proces powinien uwzględniać, a nie w jaki sposób powinien być wdrażany.
  • Nie wyjaśnia wszystkich możliwości udoskonalenia procesu tworzenia oprogramowania.
  • Koncentruje się na kwestiach oprogramowania, ale nie bierze pod uwagę strategicznego planowania biznesowego, wdrażania technologii, tworzenia linii produktów i zarządzania zasobami ludzkimi.
  • Nie określa, jakim rodzajem działalności powinna zajmować się organizacja.
  • CMM nie będzie przydatne w projekcie, który obecnie przeżywa kryzys.

Dlaczego warto używać CMM?

Obecnie CMM pełni funkcję „pieczęci aprobaty” w branży oprogramowania. Pomaga na wiele sposobów poprawić jakość oprogramowania.

  • Kieruje ku powtarzalnemu, standardowemu procesowi, a tym samym skraca czas uczenia się, jak wykonywać zadania.
  • Wdrażanie CMM oznacza stosowanie standardowego protokołu rozwoju, co nie tylko pomaga zespołowi zaoszczędzić czas, ale także daje mu jasny obraz tego, co należy zrobić i czego się spodziewać.
  • Wysokiej jakości działania dobrze wpisują się w projekt i nie są traktowane jako osobne wydarzenie.
  • Pełni funkcję łącznika między projektem a zespołem.
  • Działania CMM zawsze mają na celu udoskonalenie procesu.

FAQ

CMM to pierwotny model skupiający się głównie na dojrzałości procesów oprogramowania. CMMI (Capability Maturity Model Integration) jest jego następcą, obejmującym oprogramowanie, sprzęt i usługi w ramach zintegrowanej struktury. Większość organizacji obecnie stosuje CMMI zamiast starszego CMM.

CMM jest szeroko stosowany w usługach informatycznych i oprogramowania, w sektorze obronnym, lotniczym, bankowym i telekomunikacyjnym. Każda organizacja, która zleca na zewnątrz lub dostarcza złożone oprogramowanie, korzysta z niego w celu porównywania jakości, ograniczania ryzyka i prezentowania klientom niezawodnych i powtarzalnych procesów.

Tak, chociaż CMMI w dużej mierze zastąpił pierwotny CMM. Oceny dojrzałości pozostają istotne dla organizacji, które muszą wykazać się dyscypliną procesową w outsourcingu.tracprzetargi, przetargi rządowe i audyty jakości, a nawet stosowanie praktyk Agile i DevOps.

Sztuczna inteligencja może analizować dane procesowe, wcześnie wykrywać defekty i przewidywać ryzyko związane z harmonogramem lub kosztami. Automatyzując pomiary i raportowanie, wspiera wyższe poziomy CMM, gdzie organizacje opierają się na zarządzaniu ilościowym i ciągłym doskonaleniu opartym na danych.

Tak. Narzędzia AI automatyzują testowanie, przegląd kodu i monitorowanie procesów, dzięki czemu praktyki są powtarzalne i mierzalne. Pomaga to zespołom przejść od pracy doraźnej do zdefiniowanych i zoptymalizowanych poziomów, choć dla utrzymania tych korzyści nadal niezbędne jest zarządzanie przez człowieka.

Podsumuj ten post następująco: