Usporedba PMBOK-a i agilnih metodologija

Svrha ovog članka je usporediti ukupni skup procesa upravljanja projektima kako je definirano u sklopu Management Body of Knowledge (PMBOK) i u metodologiji fleksibilnog razvoja Agile. PMBOK je osmišljen i izgrađen oko pet grupa procesa upravljanja (iniciranje, planiranje, izvršenje, kontrola i dovršetak) i devet područja stručnosti (upravljanje, integracija, upravljanje znanjem, upravljanje vremenom, upravljanje kvalitetom, upravljanje troškovima, osobljem, rizicima, nabavom). Metodologije fleksibilnog razvoja i upravljanja projektima temelje se na sljedećim principima: prihvaćanje promjena, fokusiranje na vrijednosti klijenata, pružanje klijentu funkciju nakon svake iteracije, obuke i samoorganizacije tima.

Svrha ove usporedbe je identificirati probleme, razlike, točke razilaženja u tim metodologijama. Kao rezultat, fleksibilne metodologije ne mogu se u potpunosti uzeti u obzir s tradicionalnog stajališta upravljanja projektima, budući da brojni procesi nedostaju ili nisu izravno opisani.
Ključne riječi: upravljanje projektima, projektni rizici, PMBOK razvojne metodologije, Agile metodologije, Scrum.

Uvod

Tradicionalne metodologije razvoja softvera stvorene su zbog potrebe upravljanja velikim projektima, ali i radi teškoća s procjenama i upravljanjem. Takve poteškoće u razvoju softvera postoje već mnogo godina i nisu sve temeljito istražene. Osim toga, većina stručnjaka za informacijsku tehnologiju pod velikim je pritiskom tržišta IT proizvoda koji se neprestano mijenja. Kao rezultat toga, veliki broj IT projekata završava neuspješno: u oko 95% projekata događa se prekoračenje različitih sredstava, u prosjeku od 60-160%, a rokovi se premašuju u prosjeku od 30-200%; više od 30% projekata prekida se prije završetka. Korištenje metodologija upravljanja projektom omogućuje uravnoteženije upravljanje životnim ciklusom IT projekta, što značajno povećava izglede za postizanje očekivanih rezultata.

Fleksibilne metodologije pokušavaju prevladati te prepreke promjenom pristupa koji se koristi za razvoj softvera i upravljanje projektima. Osim toga, fleksibilni razvoj omogućuje korisniku da promijeni zahtjeve i da upogoni dijelove softvera koje su radno funkcionalne. Manifest za softverski razvoj Agile software objavljen je u veljači 2001. i sastojao se od 17 softverskih procesa i metodologija upravljanja. Od tada su počeli koristiti mnoge metode razvoja softvera. Počeli su se razvijati ovakvi pristupi: Extreme Programming (XP), Scrum, Feature-Driven Development (FDD), Adaptive Software Development (ASD) i drugi. Takve metode uglavnom su stvorene unutar korporacija od strane stručnjaka za softverske procese tijekom pokušaja poboljšanja postojećih procesa tvrtke. Na primjer, XP je stvorio Kent Beck dok je radio na Chrysler Comprehensive projekta za izračun plaće i sustav nagrađivanja zaposlenika. Rezultati njegova rada objavljeni su u njegovoj knjizi „Extreme Programming Explained“.

S druge strane, tradicionalnije tehnike upravljanja projektima ovise o životnom ciklusu razvoja softvera: linearnom razvoju ili vodopadu. Uz predvidljivost, naslijedili su deterministički pristup temeljen na raspodjeli zadataka. Baza znanja o upravljanju projektima (PMBOK) koju je razvio Institut za upravljanje najbolji je predstavnik ovog pristupa. PMBOK se formalno sastoji od 44 projektnih procesa koji opisuju aktivnosti tijekom cijelog životnog ciklusa projekta. Tih 44 postupka organizirani se u dvije osi: pet grupa procesa i devet područja stručnosti, koje ćemo ukratko opisati u nastavku. Međutim, iako fleksibilne metodologije izgledaju atraktivno i njihova upotreba daje obećavajuće rezultate, postoje i kritike na njihovu aplikaciju. U sljedećem paragrafu prikazane su neke fleksibilne metode PMBOK-a, da ih zatim možemo međusobno usporediti.

Institut za upravljanje projektima

Kao što je ranije spominjano, u PMBOK-u stručnosti o upravljanju projektima definirana su iz gledišta tehnoloških grupa i područja stručnosti. Ova se studija usredotočuje na područja stručnosti, jer ta područja pružaju točnije razumijevanje onoga što je upravljanje projektima, a istodobno pružaju cjelovitu sliku. Ta područja uključuju:

