Agilno projektno vodenje

Pri vsakem novem pristopu se pojavijo njegovi goreči zagovorniki, pojavijo se tisti, ki trdijo, da je to pač še ena modna muha in pa seveda tisti, ki jim sploh ni mar za to. Ampak, ko gre za agilno projektno vodenje, bi morali biti pozorni vsi, ker gre za revolucijo v industriji za razvoj programske opreme.

Prav zato se danes veliko podjetji, ki razvija programsko opremo, trudi biti čim bolj agilnih. Kdo bi jim lahko zameril? Uspešne agilne ekipe z nižjimi stroški izdelajo kvalitetnejšo programsko opremo, ki bolj ustreza uporabnikovim potrebam kot tradicionalne ekipe. Pa še, kdo si ne bi želel biti čim bolj agilen? Saj se že sliši dobro.

 

Agilni manifesto

Prve agilne metodologije so se pričele pojavljati v 90-ih letih prejšnjega stoletja kot alternativa tradicionalnemu načinu vodenja projektov, ki temelji na treh napačnih in nerealnih predpostavkah: naročnik točno ve, kaj si želi; razvijalci točno vedo, kako to narediti; med izvajanjem projekta ne bo prišlo do sprememb. Februarja 2001 je sedemnajst strokovnjakov iz različnih področij, ki so se ukvarjali z agilnimi metodologijami napisalo tako imenovani agilni manifesto ter ustanovilo združenje Agile Software Development Alliance, ki so ga kasneje preimenovali v Agile Alliance.

Potrebno je poudariti, da agilni manifesto ni metoda oz. skupek procesov in procedur, ki se jih moramo držati. Agilni manifesto definira način razmišljanja, ko gre za razvoj programske opreme in agilno projektno vodenje. Predpostavka, da če uporabljaš neko agilno metodo ali proces, potem si tudi agilen, je napačna.

Agilni manifesto sestavljajo štirih vrednote in dvanajst načel. V nadaljevanju so podrobneje razložene vse štiri vrednote.

  1. Posamezniki in njihovo sodelovanje so pomembnejši od procesov in orodij. Zelo enostavno se je ujeti v dogmatično razpravo, katera orodja in procesi naj bi se uporabljali na projektu. Razvijalci so velikokrat navdušeni nad orodji in procesi, ker jim oboje večinoma pomaga pri razvoju programske opreme. Lahko pa se zgodi, da sta ti dve stvari posameznikom v resnici v napoto in ovirata medsebojno komunikacijo. Izbrati moramo takšna orodja, ki povečajo učinkovitost posameznika in olajšajo sodelovanje in komunikacijo. Najpomembnejši dejavnik na projektu so posamezniki ter sodelovanje med njimi in če le-to ni učinkovito, tudi najboljša orodja ter procesi ne bodo nič koristili.
  2.  Delujoča programska oprema je pomembnejša od obsežne dokumentacije. Na agilnih projektih je delujoča programska oprema najpomembnejše merilo napredka in statusa projekta. Manifesto ne trdi, da tehnična dokumentacija nima nobene koristne vrednosti. Pravi pa, da priprava natančne dokumentacije ne sme ovirati glavnega cilja projekta, in to je izdelava delujoče programske opreme. Če se to zgodi, je potrebno ustrezno zmanjšati količino administrativnega dela in pisanja dokumentacije. Iskanje pravega razmerja med programiranjem in dokumentiranjem je umetnost in velikokrat razlog za frustracije razvijalcev. Glavna težava dokumentov je, da so statični, napisani v nekem trenutku in zelo hitro izgubijo stik z realnim stanjem projekta. Zastareli dokumenti pa zvišujejo strošek in tveganje na projektu. Torej, dokumentacija naj se ne piše samo zaradi nje same, ker je delujoča programska oprema vrednejša in uporabnejša.
  3. Sodelovanje z naročnikom je pomembnejše od pogajanj glede pogodbe. Večkrat slišimo kakšnega razvijalca reči „Stranka bo znorela, ampak dobila bo točno to, kar piše v pogodbi.“ Pogodbe so pomembne in uporabne, zato si je za pripravo le-teh dobro vzeti dovolj časa. Težava pa je, če to ovira učinkovito sodelovanje. Odnos med naročnikom in dobaviteljem je veliko boljši, če sta v partnerskem odnosu in se oba počutita varno. Na agilnih projektih naročnik dnevno sodeluje z razvojno ekipo in mora dati znati odgovoriti na vsa vprašanja razvijalcev. Ni dobro, če morajo razvijalci ugibati, kaj si v resnici želi naročnik.
  4. Prilagajanje spremembam je pomembnejše od sledenja načrtom. Priprava projektnega načrta je pomemben proces, ki zajema popis nalog, vrstni red izvajanja le-teh ter identificiranje odvisnosti med posameznimi nalogami. Vendar sta inicialni projektni načrt in realno dogajanje na projektu velikokrat precej različna. Načrt mora biti fleksibilen in pripravljen na prilagajanje spremembam, ki so neizogibne in se nima smisla boriti proti njim.

 

