Model dojrzałości organizacyjnej CMM
Transkrypt
Model dojrzałości organizacyjnej CMM
V Konferencja PLOUG Zakopane Październik 1999 Model dojrzałości organizacyjnej CMM (Capability Maturity Model) dr inż. Wiesław Byrski Wyższa Szkoła Zarządzania Streszczenie Model CMM (Capability Maturity Model) został opracowany w celu usprawnienia zarządzania procesami tworzenia systemów oprogramowania. W modelu wyróżnia się 5 faz charakteryzujących stopień dojrzałości firmy wytwarzającej oprogramowanie. Pierwsza z nich, faza początkowa, charakteryzuje się pełną spontanicznością i brakiem wypracowanych procedur postępowania, pojawiające się problemy rozwiązywane są ad hoc. W najwyższej, piątej fazie organizacja procesów jest pełna i kompletna, a firma może pozwolić sobie na ich optymalizację. Na wzór modelu CMM można opracować analogiczny model dla firm znajdujących się w rożnych fazach informatyzacji - od pozbawionej nawet elementów komputeryzacji do fazy optymalizacji procesów nakierownych na cele. 1. Wstęp Prowadzane przez kilka lat intensywne badania firm produkujących oprogramowanie w celu usprawnienia „przemysłowego” procesu wytwarzania oprogramowania doprowadziły do stworzenia bardzo ciekawego „Modelu dojrzałości organizacji software’owej” (Capability Maturity Model for Software) w skrócie CMM. Model ten opracowano w 1991 r. Software Engineering Institute z Carnagie Mellon University. Raport SEI znaleźć można np. w [4], a bogatą bibliografię nt. modeli CMM w [1]. Konstrukcję CMM oparta jest na koncepcji „dojrzałości” zarządzania procesami1, gdzie przez dojrzałość rozumiany jest stopień „zapanowania” nad zachodzącymi w firmie procesami. Chodzi tu nie tylko o procesy techniczne związane z bezpośrednim wytwarzaniem oprogramowania ale również o procesy zarządzania na poziomie operacyjnym i poziomie strategicznym. Bezpośrednia korzyść z modelu polega na wskazaniu kierunku zmian organizacji w celu osiągnięcia większej skuteczności. W modelu CMM zawarte są powszechnie przyjmowane zasady i ustalone praktyki postępowania określające stopień dojrzałości swoich procesów software’owych co może pomóc organizacjom wytwarzającym oprogramowanie na zaplanowanie ewolucyjnej ścieżki swojego rozwoju od chaotycznego, ad hoc, procesu do zdyscyplinowanego, mierzalnego i bezustannie doskonalonego dojrzałego procesu. 2. Konstrukcja modelu CMM 2.1. Struktura modelu CMM W modelu CMM wyróżniono pięć poziomów dojrzałości. Każdy poziom, z wyjątkiem pierwszego, ma podobną strukturę, przedstawioną na rys. 1: 1 warto wspomnieć w tym miejscu, że orientacja zarządzania na procesy została wywołana przez funkcjonującą w biznesie modę na reinżynierię procesu zarządzania, w chwili obecnej zostało z niej jako najwartościowsza część właśnie spojrzenie na firmę przez pryzmat zachodzących w niej procesów 2 Poziom dojrzałości określa Wyznaczony przez Dojrzałość procesu Kluczowe procesy Określane przez Organizowane Cele Atrybuty procesu Z zakresu Opisują Implementacji i organizacji Zasady praktyki określające Infrastructurę albo działanie rys 1 Struktura modelu CMM Poszczególne pojęcia za pomocą których opisywany jest model CMMM pokazany na rysunku 1 określane są następująco: • • • • • • poziom dojrzałości (maturity level) - rozumie się w tym modelu ustabilizowany poziom organizacji procesów zarządzania i technologicznych, dojrzałość procesu (proces capability) oznacza stopień możliwości przewidzenia jakie będą skutki tego procesu przy kolejnym jego uruchomieniu, procesy kluczowe (key process areas) określają grupę powiązanych odpowiednimi relacjami działań, które wykonywane wspólnie pozwolą na osiągnięcie celów uznawanych za istotne dla stopnia dojrzałości procesu, cele (goals) wyznaczają zakres, granice i intencje każdej dziedziny procesu, atrybuty procesu (common features) określone są w pięciu grupach: akceptacji stosowania, możliwości stosowania, mierzalności i analiz oraz weryfikacji implementacji. Atrybuty te pozwalają na określenie czy stosowanie kluczowych procesów jest efektywne, powtarzalne i skuteczne. Występuje silne powiązanie z ogólną kulturą organizacyjną firmy. zasady praktyki (key practices) określają infrastrukturę i postępowanie w celu najskuteczniejszego wykonania kluczowych procesów. 3 2.2 Poziomy dojrzałości Hierarchię poziomów dojrzałości w modelu CMM przedstawia rys. 2. Ciągłe doskonalenie procesów Przewidywalne procesy Optymalizacji Zarządzany Standardowe, spójne procesy Zdefiniowany Procesy uporządkowane Powtarzalny Początkowy Rys. 2. Pięć poziomów dojrzałości software’owej (Software Process Maturity) 1) Poziom początkowy: Organizacje znajdujące się na tym poziomie z reguły nie mają stabilnego środowiska projektowania i produkcji oprogramowania. Nawet jeżeli firma ma dobrze opanowaną techniczną stronę produkcji oprogramowania (narzędzia, fachowcy, metodyka itp.) to gdy brakuje w niej dobrych organizatorów proces wytwarzania oprogramowania jest nieustalony, wymyślany ad hoc, a często nawet chaotyczny. Zaledwie niektóre procesy są zdefiniowane (o ile w ogóle jakiekolwiek istnieją), a udanie się projektu zależy od indywidualnego wysiłku i talentu poszczególnych projektantów. Jakość wytworzonego oprogramowania jest sprawą przypadku i silnie zależy od umiejętności zaangażowanych jednostek. Dla menadżerów takich firm, jeżeli nie są informatykami, proces produkcji oprogramowania jest jedną, wielką czarną skrzynką. 2) Poziom powtarzalny Na tym poziomie znajduje się organizacja, która wprowadziła podstawowe procesy zarządzania projektami czyli opanowała umiejętność określenia wielkości oprogramowania, niezbędnych zasobów do jego wytworzenia, potrafi oszacować koszt i harmono- 4 gram itp. Opanowane są również elementy zarządzania jakością. Poziom ten nazywa się powtarzalnym, gdyż organizacja stosuje sposoby wykształcone w podobnych działaniach. Ciągle jednak występuje silna zależność sukcesu projektu od umiejętności jednostek, a w momencie stresu pojawia się tendencja do cofnięcia się organizacji do poziomu pierwszego. Proces tworzenia oprogramowania ewoluował od jednej czarnej skrzynki do kilku mniejszych, które przekazują sobie sterowanie poprzez punkty kontrolne (kamienie milowe projektu). Menadżerowie nawet gdy nie wiedzą co się dzieje wewnątrz czarnych skrzynek znają ich produkty i punkty kontrolne pozwalające na identyfikację procesu. 3) Poziom zdefiniowany Procesy zarówno zarządzania jak i inżynierskie są dokumentowane, standaryzowane i integrowane w standardowe procesy software’owe organizacji (w zakresie produkowanych aplikacji). We wszystkich projektach używa się sprawdzonych, dopasowanych standardów do projektowania i pielęgnacji oprogramowania. W firmie prowadzone są szkolenia i treningi dla zapewnienia pracownikom i menadżerom odpowiedniej wiedzy i umiejętności wymaganej przy pełnieniu przypisanej im roli. Występuje mniejsza zależność powodzenia projektów od jednostek. W momencie stresu nie porzuca się praktyk tego poziomu. Wewnętrzna struktura czarnych skrzynek tj. procesów w prowadzonych projektach jest zdefiniowana. Przedstawia ona sposób w jaki organizacja aplikuje standardy do realizowanych projektów. Łatwo i szybko da się określić stan projektu w każdym momencie dzięki temu, że zdefiniowane procesy pozwalają na pełną obserwowalność działań. 4) Poziom zarządzany: Do poziomu czwartego podstawową sprawą jest jakość produktu. Na czwartym poziomie organizacja musi opracować dokładne metody pomiaru procesów i zastosować je do działań korygujących. Zarówno proces software’owy jak i sam produkt są opisane pod względem jakości i dają się sterować. Menedżerowie dostali obiektywne, ilościowe metody podejmowania decyzji. Trafność tych decyzji rośnie ponieważ zmniejsza się nieokreśloność procesów. Gdy uda się takie miary określić organizacja wstępuje na drogę implementacji ciągłego doskonalenia procesów 5) Poziom optymalizacji Stosowane jest ciągłe doskonalenie procesów poprzez sprzężenie zwrotne i wprowadzanie innowacyjnych idei i technologii. Opracowane na poprzednim poziomie metody mierzenia procesów nie tylko pozwalają na doskonalenie procesów istniejących ale również na badanie opłacalności wprowadzania nowych technologii do organizacji. 2.3. Kluczowe procesy modelu CMM Na rysunku 2 przy poszczególnych poziomach podane zostało hasło obowiązujące na tym poziomie dojrzałości. Zobaczmy teraz jakie kluczowe procesy muszą być przez organizację opanowane aby mogła znaleźć się ona na kolejnym poziomie modelu CMM. Przedstawia to rysunek 3. 5 Optymalizacji Zarządzanie zmianami Zarządzanie technologią Zapobieganie błędom Zarządzany Zarządzanie jakością procesu Mierzalność procesu Zdefiniowany Przeglądy powykonawcze Koordynacja pracy grup Inżynieria produktu softwareowego Integracja zarządzania softwarem Program szkoleń Definicja procesów organizacyjnych Koncentracja na proc. organizacji Powtarzalny Zarządzanie jakością projektu Zarządzanie podwykonawcami Nadzorowanie projektów Planowanie projektów Analiza warunków i wymagań Początkowy Rys. 3. Kluczowe problemy modelu CMM Przyjrzyjmy się trochę dokładniej kluczowym procesom i spróbujmy je zakwalifikować do jednej z trzech kategorii zarządzania: operacyjnego, strategicznego i technologicznego (informatycznego) (patrz rysunek 4). Widać wyraźnie, że w miarę osiągania wyższego poziomu dojrzałości organizacja większy nacisk kłaść musi na problemy strategiczne. Z modelu wynika również, że nie ma większego pożytku ze stosowania rozwiązań, które nie współgrają z innymi kluczowymi procesami określonego poziomu. Zwykle jednak firma nie będzie „dojrzewać” równomiernie, niektóre procesy mogą być już z wyższego poziomu, a część jeszcze nie w pełni udoskonalona może powodować problemy. W tym mo- 6 mencie widzimy pożytek ze stosowania modelu CMM właśnie w przewidywaniu kolejnej fazy ewolucji zarządzania produkcją oprogramowania. Rozważania o powiązaniu modelu CMM z planowaniem strategicznym można znaleźć w [7] Kategoria Operacyjny Procesu Planowanie projektów, zarządzanie itp. Poziom 5 Optymalizacji 4 Zarządzany 3 Zdefiniowany Strategiczny Informatyczny Planowanie strategiczne zmian, technologii, itp. Analiza wymagań, projektowanie, kodowanie, testowanie, itp. Zarządzanie technologią Zarządzanie zmianami Ilościowa ocena procesów Zintegrowane zarządzanie softwarem Koncentracja na procesach organizacyjnych 2 Powtarzalny Kontrola jakości projektu Zarządzanie podwykonawcami Nadzorowanie projektów Planowanie projektów Analiza warunków i wymagań 1 Początkowy Procesy ad hoc Unikanie błędów Zarządzanie jakością oprogramowania Inżynieria oprogramowania Rys. 4. Przyporządkowanie głównych procesów do trzech kategorii procesów 3. Model CMM a standard ISO 9001 W pracy [8] Mark C. Paulk przebadał 20 warunków ISO 9001 i porównał je z zapisami przyjętymi w modelu CMM. Dochodzi do wniosku, że model i seria standardów ISO 9000 koncentrują się na tych samych zagadnieniach: jakości i zarządzaniem procesami. Te problemy są podobnie traktowane i są intuicyjnie skorelowane różnią się jednak w swoim filozoficznym podejściu: ISO 9001 określa minimalne wymagania dla systemu kontroli jakości podczas gdy model CMM podkreśla konieczność ciągłego doskonalenia procesów. Na trzy pytania : • Na jakim poziomie CMM znajduje się organizacja, która posiada certyfikat ISO 9001? • Czy organizacja będąca na 2 (lub 3) poziomie CMM może być traktowana jako posiadacz certyfikatu ISO 9001? • Czy zarządzanie jakością software'u i doskonalenie procesów oprzeć na ISO 9001 czy na CMM? 7 Pada odpowiedź, że wszystkie procesy kluczowe modelu CMM są w jakimś stopniu w relacji do ISO 9001. Generalnie zawarte w CMM zasady odpowiadają wymaganiom ISO 9001. W drugą stronę jest to mniej prawdziwe, co powoduje, że konstruowanie dokładnego odpowiednika jest mało przydatne ale podobieństwo jest znaczące. W efekcie można powiedzieć, że: • Organizacja posiadająca certyfikat ISO 9001 powinna spełniać większość celów z poziomu 2 i wiele z poziomu 3. I w drugą stronę organizacja znajdująca się na poziomie 1 może starać się o certyfikat ISO. • Organizacja z poziomu 2 (lub 3) prawdopodobnie będzie spełniała wymagania ISO ale nawet będąc na 3 poziomie musi zwrócić uwagę na pewne procesy (np. dostaw i instalacji oprogramowania). • Na pytanie ISO czy CMM pada odpowiedź, że najpewniej firma będzie chciała (musiała) zastosować obydwa rozwiązania: jedno wymuszone przez rynek (standardy ISO) i drugie z powodu praktycznej użyteczności. Obydwa te modele pozwalają na oparcie budowy swojej przewagi konkurencyjnej na pewnych formalnych kryteriach, certyfikacie czy stopniu dojrzałości. Można to robić w szerszym biznesowym kontekście filozofii Total Quality Management. 4. Użyteczność modelu CMM Oprogramowanie staje się coraz bardziej złożone i coraz ważniejsze staje się jego niezawodne działanie. Dotrzymanie terminów, zmieszczenie się w budżecie i przede wszystkim sama realizacja warunków zlecenia stają się coraz trudniejsze do spełnienia. Organizacje potrzebują metod oceny możliwości realizacji kontraktów software’owych niezależnie czy występują w roli wykonawcy, podwykonawcy czy wreszcie zleceniodawcy. Model CMM dostarczając spójną bazę, na której gruncie można ocenić procesy software’owe pozwala na porównywanie możliwości jednej organizacji z inną. Przyjmując za pożądaną ścieżkę ewolucji organizacji od poziomu 1 nieustrukturyzowanych procesów do najwyższego, optymalizującego model CMM może być użyty do opracowania strategii firmy. Z modelu wynikają bowiem wprost cele strategiczne, jakie należy osiągnąć aby znaleźć się na kolejnych poziomach rozwoju, łatwo również dobrać drogę dojścia do tego celu [patrz np. 9] czyli określić strategię firmy. Nieoceniony jest również wkład teoretyczny przy badaniu kierunków rozwoju organizacji nie tylko software'owych. W jednym, zintegrowanym modelu umieszczone zostały odrębnie funkcjonujące techniki i metody co nadaje im inny wymiar. Model CMM może być użyty również do opisu innej niż software'owa działalności inżynierskiej patrz np. [9]. Analizując problemy z wdrażaniem informatyki w organizacjach również można posłużyć się koncepcją "dojrzałości procesów", które miałyby być wspomagane technologią informatyczną, pewne próby takiego opisu zawarte są w pracy [10]. 8 Literatura: 1. A Software Process Bibliografy, august 1999 ftp://ftp.sei.cmu.edu/pub/cmm/Misc/biblio.pdf 2. David Lipton: Function Points and the SEI Capability Maturity Model http://www.qpmg.com/seicmm2.htm 3. Emmanuel R. Baker, Frank J. Koch, The SEI Capability Maturity Model, Proces Perspectives, No. 1 Fall 1993 http://www.process-strategies.com/pp_1.htm 4. Mark C. Paulk, Bill Curtis, Mary Beth Chrissis, Charles V. Weber, The Capability Maturity Model For Software, Version 1.1, Software Engineering Institute ,Carnegie Mellon University Pittsburgh, CMU/SEI-93-TR-24 http://rbse.jsc.nasa.gov/cmm/TR24/tr24.html 5. Paulk, Mark C., et al The Capability Maturity Model: Guidelines for Improving the Software Process, Addison-Wesley, 1995 6. Praca zbiorowa SEI: A Systems Engineering Capability Maturity ModelSM Version 1.1 http://www.sei.cmu.edu/pub/documents/95.reports/pdf/mm003.95.pdf 7. Frank J. Koch and Emanuel R. Baker: Strategic Planning for Software Process Improvement, , Proces Perspectives, No.6 - Winter 1999 http://www.process-strategies.com/pp_6.htm 8. Mark C. Paulk: How ISO 9001 compares with the CMM http://www.sei.cmu.edu/publications/documents/96.reports/96.ar.iso.vs.cmm.html 9. W. Byrski, R. Gambin: Algorytmiczne podejście do tworzenia strategii firmy, materiały PLOUG'98 10. W. Byrski: Modele firmy dla celów zarządzania procesem informatyzacji, w: Zarządzanie Zmianami, Biuletyn informacyjny Wyższej Szkoły Zarządzania, WarszawaKraków-Legnica, (w druku) 9