1) Upravljanje projektnim integracijama opisuje procese i akcije koje integriraju različite aspekte upravljanja projektima.

2) Upravljanje projektima obuhvaća procese koji su odgovorni za upravljanje projektnim područjem.

3) Upravljanje vremenom projekta opisuje procese povezane s pravodobnim završetkom projekta.

4) Upravljanje troškovima projekta, uključuje procese koji se tiču troškova.

5) Upravljanje kvalitetom projekta opisuje procese povezanih s osiguravanjem da projekt ispunjava ciljeve za koje je izveden.

6) Upravljanje ljudskim potencijalima uključuje sve potrebne procese za organizaciju i upravljanje projektnim timom.

7) Upravljanje projektnim komunikacijama opisuje procese vezane uz komunikacijske mehanizme projekta, prikupljanje, distribuciju, pohranu i raspolaganje projektnim informacijama.

8) Upravljanje projektnim rizikom opisuje procese povezane s upravljanjem rizicima.

9) Upravljanje nabavom uključuje sve procese vezane uz nabavu proizvoda i usluga potrebnih za dovršenje projekta.

Agile upravljanje projektima

Cilj Agile Software Development manifesta bio je „identificirati optimalne načine za razvoj softvera tako da se učinivši to pomogne i drugima da to učine“. Načela na kojima se temelje su sljedeća:

– Individualna interakcija s procesima i alatima.

– Radni softver s potpunom dokumentacijom.

– Suradnja  s klijentima i sklapanje ugovora.

– Odgovor na izmjenu u skladu s planom.

Očigledno, manifest nije orijentiran na procesni pristup. Kao što je prikazano u uvodu, postoje mnoge metode razvoja softvera koje se mogu nazvati „fleksibilnim“. Međutim, u ovom radu samo su neki od njih odabrani kao najreprezentativniji. Među metodama razvoja bile su: Extreme Programming (XP), Scrum i Feature-Driven Development (FDD).

A. Extreme Programming

Extreme Programming ili XP je fleksibilna metoda koja se pojavila u Chrysler Corporation projektu krajem 1990-ih. Dizajnirali su ga Ward Cunningham, Kent Beck i Ron Jeffries. Metoda XP temelji se na četiri značajke:

– Komunikacija temeljena na takvim praksama kao što su testiranje jedinica, programiranje u parovima, procjena zadataka.

– Jednostavnost, treba uvijek stremiti ka najjednostavnijem rješenju.

– Povratna informacija. Informacija o konkretnom trenutnom stanju sustava.

– Sposobnost priznati i prepoznati nedostatke u sustavu i poduzeti korektivne radnje.

B. Scrum

Scrum je pristup razvoju novih proizvoda, kojeg su prvi predstavili Takeuchi i Nonaka nakon što su promatrali male timove visoke efikasnosti u različitim tvrtkama.

Scrum je fleksibilan proces razvoja softvera u kojem projekti napreduju kroz niz mjesečnih iteracija zvanih sprintovi.

Nadalje, prosječan niz od 6 do 9 sprintova može proizvesti izdavanje radnog proizvoda.

Na početku projekta svi zahtjevi zabilježeni na posebnom popisu poznatijem kao Product backlog. Zatim, na početku svakog sprinta, održava se sastanak za planiranje sprinta, tijekom kojeg vlasnik proizvoda određuje prioritetne zadatke. Tijekom svakog dana sprinta održavaju se dnevni sastanci na kojima se raspravlja o problemima projekta. Takvi dnevni sastanci značajno pomažu u razvoju i komunikaciji tima. Na kraju sprinta, tim predstavlja funkcionalni proizvod za pregled.

C. Feature Driven Development (FDD)

Feature Driven Development (FDD) – je iterativni i inkrementalni proces razvoja softvera. FDD metodologija sastoji se od pet koraka:

– Razvoj općeg modela.

– Kreiranje popisa funkcija.

– Plan za predmetno područje.

– Dizajn skupa značajki.

– Stvaranje po načelu.

U prvoj fazi razvoja općeg modela radi se spisak zahtjeva. Glavni cilj je prikupiti zahtjeve i razviti početni dijagram UML klase koji opisuje bit problemske domene. Sav posao je podijeljen i distribuiran u male timove koji se sastoje od programera i korisnika. Ti su timovi odgovorni za dijelove cijelog modela i za slanje modela na pregled i odobrenje.

Drugi korak FDD-a je stvaranje popisa funkcija. Razvojni tim određuje skup neophodnih funkcija raspoređivanjem funkcionalnih mogućnosti sustava na predmetna područja. Svako područje se sastoji od poslovnih aktivnosti.