Manifesto dodatno razloži zgornje vrednote z naslednjo trditvijo „Čeprav imajo zapisi na desni neko vrednost, bolj cenimo zapise na levi“.

Obstaja kar nekaj metod oz. ogrodij, ki temeljijo na agilni metodologiji. Bolj razširjene med njimi so recimo Scrum, XP (eXtreme Programming), Kanban, Lean, FDD (Feature-Driven Development) in DSDM (Dynamic Systems Development Methods).

 

Scrum

Najbolj popularna agilna metoda se imenuje Scrum in je v resnici zelo enostaven pristop k vodenju kompleksnih projektov. Gre za iterativen in inkrementalen način dela, ki zagotavlja jasnost in preglednost vsem sodelujočim na projektu.

Na projektu, ki uporablja metodo Scrum, so vse stvari časovno omejene in zato tudi sam razvoj programske opreme poteka v časovno omejenih iteracijah oz. ciklih (Sprint). Vse naloge, ki jih je potrebno opraviti v celotnem projektu, se vodijo na prioritiziranem seznamu zahtev (Product Backlog). Na začetku vsakega cikla ekipa sama določi količino dela, ki ga je sposobna opraviti v tej iteraciji (Sprint Planning) in se obveže, da bo naredila vse, kar je v njeni moči, da doseže zastavljeni cilj. Izbrane naloge se prenesejo na seznam zahtev tega cikla (Sprint Backlog). Vsak dan se izvede kratek sestanek (Daily Scrum), na katerem vsak član ekipe pove, kaj je delal včeraj, kaj bo delal jutri in ali ima pri delu kakšne težave. Na koncu vsakega cikla ekipa skupaj z naročnikom pregleda opravljeno delo (Sprint Review).

Naročnik dobi zaradi iterativnega načina dela ob koncu vsakega cikla delujočo verzijo produkta (Potentionally Shippable Product), kar močno izboljša preglednost nad izvajanjem projekta in stanjem produkta. To naročniku omogoči, da lahko redno in sproti podaja svoje mnenje o nastajajočem produktu ter tudi spreminja prioritete glede funkcionalnosti, ki se bo še razvijala in dodala k produktu. Ta poudarek na rednem ocenjevanju opravljenega dela veliko doprinese k priljubljenosti Scrum-a tako pri menedžerjih kot pri razvijalcih.

Uporaba Scrum-a po vsem svetu skokovito raste, uporabljajo ga tudi podjetja, kot so Google, IBM, Siemens, Nokia, Philips, Microsoft, Yahoo!, Motorola, Xerox,…

 

VORANC KUTNIK

AGILSPOT D.O.O

DIREKTOR

E: voranc.kutnik@agilspot.si