Kryteria wyboru metod zarzČdzania projektami informatycznymi
Transkrypt
Kryteria wyboru metod zarzČdzania projektami informatycznymi
Problemy ZarzÈdzania, vol. 10, nr 3 (38): 25 – 40 ISSN 1644-9584, © Wydziaï ZarzÈdzania UW DOI 10.7172.1644-9584.38.2 Kryteria wyboru metod zarzÈdzania projektami informatycznymi Witold Chmielarz Zasadniczym celem niniejszego artykuïu jest identyfikacja metod zarzÈdzania projektami informatycznymi wĂród tradycyjnych i nowoczesnych. W ostatnich latach podejĂcie do zarzÈdzania projektami systemów informatycznych ulega szybkim i wielokierunkowym przemianom. Klasyczna teoria projektowania i obecna pragmatyka coraz bardziej siÚ rozmijajÈ. Wydaje siÚ, ĝe zastosowanie lekkich metod projektowania przynajmniej czÚĂciowo minimalizuje powstajÈce róĝnice. Przeprowadzona analiza stara siÚ wyjaĂniÊ zaistniaïe wbtym zakresie wÈtpliwoĂci oraz pokazuje, jak wybraÊ wïaĂciwÈ metodÚ dla okreĂlonego przypadku zarzÈdzania projektem. 1. Wprowadzenie ZarzÈdzanie projektami informatycznymi jest istotnÈ, wiodÈcÈ czÚĂciÈ zarzÈdzania projektami i najczÚĂciej utoĝsamiane jest z analizÈ i projektowaniem systemów informatycznych oraz tzw. inĝynieriÈ oprogramowania. KategoriÈ najszerszÈ – z teoretycznego punktu widzenia – jest tu zarzÈdzanie projektami utoĝsamiane z okreĂlonÈ dziedzinÈ naukowÈ, opartÈ na rozwiÈzaniach teoretycznych problemów praktycznych wynikajÈcych „z koniecznoĂci zaspokojenia zanalizowanych wymogów zleceniodawcy przy pomocy dostÚpnych umiejÚtnoĂci, wiedzy, metod, technik i narzÚdzi realizacyjnych” (Mingus 2009: 21). Jest to wiÚc nauka o skutecznym osiÈganiu zakïadanych celów przy pomocy racjonalnego uĝycia zasobów (ludzkich, finansowych, materialnych itp. i relacji miÚdzy nimi) w zakïadanym czasie. Podmiotem zarzÈdzania projektami jest niewÈtpliwie projekt, który moĝe dotyczyÊ unikalnych przedsiÚwziÚÊ realizowanych w róĝnych branĝach, sektorach, w róĝnym czasie, zakresie, za pomocÈ róĝnych Ărodków czy zespoïów, w okreĂlonej strukturze organizacyjnej, instytucjonalnej itd. Na rozwój tej dziedziny naukowej najwiÚkszy jednak wpïyw miaïy projekty informatyczne – ze wzglÚdu na ich wielkoĂÊ, zïoĝonoĂÊ, innowacyjnoĂÊ, ryzyko, wysokie koszty realizacji i zwiÈzanÈ z tym koniecznoĂÊ zarzÈdzania nie tylko wymienionymi elementami, ale równieĝ relacjami pomiÚdzy nimi. ZarzÈdzanie projektami informatycznymi jest pojÚciem najszerszym, obejmujÈcym wszystkie aspekty vol. 10, nr 3 (38), 2012 25 Witold Chmielarz tworzenia, wdroĝenia i wykorzystania systemów informacyjnych wspomagajÈcych zarzÈdzanie, zarówno od strony praktycznej, jak i teoretycznej. Inĝynieria systemów informatycznych koncentruje siÚ na technologicznych aspektach tych procesów. Analiza i projektowanie systemów informatycznych – zïoĝony proces organizacyjny – skupiony jest na pierwszych, gïównie informacyjnych, ale kto wie, czy nie najwaĝniejszych fazach cyklu ĝycia systemu informatycznego. Cykl ĝycia systemu informatycznego jest tu, jak siÚ wydaje, kategoriÈ kluczowÈ, wystÚpujÈcÈ we wszystkich rozpatrywanych obszarach metodycznych. Cykl ĝycia systemu informatycznego jest w nich traktowany jako sekwencja etapów (faz) czynnoĂci wzorowanych na ĝyciu organizmów, którego ostatecznym celem jest budowa, wdroĝenie, modyfikacje i wycofanie (lub zastÈpienie) systemu informatycznego, poczÈwszy od pierwszego pomysïu na ten temat (narodziny) po jego likwidacjÚ (ĂmierÊ). Idea cyklu ĝycia (projektu, systemu, procesów inĝynierii) jest w tych wszystkich koncepcjach toĝsama, róĝnice wystÚpujÈ w liczbie i nazewnictwie etapów (faz), ich kolejnoĂci logicznej lub zrównolegleniu i nastÚpstwie oraz relacjach z otoczeniem, szczególnie z uĝytkownikiem finalnym. Róĝnice te nasiliïy siÚ w ostatnim dziesiÚcioleciu, wraz z momentem rozpoczÚcia szerokiego stosowania tzw. metodyk lekkich (zwinnych – agile). Identyfikacja tych róĝnic wraz z wynikajÈcymi z nich konsekwencjami jest gïównym celem niniejszego artykuïu. 2. Ogólna charakterystyka metod ciÚĝkich (tradycyjnych) projektowania systemów informatycznych W cyklu ĝycia systemu informatycznego wyróĝnia siÚ przewaĝnie poszczególne etapy (fazy), z których czÚĂÊ moĝe wystÚpowaÊ sekwencyjnie lub równolegle, jednokrotnie bÈdě wielokrotnie. W tworzeniu modeli cyklu ĝycia projektu wyróĝnia siÚ metodyki: – ciÚĝkie (klasyczne, tradycyjne), takie jak kaskadowa (liniowa), przyrostowa, ewolucyjna, baz danych, prototypowa, spiralna; – lekkie (nowoczesne, zwinne – agile), takie jak XP (eXtreme Programming), Scrum, Feature Driven Development (FDD), Dynamic System Development Method (DSDM) czy Adaptive Software Development (ASD)1. W kanonicznej (podstawowej, funkcjonujÈcej jako punkt odniesienia) wersji projektowania systemów informatycznych cykl ĝycia skïada siÚ zbnastÚpujÈcych etapów2: – inicjacji, wstÚpnego rozpoznania systemu (wykonalnoĂci, strategia rozwoju organizacji, identyfikacja systemu, analiza moĝliwoĂci informatyzacji, postawienie problemu) – polegajÈcego na: identyfikacji celu, problemów, stanu obecnego i perspektyw (w tym ryzyka wykonalnoĂci) rozwoju systemu informacyjnego lub jego zmian; 26 Problemy ZarzÈdzania Kryteria wyboru metod zarzÈdzania projektami informatycznymi – analizy informacyjnej systemu – na którÈ skïada siÚ identyfikacja otoczenia, ïÈcznoĂci z otoczeniem, podsystemów, skïadowych systemu oraz obecnych i przyszïych warunków jego dziaïania; – projektowania (technicznego) systemu – koncentrujÈcego siÚ na uszczegóïowieniu zaïoĝeñ analitycznych, stworzeniu modelu logicznego i fizycznego przyszïego systemu lub ewentualnych zmian w funkcjonowaniu obecnego systemu; – oprogramowania systemu (kodowania, implementacji) – polegajÈcego na oprogramowaniu modelu fizycznego, konstrukcji programu lub zestawu wspóïpracujÈcych ze sobÈ programów (systemu informatycznego); – testowania – czyli sprawdzenia pod wzglÚdem semantycznym, technicznym i merytorycznym prawidïowoĂci funkcjonowania systemu; – wdroĝenia (zastosowania, aplikacji) – tj. uruchomienia (instalacji) ibzainstalowania systemu u uĝytkownika koñcowego, zaïadowania systemu parametrami niezbÚdnymi do jego funkcjonowania, podïÈczenia do aktualnych ěródeï danych, ostatecznego szkolenia uĝytkownika koñcowego; – eksploatacji (realizacji) – sprowadzajÈcej siÚ do uruchomienia uĝytkowego, monitoringu, oceny i modyfikacji systemu; – wycofania (zakoñczenia dziaïalnoĂci) systemu – po badaniu opïacalnoĂci opracowania procedury przejĂcia na nowy system informatyczny zachowujÈcy maksymalnie moĝliwÈ iloĂÊ pozytywnych cech starego systemu. Etapy i fazy modelu kanonicznego wystÚpujÈ w róĝnych postaciach, wariantach i rozwiniÚciach zarówno w metodach tradycyjnych, jak i nowoczesnych. Podstawowa równica pomiÚdzy nimi polega – zgodnie z jednym podejĂciem (Chmielarz 2010: 359–402) – w zasadzie na tym, ĝe: – w metodach tradycyjnych realizowane sÈ kolejne etapy cyklu ĝycia, wbtym planowanie funkcjonalnoĂci (zakresu) wraz z niezbÚdnymi dla nich zasobami (materiaïowymi, ludzkimi, informacyjnymi) oraz przypisanym im budĝetem; – w metodach nowoczesnych nastÚpuje koncentracja na funkcjonalnoĂciach, w trakcie realizacji których na bieĝÈco ustalane sÈ (na ogóï w porozumieniu z uĝytkownikiem) zasoby i budĝet niezbÚdne do ich realizacji. Inni autorzy twierdzÈ (Mannaro 2008), ĝe róĝnice te wyraĝajÈ siÚ wbpodejĂciu przez metodyki tradycyjne i nowoczesne do problematyki zarzÈdzania zmianÈ. W metodyce tradycyjnej wyraĝa siÚ ono (na ogóï) przyjÚciem ukrytego zaïoĝenia, ĝe moĝliwe jest osiÈgniÚcia zaïoĝonego celu w trakcie jednego podejĂcia, którego parametry sÈ ustalane a priori na poczÈtku cyklu. Dlatego metodyka ta jest najlepsza w tych projektach, które sÈ stabilne, tzn. takie, w których nie sÈ przewidywane zmiany wymagañ czy technologii w trakcie realizacji projektu. Alternatywnie, nowoczesne metodyki sÈ najbardziej odpowiednie dla projektów, w których przewiduje siÚ wiele zmian podczas realizacji. Nie skupiajÈ siÚ one na rozpoznaniu wymagañ i planowaniu dziaïañ, gïownie na poczÈtku projektu dla caïego jego przebiegu, ale na rozpoznaniu wymagañ i potrzebnych zasobów w trakcie realizacji zadañ szczegóïowych. vol. 10, nr 3 (38), 2012 27 Witold Chmielarz Niemniej jednak kanon postaci cyklu ĝycia projektowania systemów informatycznych wywodzi siÚ z historycznego rozwoju metod zarzÈdzania projektem informatycznym (szkóï strukturalnych, operacyjnych, obiektowych i spoïecznych) z jednej strony i rozwoju technologii systemów z drugiej. Byïy to procesy dïugotrwaïe, dynamiczne i radykalne – dlatego w teorii lepiej i bardziej szczegóïowo sÈ zaprezentowane i opisane tradycyjne metody projektowania. Najbardziej znanym, najczÚĂciej uĝywanym i najbardziej charakterystycznym z modeli postÚpowania w metodach tradycyjnych byï model kaskadowy (rysunek 1). Przyjmowano w nim nastÚpujÈce zaïoĝenia: – na poczÈtku kaĝdego projektu istnieje stabilny zestaw potrzeb i wymagañ informacyjnych uĝytkownika i celów, do których on dÈĝy; – potrzeby nie zmieniajÈ siÚ w trakcie ĝycia systemu; – proces budowy systemu odbywa siÚ stopniowo, dopiero po skoñczeniu jednego etapu zaczynany jest nastÚpny; – kaĝdy kolejny etap oznacza uszczegóïowienie i przybliĝenie do rzeczywistoĂci; – powoduje to powrót do poprzednich etapów w momencie, gdy zostanie wykryty bïÈd i powstanie koniecznoĂÊ jego korekty. Niestety w rzeczywistoĂci juĝ zaïoĝenie pierwsze na ogóï siÚ nie sprawdza (uĝytkownicy nie majÈ sprecyzowanych na wstÚpie potrzeb), moĝe wiÚc szybko nastÈpiÊ rozminiÚcie siÚ z potrzebami uĝytkownika. Ponadto jest to bardzo droga kombinacja, poniewaĝ w przypadku realizacji przez firmÚ informatycznÈ tylko jednego projektu w danym czasie oznacza koniecznoĂÊ utrzymywania ekipy realizacyjnej czÚĂciowo bezrobotnej podczas realizacji nastÚpnych etapów. Ponadto w rzeczywistoĂci czÚsto wystÚpuje nakïadanie siÚ poszczególnych etapów na siebie. W tej sytuacji istniejÈ liczne modyfikacje tego podejĂcia. Model kaskadowy nie jest jedynym, a tylko najprostszym modelem realizacji cyklu ĝycia projektu. Nie uwzglÚdnia wielu problemów, np. zarzÈdzania ryzykiem. Jego zaletÈ, dziÚki której jest lubiany i akceptowany przez uĝytkowników, jest prostota rozwiÈzañ i fakt, ĝe staï siÚ podstawÈ innych metodyk, np. ewolucyjnej czy przyrostowej. Zaïoĝenia modelu ewolucyjnego byïy nastÚpujÈce: – caïy system jest dzielony na moduïy; – kaĝdy z nich odbywa przejĂcie przez kolejne fazy cyklu budowy systemu; – na koñcu dziaïañ projektowych przystÚpuje siÚ do specjalnego etapu polegajÈcego na integracji caïego systemu i przeprowadzeniu testów; – w systemie podzielonym na czÚĂci, których realizacja jest przesuniÚta wb czasie, ïatwiej nadÈĝaÊ za zmieniajÈcym siÚ celem dziaïania; – poniewaĝ kaĝdy moduï stanowi poczÈtkowo organicznie odrÚbnÈ czÚĂÊ, naleĝy zwróciÊ uwagÚ na niebezpieczeñstwo zwiÈzane z koniecznoĂciÈ integracji moduïów w caïoĂÊ (bardzo czÚsto staje siÚ to gïównÈ przyczynÈ niepowodzeñ realizacji projektu). 28 Problemy ZarzÈdzania Kryteria wyboru metod zarzÈdzania projektami informatycznymi Wycofanie Proces weryfikacji systemu Eksploatacja Postępy prac Wdrożenie Testy Oprogramowanie Projekt Analiza Rozpoznanie Czas Rys. 1. Schemat ideowy modelu kaskadowego. ½ródïo: opracowanie wïasne. Jest to rozwiÈzanie tañsze w realizacji od poprzedniego, poniewaĝ moĝe – po przesuniÚciu realizacji poszczególnych moduïów w czasie – byÊ obsïugiwane przez mniejszÈ liczbÚ personelu. Kiedy analitycy koñczÈ pracÚ nad jednym moduïem, przechodzÈ do nastÚpnego, a ich miejsce zajmujÈ programiĂci. Model ewolucyjny niestety nie zawsze speïniaï pokïadane wb nim nadzieje. Poszczególne podsystemy – dla duĝych projektów budowane przez róĝne zespoïy – nawet pomimo tworzenia specjalnych procedur integracyjnych, nie zawsze w peïni dawaïy siÚ zintegrowaÊ ze wzglÚdu np. na róĝnÈ wizualizacjÚ mechanizmów funkcjonowania. Brakowaïo w nich wyraěnie spójnych zaïoĝeñ dla caïego systemu informatycznego. Dlatego wïaĂnie model kaskadowy ewoluowaï dalej – do stworzenia modelu przyrostowego. Model przyrostowy charakteryzowaï siÚ nastÚpujÈcymi zaïoĝeniami. – przeprowadzane jest rozpoznanie i analiza dla caïoĂci systemu, dziÚki której powstaje caïoĂciowa koncepcja wstÚpna systemu, poparta ogólnÈ analizÈ caïego systemu; – nastÚpnie system podzielony na moduïy realizacyjne jest projektowany, programowany i testowany kolejno dla kaĝdego z nich przez dziedzinowe zespoïy robocze wykonujÈce projekty techniczne dla kaĝdego moduïu ib je testujÈce; – spójnoĂÊ systemu zapewniajÈ pierwotne zaïoĝenia systemu oraz wspólne koñcowe etapy instalacji i wdroĝenia, w których przeprowadzana jest teĝ peïna integracja systemu. Jest to procedura, podobnie jak poprzednia, najlepiej sprawdzajÈca siÚ przy ograniczonych Ărodkach, którymi dysponuje zespóï realizujÈcy system. Kaĝdy z podsystemów moĝe byÊ realizowany oddzielnie, caïy zespóï pracuje jedynie na poczÈtku, podczas tworzenia caïoĂciowej koncepcji rozwiÈzania systemu, oraz na koñcu, w trakcie integracji poszczególnych podsystemów vol. 10, nr 3 (38), 2012 29 Witold Chmielarz wbjednÈ organicznÈ caïoĂÊ. Procedura przyrostowa jest lepsza od ewolucyjnej, poniewaĝ mechanizmy integracyjne dziaïajÈ zarówno na poczÈtku, jak i na koñcu procesu tworzenia systemu. Na poczÈtku cyklu, oprócz rozpoznania ibanalizy, tworzone sÈ takĝe wspólne normatywy i zasady wykonania projektu kaĝdego moduïu. Uïatwia to póěniejszÈ integracjÚ na etapach koñcowych. W cyklu ewolucyjnym oraz przyrostowym moĝna teĝ w ograniczony sposób reagowaÊ na zmiany wymagañ uĝytkownika. Zupeïnie odrÚbnÈ systematykÚ zakïada model tworzenia struktury baz danych (Freya). W cyklu ĝycia opartego na tworzeniu struktury bazy danych wyróĝnia siÚ na ogóï nastÚpujÈce fazy: – rozpoznania i analizy – gdzie nastÚpuje rozpoznanie i zebranie potrzeb informacyjnych uĝytkowników; – projektu technicznego, skïadajÈcego siÚ z dwóch etapów, dotyczÈcych tworzenia projektu logicznego, czyli opisu modelu danych i przyszïych procesów w systemie, oraz projektu fizycznego, czyli projektu struktury bazy danych (zbiorów i relacji pomiÚdzy nimi), wzorców dokumentów, technologii przetwarzania, specyfikacji wewnÚtrznych itp.; – oprogramowania i testowania – polegajÈcego na stworzeniu bazy danych i oprogramowanie zastosowañ (aplikacji) opartych na danych zawartych w bazie danych oraz testowaniu oprogramowania; – wdroĝenia – zainstalowania oprogramowania w okreĂlonej platformie ibkonfiguracji sprzÚtowej i wprowadzenia parametrów okreĂlonych przez uĝytkownika w celu kastomizacji i przygotowania systemu do eksploatacji; – eksploatacji uĝytkowej i kontroli – polegajÈcej na roboczym uĝytkowaniu systemu oraz zapewnieniu poprawnoĂci z ustalonymi normatywami i wymogami uĝytkownika; – potencjalnych modyfikacji i adaptacji – czyli udoskonalenia funkcjonowania w wyniku pojawienia siÚ nowych potrzeb; w razie potrzeby powrót do etapów poczÈtkowych. Zasadnicza idea tego cyklu ĝycia polega na stworzeniu na poczÈtku projektu struktury bazy danych systemu i oprogramowania bazy danych, co umoĝliwia rejestracjÚ podstawowych faktów z ĝycia organizacji, a nastÚpnie obudowanie bazy danych oprogramowaniem aplikacyjnym, które wykorzystuje dla róĝnych aplikacji te same dane zawarte w bazie danych do obsïugi sprzedaĝy, dostaw, kontaktów z kontrahentami itp. W ten sposób powstawaïo i jest wykorzystywanych do dziĂ wiele zïoĝonych systemów opartych na bazie danych. Jest to jednak metoda, gdzie uĝytkownik koñcowy rezultaty dziaïania projektanta i programisty oglÈda dopiero po uruchomieniu bazy danych oraz pierwszych aplikacji. Dopiero wtedy moĝe teĝ sprawdziÊ ich zgodnoĂÊ z zaïoĝeniami ustalanymi z zespoïem projektowym. Znacznie szybciej uwidacznia siÚ to podczas zastosowania modelu prototypowego. IstotÈ modelu prototypowego jest oprogramowanie na poczÈtku dziaïañ projektowych – schematu dziaïania systemu, najlepiej razem z przyszïym uĝytkownikiem. Cel takiego postÚpowania jest nastÚpujÈcy: 30 Problemy ZarzÈdzania Kryteria wyboru metod zarzÈdzania projektami informatycznymi – redukcja czasu oczekiwania na rezultaty programowe i wykazanie siÚ wobec uĝytkownika koñcowego uchwytnymi (dla niego) efektami realizacyjnymi; – szybkie „sprzÚĝenie” uĝytkownika z zespoïem projektowym; – ograniczenie liczby bïÚdów oraz iteracyjnych (potencjalnych) rozmów zb uĝytkownikiem, np. na temat wizualizacji systemu; – wiÚksze zaangaĝowanie uĝytkownika w analizÚ i projekt. Model ten skïada siÚ z nastÚpujÈcych etapów: – rozpoznania i analizy potrzeb uĝytkownika; – projektu technicznego wraz z generacjÈ oprogramowania – w trakcie tego etapu powstaje prototyp, który nastÚpnie jest sukcesywnie poprawiany w interakcji z uĝytkownikiem; – po testach kolejnych wersji prototypu i jego udoskonaleniach oraz instalacji system jest przeksztaïcany w wersjÚ ostatecznÈ, która przekazywana jest do eksploatacji i – w miarÚ potrzeb – modyfikowana z uĝyciem narzÚdzia, za pomocÈ którego zostaïa stworzona. Sprawna realizacji systemu prototypowego wymaga zastosowania dobrego oprogramowania klasy CASE (Computer Aided System Engineering), co niestety powoduje, ĝe jego bezpoĂrednie i peïne zastosowanie bywa ograniczone poprzez wïasnoĂci tego narzÚdzia. A dodatkowo zwiÚksza koszty projektu. Dlatego, pomimo niewÈtpliwych zalet tego podejĂcia, wielu projektantów i programistów woli stosowaÊ jedno z podejĂÊ klasycznych. Najbardziej rozwiniÚtÈ formÈ tradycyjnego modelu cyklu ĝycia jest natomiast model spiralny. Fazy realizacji modelu spiralnego sÈ nastÚpujÈce: – ustalenie celów dziaïania – dotyczy definicji konkretnego celu systemu oraz uzasadniania koncepcji i ustalania planów jego realizacji; budowa modelu rozpoczyna siÚ od inicjacji i definiowania projektu (ustalenia wstÚpnych wymagañ), a nastÚpnie polega na analizie wstÚpnej ryzyka realizacji projektu; na tej podstawie buduje siÚ pierwszy prototyp i tworzy konceptualny plan (harmonogram) caïoĂci projektu; – rozpoznanie i redukcja zagroĝeñ – po kolejnej fazie analizy ryzyka pierwszego prototypu (identyfikacja najwaĝniejszych zagroĝeñ, ěródeï ibsposobów zapobiegania zagroĝeniom) oraz zbadania ewentualnych alternatyw budowany jest nastÚpny prototyp projektu i tworzy siÚ wymagania dotyczÈce ograniczeñ i zasobów projektu; – tworzenie i zatwierdzanie – w tej fazie nastÚpuje proces rozwoju kolejnej czÚĂci produktu, oparty na najbardziej odpowiednim modelu, wybranym na podstawie oceny zagroĝeñ; kolejno powstaje plan realizacji projektu i odbywa siÚ kolejny etap zakoñczony planem caïoĂci projektu; – ocena i planowanie – to faza, w której recenzowany jest postÚp prac oraz planowana jest kolejna bÈdě ostateczna faza projektu; ostatni obieg cyklu przynosi projekt szczegóïowy, testy i realizacjÚ projektu oraz jego zamkniecie. Model ten róĝni siÚ od pozostaïych wielokrotnym powtarzaniem poszczególnych faz podstawowego modelu cyklu ĝycia oraz – po kaĝdym „podcyklu” vol. 10, nr 3 (38), 2012 31 Witold Chmielarz – nastÚpuje dalsze uszczegóïowienie modelu oraz analiza ryzyka zakoñczonej sukcesem wykonalnoĂci caïego systemu w danym momencie rozwoju. Jest to najbardziej skomplikowany i najdroĝszy w realizacji model cyklu ĝycia systemu informatycznego, stosowany do rozwiÈzywania najbardziej skomplikowanych i trudnych problemów tworzenia systemów, np. militarnych. Tak jak inne modele klasyczne oparte na prototypowaniu i analizie ryzyka najbardziej zbliĝony jest do podejĂcia nowoczesnego. Grupa metodyk tradycyjnych istnieje od dawna. Reĝim, który nakïadajÈ na rozwój projektu, dyscyplinuje w pewnym sensie sposób postÚpowania wbtrakcie realizacji projektu. Nie daje to jednak gwarancji, ĝe projekt zakoñczy siÚ sukcesem. Metody te sÈ tak bardzo „sztywne” i ustrukturyzowane, ĝe przestrzeganie wszystkich kroków, formuï i procedur znaczÈco spowalnia caïy proces rozwoju projektu. CharakteryzujÈ siÚ one nastÚpujÈcymi cechami: – Przewidywalne i powtarzalne podeĂcie do procesu rozwoju projektu. Wbklasycznych metodykach zakïada siÚ zwiÚkszajÈcÈ siÚ szczegóïowoĂÊ w miarÚ realizacji poszczególnych faz i etapów rozwoju projektu i obejmowanie caïego okresu od poczÈtku do koñca projektu. Do analiz przeprowadzanych na bardzo niskim stopniu abstrakcji stosuje siÚ na ogóï deterministyczne techniki szczegóïowe. Wynik uzyskany za ich pomocÈ jest prawdziwy dopóki przynajmniej jedno z zaïoĝeñ poczÈtkowych nie zostanie zmienione. Zakïada siÚ wiÚc deterministyczny, niezmieniany, nieadaptowany i maïo elastyczny harmonogram, budĝet i zasoby oraz budowany na tej podstawie peïen podziaï zadañ dla kaĝdego zespoïu tworzÈcego produkt lub usïugÚ. – Obszerna dokumentacja. Tradycyjne podeĂcie do realizacji projektu zakïada, ĝe dokumentacja jest tworzona po kaĝdej fazie, kaĝdym etapie cyklu ĝycia projektu. W najbardziej konwencjonalnej formie modelu kaskadowego przyjmuje siÚ, ĝe zakres oraz wymagania dotyczÈce uĝytkownika sÈ zbierane i ustalane w pierwszej fazie cyklu, a nastÚpnie na ich podstawie tworzony jest produkt lub realizowana usïuga. Nie zmienia siÚ tych zaïoĝeñ do koñca cyklu ĝycia projektu; czÚĂÊ zebranych i przeksztaïconych wbzalecenia wykonawcze informacji i dokumentów wymaga przez to zmian w trakcie realizacji projektu. – Zorientowanie na proces. Celem klasycznych metodyk jest w zasadzie okreĂlenie procesu czy procesów, które bÚdÈ uniwersalne i powtarzalne, czyli bÚdÈ funkcjonowaïy w prawidïowy sposób i bÚdÈ przydatne dla kaĝdego, kto bÚdzie ich uĝywaï, w kaĝdej sytuacji, w której wydadzÈ siÚ przydatne. Kaĝdy proces skïadajÈcy siÚ z zadañ/czynnoĂci powinien byÊ wykonywany wedïug okreĂlonych z góry procedur przez okreĂlonÈ, przypisanÈ do niego i odpowiedzialnÈ za niego grupÚ pracowników/wykonawcÚ. – Zorientowanie na narzÚdzia i techniki wspomagajÈce realizacjÚ. Do wykonania kaĝdego okreĂlonego w projekcie zadania powinny byÊ dostarczone odpowiednie narzÚdzia wspomagajÈce zarzÈdzania. 32 Problemy ZarzÈdzania Kryteria wyboru metod zarzÈdzania projektami informatycznymi 3. PrzeglÈd lekkich (nowoczesnych) metod projektowania systemów informatycznych Na drugim biegunie znajdujÈ siÚ metody lekkie (zwinne – agile) projektowania. Ich zasadniczym celem jest maksymalne zwiÚkszenie wartoĂci produktu w porównaniu z jego aktualnym stanem, przy zaïoĝonych kosztach i w okreĂlonym czasie. W ManifeĂcie rozwoju zwinnego oprogramowania (Beck i in. 2010) zwraca siÚ uwagÚ na koniecznoĂÊ cenienia sobie bardziej ludzi ibinterakcji pomiÚdzy nimi niĝ procesów i narzÚdzi, dziaïajÈcy rezultat projektu ponad obszernÈ dokumentacjÚ, wspóïpracÚ z klientem ponad formalne ustalenia oraz reagowanie na zmiany ponad podÈĝanie za planem. Odpowiada to postulatom wymienionych dotychczas zmian, które wynikajÈ z ewolucji poglÈdów na same projekty i zarzÈdzanie nimi. Gïównym czynnikiem róĝniÈcym metody zwinne od tradycyjnych jest uznanie ludzi jako podstawowego czynnika sukcesu projektu, który poïÈczony jest z intensywnym naciskiem na skutecznoĂÊ i uwzglÚdnienie zmian (Kendall i Kendall 1999). Jest teĝ to swoista odpowiedě na wyzwania biznesowe powstaïe zb wyniku uksztaïtowania siÚ szybko zmieniajÈcych siÚ globalnych rynków. Poniĝej przestawione sÈ zaïoĝenia metodyk zwinnych, które traktowaÊ moĝna równieĝ jako gïówne róĝnice pomiÚdzy tradycyjnymi metodykami zarzÈdzania projektami (Awad 2005; Koszlajda 2010): – Zorientowanie na interesariuszy projektu. Jest to wedïug tych metodyk najwaĝniejszy czynnik zwiÈzany z rozwojem projektu (co zgadza siÚ zb obserwacjami m.in. Standish Group) – najwaĝniejszym zadaniem dla kierowników zespoïów „zwinnych” projektów jest to, ĝeby kïaĂÊ wiÚkszy nacisk na ludzi wraz z ich umiejÚtnoĂciami, takimi jak: ambicje, zdolnoĂci, oraz na wzajemnÈ komunikacjÚ (Highsmith i Cockburn 2004). Jeĝeli ludzie zaangaĝowani w projekt nie sÈ, wtedy ĝaden proces nie naprawi ich nieadekwatnoĂci. – AdaptacyjnoĂÊ (nieosiÈgalna idée fixe metod tradycyjnych). W tym podejĂciu kïadzie siÚ nacisk na zarzÈdzanie zmianÈ. Sprzyja to przekazaniu uĝytkownikowi wïasnej wiedzy wiÚkszej niĝ minimalna zakïadana projektem (Sully 1993). ZarzÈdzanie zmianÈ zakïada ciÈgïÈ reakcjÚ na ciÈgïe zmiany zachodzÈce w projekcie. Najtrudniejsze do oceny i reakcji sÈ zewnÚtrzne zmiany Ărodowiskowe. Poniewaĝ nie jest moĝliwa ich eliminacja, naleĝy dÈĝyÊ do minimalizacji kosztów z nimi zwiÈzanych. – ZgodnoĂÊ z rzeczywistoĂciÈ. Zwraca siÚ bardziej uwagÚ na zgodnoĂÊ otrzymanych rezultatów z uzyskanymi wynikami projektu niĝ na zgodnoĂÊ zb wynikami poczÈtkowo zakïadanymi (zgodnoĂÊ nie z planem, ale z zaïoĝeniami biznesowymi). – ElastycznoĂÊ planowania. Podstawowym problemem planowania projektu jest brak moĝliwoĂci przewidzenia implikacji rozwoju planów przedsiÚwziÚÊ innowacyjnych (wszystkie projekty powinny naleĝeÊ do tej kategorii), poniewaĝ Ărodowisko, w którym powstajÈ, jest wysoce vol. 10, nr 3 (38), 2012 33 Witold Chmielarz – – – – – 34 dynamiczne. W „zwinnych” projektach wykonawcy muszÈ zastanowiÊ siÚ, jak mogÈ uniknÈÊ nieodwracalnoĂci swoich decyzji wymuszonych przyzwyczajeniem do praktyki szczegóïowego projektowania tradycyjnego, które prowadzi do daleko posuniÚtej szczegóïowoĂci. Zamiast próbowaÊ podjÈÊ wïaĂciwe decyzje na poczÈtku kaĝdego cyklu (projektowanie tradycyjne), lepiej je podjÈÊ w taki sposób, ĝeby w nastÚpnych etapach moĝna byïo je odwróciÊ. Oparcie siÚ na procesach empirycznych. W metodach tradycyjnych procesy wystÚpujÈ jako deterministyczne i liniowe, w metodach „zwinnych” jako proces empiryczny (probabilistyczny, ěle lub sïabo ustrukturalizowany) bÈdě nieliniowy. Proces deterministyczny to taki, w którym od rozpoczÚcia do zakoñczenia moĝna za kaĝdym razem spodziewaÊ siÚ takich samych wyników. Projektów, poprzez cechÚ wyjÈtkowoĂci, jednorazowoĂci itp., nie moĝna zdefiniowaÊ jako procesów deterministycznych, poniewaĝ wbczasie ich realizacji moĝe siÚ rozwijaÊ i produkt, i zespóï projektowy. Jest bardzo maïo prawdopodobne, aby jakikolwiek zestaw predefiniowanych kroków doprowadziï do poĝÈdanego, przewidywalnego wyniku, poniewaĝ zmieniajÈ siÚ wymagania technologiczne oraz ludzie wewnÈtrz zespoïu projektowego. Wykorzystanie podejĂcia zdecentralizowanego. Zdecentralizowany styl zarzÈdzania moĝe znaczÈco wpïynÈÊ na projekt, poniewaĝ moĝe on zaoszczÚdziÊ wiÚcej czasu niĝ podeĂcie autokratyczne. W metodykach lekkich deleguje siÚ czÚĂÊ zadañ zwiÈzanych z podejmowaniem decyzji do wszystkich czïonków zespoïu. Prostota. W projektowaniu prowadzonym metodykami lekkimi zawsze wybierana jest najprostsza droga prowadzÈca do celu. Zakïada siÚ ïatwe zmiany modelowe, które dostosowywane sÈ do bieĝÈcych potrzeb i mogÈ nastÚpowaÊ w róĝnych terminach. Nie wytwarza siÚ wiÚkszej funkcjonalnoĂci niĝ ta, która jest w danym momencie konieczna, ani dokumentacji próbujÈcej przewidzieÊ przyszïoĂÊ projektu. To zmniejsza koncentracjÚ na znalezienie informacji potrzebnych do tych predykcji (Gibson i Hughes 1994). Oparcie siÚ na wspóïpracy z odbiorcÈ (uĝytkownikiem) i wspóïpracy wewnÚtrznej. Klient projektu powinien ĂciĂle wspóïpracowaÊ z zespoïem projektowym, zapewniajÈc mu wszelkie potrzebne informacje, oraz zgïaszaÊ bieĝÈce uwagi i komentarze do projektu. Ze wzglÚdu na decentralizacjÚ zespóï wykonawczy w metodykach „zwinnych” powinien siÚ wb sposób ciÈgïy komunikowaÊ ze sobÈ. Funkcjonowanie poprzez maïe, samoorganizujÈce siÚ zespoïy. W zespoïach takich obowiÈzki i zadania przekazywane sÈ do zespoïu jako caïoĂci, a zespóï, rozdzielajÈc je, zapewnia najlepszy sposób ich realizacji. W maïych zespoïach najlepiej sprawdza siÚ idea ciÈgïej komunikacji. Struktura procesu i konkretne praktyki tworzÈ minimalne, elastyczne ramy strukturalne dla zespoïów samoorganizujÈcych. Odpowiednie Problemy ZarzÈdzania Kryteria wyboru metod zarzÈdzania projektami informatycznymi ich wykorzystanie znacznie zmniejsza ryzyko zwiÈzane z czynnikiem ludzkim. Jako przykïad metodyki projektowania lekkiego przedstawiono metodykÚ Scrum. Jest to iteracyjna metodyka oparta na zarzÈdzaniu zmianÈ, koncentrujÈca siÚ na ciÈgïych, twardych negocjacjach pomiÚdzy graczami: uĝytkownikiem maksymalnie moĝliwego elastycznego systemu informatycznego abzespoïem projektowym. Nazwa nawiÈzuje do sytuacji wystÚpujÈcej podczas gry w rugby. Termin scrum (mïyn) oznacza w niej rzut wolny, w którym spleceni ze sobÈ gracze przeciwnych druĝyn przepychajÈ siÚ (negocjujÈ) nad piïkÈ (celem) (Jaszkiewicz 1997). Scrum jest jednoczeĂnie metodykÈ prototypowo-przyrostowÈ – wartoĂÊ dodana projektu powstaje w wyniku zastosowania w kolejnych iteracjach faz cyklu ĝycia systemu okreĂlonych narzÚdzi (przeciwdziaïajÈcych potencjalnemu ryzyku realizacyjnemu), wynikajÈcych z wypracowanych dobrych praktyk dla maïych i Ărednich, ale za to zïoĝonych projektów (Rising i Janoff 2000: 26–32). Podstawowe uĝywane w metodzie Scrum praktyki projektowania moĝna sprowadziÊ do nastÚpujÈcych: – tworzenie rejestru zamówieñ (product backlog) – czyli listy wszystkich wymagañ uĝytkownika: funkcji i ustalonych z realizatorem zmian wraz z priorytetami, czekajÈcych na realizacjÚ (odpowiedzialny uĝytkownik koñcowy – wïaĂciciel produktu, product owner); – cykl pracy – przebieg (sprint) – etap pracy zespoïu projektowego (od jednego do szeĂciu tygodni, z zaleceniem regularnoĂci i jednolitoĂci dïugoĂci trwania kaĝdej iteracji, np. miesiÈc); w kaĝdym cyklu jest dostarczana uĝytkownikowi do przetestowania i oceny nastÚpna dziaïajÈca wersja prototypu produktu; – planowanie cyklu pracy – przebiegu (sprint planning meeting) – skïada siÚ z dwóch czÚĂci: analizy i projektu realizacji; w pierwszej wraz ze wszystkimi uĝytkownikami zespóï projektowy ustala kompletny (w danym momencie) zbiór celów i funkcji systemu, w drugiej zaĂ kierownik projektu (scrum master) z zespoïem uzgadnia najlepszy sposób realizacji produktu podczas danego przebiegu; – tworzenie rejestru zamówieñ dotyczÈcego konkretnego przebiegu (sprint backlog) – listy nowych lub zmienionych funkcjonalnoĂci przypisanej do kolejnego przebiegu; w momencie jej realizacji powstaje nowa wersja prototypu; – weryfikacja postÚpu prac (daily scrum meeting) – odbywa siÚ w trakcie obowiÈzkowych codziennych spotkañ zespoïu projektowego; polega na identyfikacji niezbÚdnych zmian i okreĂlenia warunków ich realizacji przez zespóï (na zasadach samorealizacji). Cykl ĝycia w metodzie Scrum (rysunek 2) przebiega wedïug nastÚpujÈcego schematu: – rozpoznanie ogólnych wymagañ i wstÚpna analiza informacyjna caïoĂci systemu; vol. 10, nr 3 (38), 2012 35 Witold Chmielarz – – – – rozpoznanie i analiza dla kolejnego, bieĝÈcego przebiegu; planowanie przebiegu (analiza i projekt techniczny); bieĝÈca weryfikacja zaïoĝeñ w trakcie codziennych spotkañ; realizacja systemu i generacja oprogramowania kolejnego prototypu – konstruowanie i zastosowanie; – testowanie systemu po kolejnym przebiegu; – eksploatacja i potencjalne przyszïe modyfikacje systemu. Rozpoznanie ogólnych wymagań użytkownika (Product Backlog) Rozpoznanie wymagań użytkownika dla kolejnego przebiegu (Sprint Backlog) Analiza informacyjna danego przebiegu Bieżąca weryfikacja kolejnego prototypu (Daily Scrum Meeting) Projekt techniczny i jego ewentualna modyfikacja – jeśli potrzebna po bieżącej weryfikacji Planowanie przebiegu (Sprint Planning Meeting) Realizacja systemu i generacja oprogramowania kolejnego prototypu – konstruowanie, zastosowanie (Sprint Product) Testowanie systemu po kolejnym przebiegu przez użytkownika, weryfikacja – jeśli potrzebna Eksploatacja i potencjalne przyszłe modyfikacje systemu Rys. 2. Cykl ĝycia systemu informatycznego w metodyce Scrum. ½ródïo: opracowanie wïasne na podstawie K. Schwaber i M. Beedle 2001. Agile Software Development with Scrum, Prentice Hall; K. Schwaber 2005. Sprawne zarzÈdzanie projektami metodÈ Scrum, Warszawa: Promise. Przed kaĝdym przebiegiem odbywa siÚ spotkanie zespoïu realizacyjnego z uĝytkownikami, identyfikujÈce priorytetowe zadania (okreĂlenie zakresu, zawartoĂci i intencji uĝytkownika) oraz konwertujÈce je w funkcjonalnoĂci przyszïego systemu. Na tej podstawie tworzony jest plan wykonania oprogramowania w bieĝÈcej iteracji (priorytety, podziaï obowiÈzków, szczegóïowe dziaïania). Natomiast na poczÈtku kaĝdego dnia przebiegu (w niektórych interpretacjach tej metodyki – na zakoñczenie dnia) w trakcie spotkania zamkniÚtego zespoïu projektowego odbywa siÚ bieĝÈca weryfikacja realizacji 36 Problemy ZarzÈdzania Kryteria wyboru metod zarzÈdzania projektami informatycznymi zadañ (stan wykonania, problemy ogólne i szczegóïowe realizacji oraz jednostkowe sposoby ich rozwiÈzania). Ma na celu koordynacje i synchronizacjÚ dziennej pracy czïonków zespoïu. Po kaĝdej iteracji odbywa siÚ natomiast spotkanie z uĝytkownikiem w celu prezentacji produktu kolejnej iteracji ib okreĂlenia, czy realizuje on kierunek zmian przez niego oczekiwany. Ma ono pomóc klientowi w okreĂleniu, czy i co w nastÚpnej kolejnoĂci powinno byÊ wykonywane. Na podstawie wniosków z tego spotkania produkt zostaje przekazany do testowania i uĝytkowania lub, w kolejnej iteracji, do dalszych modyfikacji. 4. Kryteria wyboru pomiÚdzy metodykami tradycyjnymi i nowoczesnymi Przeprowadzona powyĝej analiza wykazaïa, ĝe istnieje wiele metodyk zarzÈdzania projektami i nie ma jednej wïaĂciwej dla wszystkich przypadków metodyki uniwersalnej. Metodyki sÈ tylko pewnym zbiorem wzorców, zasad oraz formuï, które pomagajÈ w unikniÚciu bïÚdów, lecz zupeïnie ich nie usuwajÈ. Pomimo to konsekwentnie wdroĝona metodyka daje poczucie kontroli nad przedsiÚwziÚciem, utrzymywania peïnego zaangaĝowania wszystkich zainteresowanych stron oraz uzasadnia poczucie bezpieczeñstwa realizacji strategii biznesu sponsora. W zwiÈzku z powyĝszym kaĝdy projekt informatyczny wymaga zdefiniowania metodyki, wedïug której bÚdzie prowadzony. W najbardziej ogólnym sposób – opierajÈc siÚ na wczeĂniej zdefiniowanych cechach charakterystycznych metodyk tradycyjnych i nowoczesnych – moĝemy stwierdziÊ, ĝe wybór ten okreĂla szereg czynników zwiÈzanych z konkretnym projektem (jego wielkoĂciÈ, branĝÈ, w której jest realizowany, czynnikiem ludzkim wb projekcie i dodatkowymi wymogami realizacyjnymi itd.). Niemniej jednak wstÚpnÈ listÚ kryteriów pomocniczych wyboru moĝna oszacowaÊ na podstawie takich zmiennych, jak: – Rodzaj i harmonogram finansowania prac zawarty w umowie z klientem. Jeĝeli zakïada siÚ wykïadniczy, to powinny to byÊ metodyki zwinne. Wbtych metodykach przyjmuje siÚ, ĝe czynnikami waĝniejszymi niĝ negocjowanie kontraktów sÈ zaufanie i wspóïpraca partnerów biznesowych (przynajmniej deklaratywnie). W trakcie podpisywania umowy i wstÚpnego ustalania harmonogramu albo przyjmuje siÚ realizacjÚ budĝetu od poczÈtku korzystnÈ dla klienta (powoli rosnÈcÈ na poczÈtku projektu, wykïadniczo wraz z przekazywaniem uzgodnionych, przyjmowanych przez uĝytkownika produktów), albo na kontraktach o niewielkim stopniu ryzyka dla realizatora projektu (np. umowy z refundowanym kosztem wedïug cen staïych). Jeĝeli natomiast zakïada siÚ logarytmicznÈ funkcjÚ realizacji budĝetu (wysokÈ w stadiach poczÈtkowych, stabilizujÈcÈ siÚ wbpóěniejszych fazach projektu), to – zwïaszcza dla firm o ugruntowanej pozycji na rynku – opïaca siÚ przyjÈÊ jednÈ z metodyk klasycznych. vol. 10, nr 3 (38), 2012 37 Witold Chmielarz – Typ budĝetu. Nierównomiernie rozïoĝony w czasie budĝet projektu, wymuszajÈcy róĝnÈ intensywnoĂÊ prac oraz wysoki stopieñ niepewnoĂci, wskazuje na efektywniejsze uĝycie metodyki zwinnej. ZaĂ budĝet finansujÈcy projekt w sposób równomierny i staïy w czasie sugeruje wykorzystanie metodyki klasycznej. – Charakter ustaleñ harmonogramu. Narzucone w harmonogramie sztywne zaïoĝenia czasowe w stosunku do zaplanowanych zadañ przemawiajÈ na korzyĂÊ zastosowania metodyk klasycznych. Przybliĝone lub relatywne terminy realizacji sugerujÈ uĝycie metod zwinnych. – IloĂÊ i poziom wymaganej dokumentacji oraz poziom jakoĂci oprogramowania. Speïnienie zïoĝonych wymagañ zwiÈzanych z formalnymi standardami dokumentacji, licencjami czy certyfikacji wskazuje na koniecznoĂÊ zastosowania klasycznej metodyki zarzÈdzania projektem. Natomiast projekt, w którym nacisk kïadziony jest na jakoĂÊ oprogramowania ib moĝliwoĂci jego rozwoju, jest zgodny z filozofiÈ metodyk zwinnych. – PodejĂcie do ryzyka projektowego – niskie ryzyko projektowe obsïugujÈ lepiej metodyki zwinne. Wysokie ryzyko w projekcie wymusza stosowanie metodyk klasycznych, w których zakïada siÚ tworzenie planów minimalizacji ryzyka lub sytuacji awaryjnych. – Komunikacja z klientem. Metodyki zwinne zakïadajÈ ciÈgïÈ oraz bezpoĂredniÈ komunikacjÚ z klientem. Zmniejszane sÈ wiÚc wszelkie czynniki zwiÈzane z niezrozumieniem realizowanych zadañ. W metodykach klasycznych preferuje siÚ rzadszy kontakt z klientem, co prowadzi bardzo czÚsto do nieporozumieñ w momencie prezentacji i przekazania zrealizowanego systemu. – Struktura organizacyjna konieczna do realizacji projektu. PrzedsiÚbiorstwa o strukturze hierarchicznej lub pokrewnych, zawierajÈce w swoich strukturach ĂciĂle wyspecjalizowane jednostki, bÚdÈ preferowaÊ metodyki klasyczne. PrzedsiÚbiorstwa o strukturze np. macierzowej, projektowej lub innej, w której mogÈ sobie pozwoliÊ na delegowanie zadañ projektowych do mniejszych zespoïów, w których nie ma ĂciĂle zdefiniowanej hierarchii organizacyjnej, powinny zdecydowaÊ siÚ na wybór metodyki klasycznej. – Sektor/branĝa realizacji projektu zwiÈzana czÚsto ze strukturami organizacyjnymi teĝ znaczÈco wpïywa na realizacjÚ projektu. Branĝe, które na wejĂciu majÈ niewielkÈ liczbÚ surowców i materiaïów, a na wyjĂciu gotowych produktów, lepiej nadajÈ siÚ do uĝycia w trakcie projektowania systemu metod klasycznych. – WielkoĂÊ projektu. CzÚĂÊ Ărodowisk programistycznych zwiÈzanych z wdroĝeniami wielkich systemów uwaĝa, ĝe metody klasyczne lepiej nadajÈ siÚ do realizacji tego typu projektów. W metodykach zwinnych (a zwïaszcza omawianej Scrum) trudno przy wielkich projektach, nawet powtarzalnych, skoordynowaÊ dziaïania wielu maïych grup realizujÈcych projekt. – Rodzaj systemu, dla którego projekt jest realizowany. Systemy eksperckie lub oparte na bazie wiedzy wymagajÈ bardzo czÚsto duĝej wiedzy obreali38 Problemy ZarzÈdzania Kryteria wyboru metod zarzÈdzania projektami informatycznymi zowanym zagadnieniu. JeĂli sÈ to systemy z zaïoĝenia konstruowane jako samouczÈce, zaleca siÚ stosowanie metodyk nowoczesnych, w przeciwnym przypadku – dla systemów opartych na ustalonych wzorcach postÚpowania – metodyk klasycznych. – Czynniki psychologiczne, np. doĂwiadczenie zespoïu realizacyjnego wbstosowaniu metodyk zwinnych lub klasycznych, zaufanie organizacji, w której projekt jest realizowany do zespoïu projektowego, wysoki stopieñ wykorzystania w zespoïach mieszanych specjalistów ze strony przyszïego uĝytkownika itp. Powyĝsza lista czynników nie jest ani kompletna, ani wystarczajÈca. Bardzo trudno jest bowiem ex ante oceniÊ, która ze znanych metodyk wbprzedstawionym ukïadzie jest najlepsza dla realizowanego projektu. Tak wiÚc coraz wiÚcej organizacji utrzymujÈcych siÚ z realizacji projektów jest zainteresowanych zarzÈdzaniem przez projekt, polegajÈcym w praktyce (upraszczajÈc sytuacjÚ) gïównie na równolegïym prowadzeniu jak najwiÚkszej liczby projektów. Umoĝliwia to nie tylko porównanie ich cech charakterystycznych (harmonogramów, kosztów, zasobów) realizowanych dla róĝnej wielkoĂci firm, w wielu branĝach, w wielu lokalizacjach, ale równieĝ skutecznoĂci metody prowadzenia projektów, aĝ do zaproponowania wïasnej. Pozwala to równieĝ przecieĝ na wielowymiarowÈ ocenÚ (w tym porównawczÈ, efektywnoĂci itd.) prowadzonych projektów i dostarcza kierownikom projektów wzorców dobrych praktyk zarzÈdzania oraz ocenÚ efektywnoĂci poszczególnych jednostek organizacyjnych prowadzÈcych projekty. Analizy wykonania projektów dostarczajÈ teĝ przesïanek do wspóïdzielenia zasobów projektów (w tym technologii, know-how itp.), rozliczenia czasu ibkompetencji wykonawców oraz wyceny generowanych w projekcie produktów lub usïug. ZarzÈdzanie przez projekty jest stylem zarzÈdzania doskonalÈcym przedsiÚbiorczoĂÊ i bÚdÈcym swoistym „zïotym Ărodkiem” pomiÚdzy rzeczywistymi potrzebami firmy zleceniodawcy (okreĂlonej przez jej specyfikÚ) a wiedzÈ (teoretycznÈ i praktycznÈ) i metodami zarzÈdzania projektami (Stabryïa 2006). Ta pragmatyka podejĂcia umoĝliwia tworzenie wzorców postÚpowania podczas realizacji poszczególnych rodzajów projektów, co uïatwia tworzenie strategii nie tylko organizacji utrzymujÈcych siÚ z tworzenia i wdraĝania projektów (ibcoraz czÚĂciej – nie tylko informatycznych) oraz niewÈtpliwie w ostatecznym rozrachunku wybór metodyk zarzÈdzania projektem. Informacje o autorze Prof. dr hab. Witold Chmielarz – Katedra Systemów Informacyjnych ZarzÈdzania, Wydziaï ZarzÈdzania Uniwersytetu Warszawskiego. E-mail: [email protected]. Przypisy 1 WiÚcej na ten temat np. w: Chmielarz 2010: 359–402. 2 Patrz teĝ: Chmielarz i Klincewicz 2010: 238–252. vol. 10, nr 3 (38), 2012 39 Witold Chmielarz Bibliografia Awad, M.A. 2005. A Comparison between Agile and Traditional Software Development Methodologies, The University of Western Australia, http://www.scribd.com/doc/55475190/A-ion-Between-Agile-and-Traditional-SW-Development-Methodologies, odczyt: marzec 2012. Beck, K. i in. 2010. Manifesto for Agile Software Development, Agile Alliance, 2001, Retrieved 14 June 2010, http://www.pmbriefcase.com/methodologies/50-softwaredevelopment/55-agile-software, odczyt: kwiecieñ 2012. Chmielarz, W. 2010. Projektowanie systemów informatycznych, w: J. Zawiïa-Nieděwiecki, K. Rostek i A. GÈsiorkiewicz (red.) Informatyka gospodarcza, t. 1, s. 359–402. Warszawa: C.H. Beck. Chmielarz, W. i K. Klincewicz 2010. ZarzÈdzanie w kontekĂcie zmian, w: J. Bogdanienko (red.) Organizacja i zarzÈdzanie w zarysie, s. 238–252. Warszawa: Wydawnictwo Naukowe WZ UW, Dom Wydawniczy Elipsa. Gibson, M. i G. Hughes 1994. Systems Analysis and Design. A Comprehensive Methodology with CASE, Boyd & Fraser. Highsmith, J. i A. Cockburn 2004. Agile Software Development: The Business of Innovation. IEEE Computer, nr 6 (36), http://www.jimhighsmith.com/articles/IEEEArticle1Final.pdf, odczyt: kwiecieñ 2012, DOI: 10.1109/2.947100. Jaszkiewicz, A. 1997. Inĝynieria oprogramowania, Gliwice: Helion. Kendall, K. i J. Kendall 1999. Systems Analysis and Design, Upper Saddle River: Prentice Hall. Koszlajda, A. 2010. ZarzÈdzanie projektami IT. Przewodnik po metodykach, Gliwice: Helion. Mannaro, K. 2008. Adopting Agile Methodologies in Distributed Software Development, Wydziaï Inĝynierii Elektrycznej i Elektroniki Uniwersytetu Cagliari, http://www.diee. unica.it/DRIEI/tesi/19_mannaro.pdf. Mingus, N. 2009. Zarzadzanie projektami, Gliwice: Helion. Project Management Institute 2004. A Guide to the Project Management Body of Knowledge (PMBOK Guide), Third Edition. Rising, L. i N.S. Janoff 2000. The Scrum Software Development Process for Small Teams. IEEE Software, nr 17, s. 26–32, DOI: 10.1109/52.854065. Schwaber, K. 2005. Sprawne zarzÈdzanie projektami metodÈ Scrum, Warszawa: Promise. Schwaber, K. i M. Beedle 2001. Agile Software Development with Scrum, New Jersey: Prentice Hall. Stabryïa, A. 2006. ZarzÈdzanie projektami ekonomicznymi i organizacyjnymi, Warszawa: Wydawnictwo Naukowe PWN. Sully, P. 1993. Modelling the World with Objects, New Jersey: Prentice Hall. 40 Problemy ZarzÈdzania