Proces tworzenia oprogramowania można mierzyć za pomocą modelu dojrzałości zdolności (CMM). CMM definiuje 5 poziomów dojrzałości procesu:
Ten poziom reprezentuje najmniej opłacalny proces tworzenia oprogramowania. Proces rozwoju jest zasadniczo nieokreślony. Zawsze będą problemy przy tworzeniu oprogramowania. Na tym poziomie wszystkie problemy rozwiązuje się niesystematycznie „na kolanie”. Nie ma zarządzania zasobami ludzkimi ani sposobu komunikacji z klientem. Z biegiem czasu pojawi się znacząca sprzeczność z oczekiwaniami dotyczącymi trójkąta czas-koszt-jakość.
Jeśli przejdziemy na poziom początkowy i spojrzymy na cały system rozwiązywania problemów z lotu ptaka, odkryjemy, że znaleźliśmy „najlepsze praktyki” dla niektórych konkretnych działań i możemy je optymalnie rozwiązać (naszym osobistym zdaniem). Nie mamy jeszcze pewności, czy nasze procedury są rzeczywiście optymalne. Zatem na tym poziomie możemy powtórzyć procedury, z których korzystaliśmy już kilkukrotnie.
Jeśli jasno opisano cały proces tworzenia oprogramowania, można mówić o określonym poziomie. Możemy założyć, że ten, kto opisał cały proces, zoptymalizował go pod konkretny cel.
Obecność obiektywnych danych analitycznych jest podstawą tego poziomu. Jeśli mamy wskaźniki mierzące poziom rozwoju oprogramowania, to wiemy, że osiągnęliśmy mierzalny poziom. Czy zatem możemy analizować istniejący proces z określonego (trzeciego) poziomu na podstawie istniejących obiektywnych danych? Wiemy np. jaki jest odsetek udanych testów integracyjnych poszczególnych modułów (tj. jednostek oprogramowania)?
Jak powiedział P. Drucker: „tym, co możemy zmierzyć, możemy zarządzać”. Czy potrafimy wdrożyć mechanizmy wdrażające usprawnienia w procesie wytwarzania oprogramowania w oparciu o zmierzone obiektywne dane? Jeśli tak, to wiemy, że osiągnęliśmy najwyższy etap – zoptymalizowany poziom rozwoju oprogramowania.
Marián Knězek