Proces vývoja softvéru sa dá zmerať pomocou metódy Capability Maturity Model (CMM). CMM definuje 5 úrovní vyspelosti procesu:
Táto úroveň predstavuje najmenej životaschopný proces vývoja softvéru. Proces vývoja v podstate nie je definovaný. Pri vývoji softvéru vždy budú problémy. V tejto úrovni sú všetky problémy riešené nesystematicky „na kolene“. Neexistuje riadenie ľudských zdrojov, nie je definovaný ani spôsob komunikácie zo zákazníkom. Časom dôjde k výraznému rozporu s očakávaním trojuholníku čas-náklady-kvalita.
Ak postupujeme na počiatočnej úrovni a pozrieme sa na celý systém riešenia problémov zo vtáčej perspektívy zistíme, že na niektoré špecifické činnosti sme našli „best practices“ a vieme ich riešiť (poľa nášho osobného názoru) optimálne. Zatiaľ s určitosťou nevieme, že naše postupy sú skutočné optimálne. Na tejto úrovni teda vieme zopakovať postupy, ktoré sme viackrát použili.
Pokiaľ je celý proces vývoja softvéru jasne popísaný, môžeme hovoriť o definovanej úrovni. Môžeme predpokladať, že ten, kto celý proces popísal ho optimalizoval pre konkrétny účel.
Prítomnosť objektívnych analytických údajov je základ tejto úrovne. Ak máme indikátory, ktoré merajú úroveň vývoja softvéru, vieme, že sme dosiahli merateľnú úroveň. Vieme teda analyzovať existujúci proces z definovanej (tretej) úrovne z existujúcich objektívnych dát? Vieme napr. aké je percento úspešných testov integrácie jednotlivých modulov (t.j. softvérových celkov)?
Ako povedal P. Drucker: „čo vieme merať, to vieme riadiť“. Ak vieme implementovať mechanizmy, ktoré implementujú zlepšenie procesu vývoja softvéru na základe zmeraných objektívnych údajov? Ak áno, vieme, že sme dosiahli najvyšší stupeň – optimalizovanú úroveň vývoja softvéru.
Marián Knězek