WYMAGANIA POMIAROWE W MODELACH OCENY PROCESU PROGRAMOWEGO Andrzej Kobyliński Wprowadzenie Kluczowym elementem kaŝdego procesu produkcyjnego są pomiary. Ale w odróŝnieniu od innych dyscyplin inŝynierskich, wytwarzanie oprogramowania dotychczas nie opiera się na ścisłych prawach teorii pomiarów. Rygorystyczne pomiary, do których przyzwyczaiła nas np. fizyka, takie jak na przykład pomiary odległości, masy, temperatury, nie są jeszcze powszechne w przypadku produkcji oprogramowania. Z literatury znanych są setki róŝnych miar oprogramowania (patrz np. [Zuse91], [FePf97], [Kan06]). Tymczasem praktycznie jedynym pytaniem dotyczącym pomiarów oprogramowania, jakie nasuwa się przeciętnemu uŝytkownikowi oprogramowania jest: ile ono kosztuje? Nieco bardziej dociekliwi zapytają jeszcze: jaka jest jego długość (wielkość)? Tradycyjnie, mówiąc o pomiarach oprogramowania, rozróŝnia się dwa podstawowe aspekty: pomiar procesu wytwórczego (z dalszym podziałem na pomiar procesu i przedsięwzięcia) i pomiar produktu informatycznego: procesu programowego, czyli ogółu czynności realizowanych w organizacji wytwórczej, związanych z wytwarzaniem oprogramowania (miary procesu),
konkretnego przedsięwzięcia informatycznego, w celu lepszej estymacji czasu i kosztu, kontroli jakości realizowanych zadań, oceny produktywności i, ogólnie, poddanie przedsięwzięcia kontroli (miary przedsięwzięcia), produktu programowego zarówno oceny jego jakości, jak równieŝ innych, niejakościowych cech produktu (miary produktu). Dla organizacji wytwarzającej oprogramowanie znaczenie strategiczne ma ocena (pomiar) procesu programowego. Jego zastosowanie pozwala wejrzeć w głąb procesu programowego realizowanego w organizacji. Pozwala to kierownictwu ocenić, które procesy w firmie realizowane są poprawnie, a które wymagają doskonalenia. RównieŜ organizacje poszukujące dostawcy oprogramowania są beneficjentami przeprowadzonej oceny procesu programowego ułatwia ona wybór najlepszego kontrahenta: firmy zajmujące się wytwórstwem oprogramowania starają się uzyskać maksymalnie wysoką ocenę i w ten sposób przekonać potencjalnego odbiorcę o tym, Ŝe są w stanie dostarczyć zamówione oprogramowanie na czas, w ramach budŝetu, o dobrej jakości. W ostatnim ćwierćwieczu powstało kilka metod, które zyskały szerszą popularność jako narzędzie słuŝące do oceny procesu programowego: Capability Maturity Model (CMM) (w kilku wariantach), ISO/IEC 15504, Trillium, kryteria nagród jakości, równieŝ normy serii 9000 mogą być uŝyte do tego celu. Ocena taka moŝe być dokonywana na poziomie całej organizacji (Software-CMM, CMM Integration - Staged Representation, Trillium) lub poszczególnych procesów szczegółowych realizowanych w firmach i obszarów działania (CMMI Continuos Representation, ISO/IEC 15504 (SPICE), kryteria nagród jakości).
Ocena procesu programowego zwykle stanowi wstępny etap działania firmy wytwarzającej oprogramowanie kolejnym naturalnym krokiem jest przystąpienie do doskonalenia procesu programowego. Ale doskonalenie procesów programowych i ocena podjętych działań naprawczych nie powinny opierać się wyłącznie na intuicji. Organizacja próbująca kontrolować i ulepszać realizowane praktyki powinna starać się je zmierzyć. Konieczność dokonywania pomiarów, i to zarówno procesów programowych, jak i produktów będących ich rezultatem, jest coraz powszechniej uświadamiana, a niektóre wymienione modele wprost wymagają wdroŝenia programu pomiarowego. Celem niniejszego artykułu jest porównanie róŝnych znanych modeli słuŝących do oceny i doskonalenia procesu programowego pod kątem wykorzystywania przez nie procesów pomiarowych. Modele, w których kładzie się nacisk na stosowanie pomiarów moŝna uznać za bardziej wiarygodne, gdyŝ odchodzą od opierania się na intuicji na rzecz wymiernych, ilościowo stwierdzanych faktów. W dalszej części pracy dla wszystkich wcześniej wymienionych modeli oceny i doskonalenia procesów programowych omówiony zostanie ich stosunek od pomiarów. ISO 9001 Seria standardów ISO 9000 stanowi najszerzej rozpowszechniony na świecie standard dotyczący zarządzania jakością i opiera się na przekonaniu, Ŝe jeśli systemy wytwórczy i zarządzania są właściwe, to wyprodukowany produkt lub zrealizowana usługa równieŝ powinny być dobre jakościowo. Standard ISO 9001 [ISO9001], stanowiący podstawę całego
zestawu, jest napisany w sposób bardzo ogólny i nie dotyczy Ŝadnej konkretnej dziedziny działalności. Intencją standardu ISO 9001 nie jest, by wszystkie systemy zarządzania jakością były identyczne. Producentowi/wykonawcy zostawia się swobodę podjęcia decyzji, jak efektywnie zastosować ogólne zalecenia normy. Norma ISO 9001 zakłada podejmowanie decyzji na podstawie analizy faktów. Aby było to wykonalne, procesy i produkty muszą podlegać pomiarom. Ich wyniki muszą być dokładne i wiarygodne, powinny być gromadzone, a następnie analizowane przy zastosowaniu sprawdzonych metod. Główne wymagania dotyczące pomiarów zawarte zostały w 8 rozdziale normy (Pomiary, analiza i doskonalenie), chociaŝ równieŝ 4 i 7 rozdział normy zawiera pewne zalecenia dotyczące tego zagadnienia. Poprzez pomiary procesów i analizę uzyskanych wyników moŝna w ilościowy sposób dokonać oceny procesu, porównać go z wzorcem, ewentualnie zarządzić akcję naprawczą. Organizacja musi wdroŝyć procedury pomiaru, analizy i doskonalenia procesów celem zapewnienia, Ŝe produkt będzie zgodny ze stwierdzonymi wymaganiami klienta. Jednym z mierników funkcjonowania systemu zarządzania jakością (SZJ) jest monitorowanie satysfakcji klienta. Monitorowaniu podlegają zarówno wytwarzane produkty, jak i procesy, dzięki którym wyroby te powstają. Organizacja musi nie tylko zbierać odpowiednie dane w celu wykazania skuteczności SZJ i moŝliwości jego doskonalenia, ale muszą być one równieŝ analizowane. Dotyczy to danych o zadowoleniu klientów, zgodności wyrobów z wymaganiami, jakości realizowanych procesów, jak równieŝ danych o klientach.
CMM Capability Maturity Model (CMM) zaprojektowany został w taki sposób, by nabywca oprogramowania (pierwotnie wyłącznie Departament Obrony USA) mógł przy jego pomocy ocenić potencjał (dojrzałość) dostawcy oprogramowania. Najpopularniejsza wersja modelu, znana pod nazwą SW-CMM (SoftWare CMM) definiuje 5 poziomów dojrzałości organizacji [PCCW93]. Dla kaŝdego poziomu określony został zestaw tzw. kluczowych obszarów procesu. Aby organizacja mogła być zakwalifikowana na określonym poziomie, musi realizować wszystkie procesy przypisane temu poziomowi i poziomom niŝszym. Model SW-CMM jest stopniowo zastępowany zintegrowanym CMM (CMM Integrated CM- MI). CMMI dostępny jest w 2 wersjach: etapowej CMMI-SR (CMMI- Staged Representation) [CMMI-SR] (bardzo zbliŝonej do SW-CMM) i ciągłej CMMI-CR (CMMI-Continuous Representation) [CMMI-CR], w której kaŝdy z wyróŝnionych 25 obszarów procesu oceniany autonomicznie w skali od 0 do 5. Model SW-CMM wymaga wdroŝenia skutecznego programu pomiarowego dopiero od firmy pretendującej do zakwalifikowania się na poziom 4. Wymaga się wtedy, by wszystkie zachodzące w organizacji procesy były na bieŝąco monitorowane i przebiegały w ściśle określonym przedziale wartości. Oczywiście wymaga to wcześniejszego ustalenia mierzalnych celów, i to tak dla produktów, jak i dla procesów. Pomiarom podlega zarówno jakość wytwarzanych produktów, jak i np. wydajność pracowników. Zebrane wyniki pomiarów zbierane są w bazie i słuŝą później do przeprowadzania analiz. Bardzo podobnie jest w modelu CMMI- SR, ale dołączony został dodatkowy proces Pomiary i analiza MA,
który uznany został za bardzo istotny, gdyŝ umiejscowiony został juŝ na poziomie 2. Wymusza on dokonywanie czynności pomiarowych i analizy wyników. Jest on jednym z 25 obszarów procesowych i jako taki podlega ocenie w modelu CMM-CR. Trillium Schemat oceny sposobu wytwarzania produktów i dojrzałości organizacji Trillium, analogicznie do SW-CMM, teŝ wyróŝnia 5 poziomów dojrzałości organizacji. Z drugiej strony model wyróŝnia 508 praktyk. Praktyki są pogrupowane w 27 przewodników. Praktyki naleŝące do kaŝdego przewodnika rozdystrybuowane są na róŝne poziomy dojrzałości. NajwaŜniejsze praktyki przydzielone są do poziomu 2, trochę bardziej zaawansowane do poziomu 3 itd. Organizacja, która pretenduje do określonego poziomu dojrzałości musi równolegle doskonalić wszystkie 27 przewodników. Kiedy praktyki wymagane dla poziomu 2 zrealizuje w co najmniej 90%, moŝe być uwaŝana za organizację na 2 poziomie dojrzałości [BeCa94]. W modelu Trillium jeden z 27 przewodników (przewodnik 3.4) dotyczy pomiarów. W skład tego przewodnika wchodzą ogółem 32 praktyki. Do poziomu 2. przypisanych jest 11 praktyk pomiarowych; do poziomu 3. 16 praktyk; do poziomu 4. 4 praktyki; do poziomu 5. 1 praktyka. Pomiarom podlegają nie tylko realizowany produkt, ale równieŝ zadowolenie klientów, przedsięwzięcie, procesy wytwórcze i zarządcze itp. Poszczególne praktyki rozłoŝone są logicznie na poszczególnych poziomach, tak więc po zrealizowaniu najprostszych praktyk pomiarowych na poziomie 2., na wyŝszych poziomach wymaga się dokonywania systema-
tycznej analizy danych pomiarowych, włącznie ze statystyczną kontrolą procesu wytwórczego. ISO/IEC 15504 Powstały pod auspicjami ISO model oceny i doskonalenia procesów programowych, znany uprzednio jako SPICE, specyfikuje 24 procesy szczegółowe, a kaŝdy z nich pozwala zakwalifikować na jeden z 6 poziomów. Charakterystyczne jest to, Ŝe (podobnie jak CMMI-CR) nie klasyfikuje całej poddawanej ocenie organizacji, lecz odrębnie wszystkie procesy szczegółowe [ISO15504]. W modelu ISO/IEC 15504 proces pomiarowy (ORG.5) wyróŝniony został jako jeden z tych 24 procesów szczegółowych. Istnienie tego procesu jest o tyle oczywiste, Ŝe trudno byłoby ocenić pozostałe 23 procesy, nie dysponując formalną metodyką przeprowadzania pomiarów, którą opisuje proces ORG.5. Nagrody jakości Celem przyznawanych w poszczególnych krajach nagród jakości jest promowanie kompleksowego zarządzania jakością (ang. Total Quality Management TQM). Organizacja, która wykaŝe, Ŝe stosowane przez nią metody istotnie wpłynęły na zaspokojenie oczekiwań klientów, zatrudnionych i innych osób zainteresowanych jej wynikami, moŝe uzyskać taką nagrodę. Organizacje przyznające nagrody publikują kryteria, które będą podlegały ocenie. Oceniana firma maksymalnie moŝe zdobyć 1000 punktów. Firma poddając się obiektywnej ocenie, wiedząc ile punktów zdobyła w poszczególnych kategoriach, porównując się z innymi firmami
startującymi w konkursie, poznaje swoją pozycję w rankingu, a uwidocznione braki wskazują na obszary wymagające doskonalenia. Na świecie znanych jest ok. 60 krajowych nagród jakości. Prawie wszystkie obszary (filary) wyróŝniane w kryteriach nagród jakości oceniane są za pomocą miar ilościowych. Kryteria większości z nagród nie zakładają bezpośredniego przyznawania punktów za stosowanie pomiarów, ale oceniana organizacja musi wykazać, Ŝe do oceny zadowolenia klientów, satysfakcji osób zatrudnionych, oddziaływania na otoczenie, osiąganego wzrostu itp. stosowany jest odpowiedni zestaw miar. Tak więc trudno sobie wyobrazić, Ŝeby oceniana organizacja nie miała wdro- Ŝonego procesu programowego. Wyjątkiem jest przyznawana w Stanach Zjednoczonych Narodowa Nagrody Jakości Malcolma Baldrige a (ang. Malcolm Baldrige National Quality Award MBNQA) [NIST08]. W przypadku tej nagrody bezpośrednio 4,5% maksymalnej liczby punktów moŝna zdobyć, gdy jest się w stanie udowodnić, Ŝe wartości miar są na bieŝąco zbierane, przechowywane, integrowane, a następnie analizowane. Zakończenie Wszystkie omówione w pracy modele oceny procesu programowego wymagają wprowadzenia procesu pomiarowego. Wydaje się, Ŝe szczególnie obiecująco zostało to zaproponowane w modelu Trillium: poszczególne zalecane praktyki rozłoŝone są równomiernie na wszystkie poziomy osiąganej przez firmę doskonałości, co pozwala na ewolucyjne doskonalenie procesu pomiarowego. Niestety, model ten z innych powodów nie znalazł szerszego zastosowania i jego popularność jest znikoma.
Trudno wyobrazić sobie zarządzanie w firmie wytwarzającej oprogramowanie, w której nie został wdroŝony proces pomiarowy. Ale z drugiej strony nie moŝna dopuścić do tego, by pomiary dokonywane były w sposób przypadkowy. Stratą czasu, pieniędzy i zaufania pracowników moŝe skończyć się pomiar wszystkich moŝliwych cech procesu, produktu itp. Dlatego na wstępie warto zastanowić się, co powinno podlegać pomiarom, by było to uzasadnione ekonomicznie i z korzyścią dla firmy. Następnie, mając zebrane dane, naleŝy je trafnie zinterpretować (co nie zawsze jest oczywiste), a wnioski zastosować w praktyce. Program pomiarowy, który nie przysporzy firmie korzyści niechybnie zostanie zaniechany. A jeśli nawet będzie kontynuowany, to pracownicy zbierający niepotrzebne dane będą zniechęceni, co przyczyni się do obniŝenia ich morale. Literatura [BeCa94] Bell Canada: The Trillium Model, 1994, http://www2.umassd.edu/swpi/bellcanada/trillium.pdf. [CMMI-CR] CMMI Product Team, Capability Maturity Model Integration (CMMI), Version 1.1. Continuous Representation. CMU/SEI-2002-TR-011, http://www.sei.cmu.edu/pub/ documents/02.reports/pdf/02tr011.pdf. [CMMI-SR] CMMI Product Team, Capability Maturity Model Integration (CMMI), Version 1.1. Staged Representation. CMU/SEI-2002-TR-012, http://www.sei.cmu.edu/pub /documents/02.reports/pdf/02tr012.pdf. [FePf97] Fenton N. E., Pfleeger S. L.: Software Metrics. A Rigorous and Practical Approach (2nd ed.), PWS, Boston 1997.
[ISO9001] PN-EN ISO 9001:2001 Systemy zarządzania jakością. Wymagania, Polski Komitet Normalizacyjny, Warszawa 2001 (tłumaczenie normy ISO 9001:2000). [ISO15504] ISO/IEC TR 15504:1998(E) Information Technology Software Process Assessment Part 1 9. [Kan06] Kan S. H., Metryki i modele w inŝynierii jakości oprogramowania (2nd ed.), WN PWN 2006. [NIST08] National Institute of Standards and Technology: 2008 Baldrige National Quality Program Criteria for Performance Excellence, http://www.quality.nist.gov/pdf_files/ 2008_Business_Nonprofit_Criteria.pdf [PCCW93] Paulk M.C., Curtis B., Chrissis M.B., Weber C.V.: The Capability Maturity Model for Software, Version 1.1, Software Engineering Institute, Carnegie Mellon University, Pittsburgh, CMU/SEI-93-TR-24, 1993. [Zuse91] Zuse H.: Software Complexity: Measures and Methods, De Gruyter, Berlin 1991. Informacje o autorze dr hab. Andrzej Kobyliński, prof. SGH Katedra Informatyki Gospodarczej Szkoła Główna Handlowa Al. Niepodległości 164 02-554 Warszawa Polska Numer telefonu +48/22/564-9-428 e-mail: Andrzej.Kobylinski@sgh.waw.pl