Treća faza je priprema plana razvoja projekta. Planiranje po predmetnim područjima otvara mogućnost planiranja grupiranjem funkcija. Grupiranje se izvodi prema funkcionalnosti. Drugi čimbenici o kojima treba voditi računa su: opterećenje razvojnog tima i složenost provedenih funkcija.

Četvrti korak je „Design by Feature Set“. Cilj ovog koraka je stvaranje dizajna za svaki skup značajki. Dizajn modela uključuje UML dijagrame slijeda.

Peti korak je „Izrada po principu“, koji uključuje izbor iz skupa funkcija definiranog u koraku 4, te razvoj koda za te funkcije i ispitivanje jedinica.

Usporedba PMBOK i Agile metodologije

Kako bi se usporedile predstavljene metode upravljanja projektima, PMBOK procesi su uzeti kao osnova s obzirom na to da su organizirani za svako područje studija. Razlozi koji doprinose ovoj odluci su ovi:

– PMBOK je iscrpan popis najnaprednijih praksi u obliku procesa koji se mogu prilagoditi specifičnim potrebama.

– PMBOK je itekako poznat i službeno dokumentiran u usporedbi s fleksibilnim metodama prikazanim u ovom radu. Rezultat ove usporedbe prikazan je u tablici 1.

Таblica 1
Usporedba PMBOK i Agile metodologije

PMBOK Agile metode
XP Scrum FDD
Upravljanje integracijom projekata
Izrada nacrta chartera

 

Izrada preliminarnog izvješća o projektu.

 

Izrada plana upravljanja projektom.

 

Monitoring i upravljanje.

 

Kontrola izmjena.

 

Zatvaranje projekta.

Integriracija softvera što je prije moguće i češće.

 

Vlasništvo kolektivnog koda.

 

Mjerenje brzine izvođenja projekta.

Provjera odobrenja i financiranja upravljanja u fazi planiranja.

 

Snažan postupak upravljanja izmjenama.

 

Arhitektura sustava za podršku izmjena.

Razvoj općeg modela sustava.

Upravljanje projektom

Planiranje.

 

Raspored područja.

 

Stvaranje strukture i podjele rada (WBS).

 

Kontrola.

Povijest korisnika.

 

Planiranje izdavanja.

Izvršavanje analize za izradu modela domene.

 

Razvoj prema Product Backlog  popisu.

 

Određivanje funkcija koje će biti uključene u svaku verziju proizvoda

Upravljanje vremenom projekta

Slijed djelovanja.

 

Procjena resursa.

 

Trajanje djelovanja.

 

Razvoj rasporeda i kontrole.

Planiranje izdavanja.

 

Planiranje iteracija.

Određivanje datuma isporuke funkcija za svaku verziju.

 

Mjesečne iteracije

Određivanje slijeda razvoja.

 

Podjela klasa za programere.

Upravljanje troškovima projekta

Procjena troškova.

 

Planiranje troškova.

 

Projekt kontrole troškova.

Nije predviđeno. Procjena troškova izdavanja tijekom etape planiranja Nije predviđeno.

Upravljanje kvalitetom projekta

Planiranje kvalitete.

 

Ispunjavanje kontrole kvalitete.

Korištenje standarda projekta

 

Kvaliteta se zasniva na jednostavnosti.

Sastanak za pregled projekata.

 

Sastanak za planiranj sprintova.

 

Dnevni sastanci.

Pregled sastanaka.

 

Provjera koda i ispitivanje jedinica.

Upravljanje rizicima

Planiranje upravljanja rizicima.

 

Identifikacija rizika.

 

Kvalitativna analiza rizika.

 

Kontrola rizika

Kreiranje prototipa za ograničenje rizika Prvotni rizici za vrijeme planiranja.

 

Pregled rizika za vrijeme sastanaka.

Ne koristi se.

Zaključak

Tablica 1 pokazuje da fleksibilne metodologije ne definiraju sve aspekte potrebne za upravljanje projektima po tradicionalnom konceptu. To je djelomično bilo očekivano, budući da su tradicionalni procesi upravljanja potpuno definirani u usporedbi s fleksibilnim metodama koje se smatraju „empirijskima“. Međutim, iz toga može se zaključiti sljedeće: fleksibilne metodologije naglašavaju sljedeća područja stručnosti: – Upravljanje područjem djelovanja, jer je fokus na upravljanju zahtjevima. – Upravljanje ljudskim resursima, budući da se mnogo pažnje posvećuje timskom radu. – Upravljanje kvalitetom. – Upravljanje rizicima nije javno. – Upravljanje troškovima ne čini dio fleksibilnih metodologija. To znači da će korištenje fleksibilnih metodologija s PMBOK-om donijeti korist zajednicama za upravljanje projektima u IT području.