Blaz Kos

Scrum in agilne metode managementa

30
May 2012
Agile Lean Life Blog

Družba znanja je s seboj kot slabost poleg krute globalne konkurence prinesla tudi neverjetno turbulentno in nestabilno poslovno okolje. Zaradi nenehnih nepredvidljivih sprememb, potrebe po hitrem odločanju in neprestanem prilagajanju, se je seveda pojavila tudi potreba po novih pristopih do managementa projektov in organizacij.

Nestabilno poslovno okolje oziroma trg je na nek način postal kopija naravnega sistema, kjer preživijo v skladu z darwinizmom tisti, ki so najbolj prilagodljivi – agilni. Tako je ključno za uspeh vsake organizacije v sodobnem svetu, poleg neprestanega inoviranja, da je agilno organizirana, kar pomeni, da je fit (hitro in lahko prilagajanje spremembam) ter v dobri kondiciji (pripravljena na neprestano serijo sprememb).

Tako so se pred nekaj leti začele razvijati agilne metode vodenja projektov, ki danes rastejo kot gobe po dežju, še posebno v tistih panogah, kjer  so spremembe najhitrejše, kot je na primer IT. Agilne metode managementa se hitro selijo tudi v druge panoge in zagotovo velja, da se organizacijam, ki ne bodo kmalu poslovale po agilnih metodah, ne piše nič kaj dobrega.

Agilne metode vodenja so namreč odgovor na marsikateri problem, s katerim se srečuje klasični management, kot so neuporabnost dolgoročnega planiranja, padanje produktivnosti z večanjem števila zaposlenih, nujna uvedba interdisciplinarnega delovanja, zmanjšanje birokracije, transparentno vodenje projekta, učinkovito upravljanje resurov in podobno.

Zavod Ypsilon je v okviru svoje AkademY-e organiziral delavnico na temo metode Scrum, ki je ena izmed najbolj popularnih metod agilnega vodenja organizacij. Predaval je Voranc Kutnik, strasten zagovornik agilnih pristopov, certificiran ScrumMaster in edini Management 3.0 trener v Sloveniji.

Glede na to, da gre za izjemno pomembno veščino in znanje, ki ga mora obvladati vsak manager in podjetnik, sem Voranca prosil, če je za blog pripravljen odgovoriti na nekaj vprašanj:

1. Kako si se začel ukvarjati z agilnimi metodami vodenja projektov?

Prvič sem se srečal z agilnostjo leta 2008, ko sem na internetu slučajno naletel na članek o agilni metodi  Scrum. Metoda me je popolnoma prevzela in spomnim se, da se kar nisem mogel načuditi, da obstaja tako enostavna metoda za razvoj programske opreme, ki zagotavlja popolno transparentnost vsem sodelujočim na projektu, tudi naročniku. Od takrat dalje večino časa posvečam agilnim metodologijam, v podjetjih si prizadevam promovirati agilno miselnost ter uporabljati metodo  Scrum.

Leta 2010 sem v Londonu pridobil ScrumMaster certifikat, lani pa sem se odločil, da so agilne metodologije tisto s čimer se želim ukvarjati v prihodnje in zato odprl svoje podjetje.

2. Kaj v resnici pomeni biti agilen oziroma organizirati organizacijo na agilen način?

Agilnost je tesno povezana z miselnostjo in to pomeni, da če uporabljaš neko agilno metodo še nisi agilen. Ljudje z agilno miselnostjo verjamejo, da lahko svoje talente in sposobnosti z učenjem, vztrajnostjo in strastjo vedno razvijajo in nadgrajujejo. Ljudje z agilno miselnostjo so zavezani k nenehnemu učenju in obdani z ljudmi, ki jim pomagajo napredovati in postati vedno boljši. Zaposleni v agilnih organizacijah so osredotočeni na pridobivanje novih znanj in veščin, njihovi managerji pa se trudijo izboljšati delovno okolje, so bolj odprti do povratnih informacij svojih podrejenih in so jim tudi boljši mentorji.

3. Lahko poveš nekaj besed o manifestu in osnovnih pravilih agilnosti?

Februarja 2001 se je v ameriškem smučarskem letovišču Snowbird zbralo sedemnajst neodvisnih strokovnajkov, kjer so razpravljali o t.i. lahkih metodah razvoja. Napisali so manifest agilnega razvoja programske opreme, s katerim so definirali pristop, ki je danes znan kot agilni razvoj programske opreme. Ustanovili so tudi združenje Agile Software Development Alliance, ki so ga kasneje preimenovali v Agile Alliance.

Manifest je sestavljen iz štirih vrednot in dvanajstih principov, ki definirajo način razmišljanja, ko gre za razvoj programske opreme. Vrednote so sledeče:

–          Posamezniki in interakcije pred procesi in orodji

–          Delujoča programska oprema pred vseobsežno dokumentacijo

–          Sodelovanje s stranko pred pogodbenimi pogajanji

–          Odziv na spremembe pred togim sledenjem načrtom

Manifest dodatno razloži zgornje vrednote z naslednjo trditvijo »Četudi cenimo dejavnike na desni, vseeno bolj cenimo tiste na levi«.

Letos smo končno dočakali tudi uradni prevod manifesta v slovenščino.

4. Kakovost ljudi oziroma članov tima je na prvem mestu. Kakšne so tvoje izkušnje, je to res najbolj pomembno? Mogoče še razlika med managementom in drugimi sodelujočimi v projektu pri dovzetnosti do agilnih metod?

Kakovost članov agilnih ekip je zelo pomembna, saj se pričakuje, da je agilna ekipa samoorganizirana in sposobna sama razviti produkt brez zunanje pomoči. Eden izmed principov agilnega manifesta namreč pravi, da nenehna težnja k tehnični odličnosti izboljša agilnost. To pomeni, da morajo imeti člani zelo dobro tehnično znanje, biti morajo zelo motivirani ter se nenehno izboljševati.

Razvijalci so večinoma naklonjeni agilnim metodam, ker jim ustreza, da se cilji in zahteve ne spreminjajo iz dneva v dan. Scrum namreč ne dovoli, da bi se zahteve spreminjale znotraj posameznega cikla, kar pomeni, da se lahko razvijalci med ciklom samim res posvetijo razvoju produkta. Na drugi strani pa tradicionalni management pogosto ni naklonjen agilnim pristopom in predstavlja največjo oviro pri uvajanju le-teh v organizaciji. Njihova največja skrb je, da bodo izgubili nadzor nad ljudmi in projektom.

5. Pri agilnih metodah je pomembno tudi zadovoljiti naročnika z zgodnjo in neprestano dostavo uporabnega produkta. Zakaj je to pomembno, mogoče predvsem zato, da se ne razvija nekaj, kar ne bo uporabljal nihče?

Pri agilnih metodah naročnik sodeluje z razvojno ekipo skozi celoten cikel projekta. Na takšen način že zelo zgodaj dobimo koristne povratne informacije od uporabnikov in njihove želje po spremembah. S takšnim načinom se izognemo temu, da na koncu projekta dobimo program, ki je za uporabnike popolnoma neuporaben oz. vsebuje funkcionalnost, ki je uporabniki sploh ne potrebujejo.

Podjetje The Standish Group je na konferenci XP2002 predstavilo rezultate raziskave tradicionalnih metod razvoja s katero so ugotovili, da se 45% funkcionalnosti v programih nikoli ne uporablja, 19% se uporablja redko, 16% občasno, 13% pogosto in 7% redno.

6. Ali pri agilnih metodah lažje spremenimo smer razvoja oziroma nastajanja produkta, če gre to v napačno smer?

Seveda, na agilnih projektih je način planiranja takšen, da dopušča naročniku možnost, da kadarkoli spremeni svoje zahteve, tudi v zaključni fazi projekta. Žal pa to ne drži tradicionalne projekte, kjer spremembe v kasnejših fazah projekta niso dobrodošle.

7. Kaj je Scrum?

Scrum je najbolj razširjena agilna metoda za razvoj programske opreme. Pravzaprav ne gre za pravo metodologijo, ampak gre bolj za ogrodje, ki ga je enostavno za razumeti, vendar zelo težko obvladati.  Scrum na predpisuje natančno, na kakšen način je potrebno na projektu narediti stvari, ampak to izbiro prepušča razvojni ekipi.

Zgodovina Scrum-a sega v leto 1986, ko sta Hirotaka Takeuchi in Ikujiro Nonaka v članku z naslovom The New New Development Game opisovala ekipe, ki z novim, drugačnim in celostnim pristopom zelo učinkovito razvijajo produkte in ta pristop primerjala z igro rugby. Leta 1991 so ta pristop poimenovali Scrum, kar predstavlja en element igre rugby. Ken Schwaber in Jeff Sutherland pa sta leta 1995 na konferenci javnosti prvič predstavila Scrum kot metodo. Leta 2001 pa smo dobili prvo knjigo o Scrum-u z naslovom Agile Software Development With Scrum.

8. Salesforce.com je dosegel izjemen napredek v produktivnosti po uvedbi agilnih metod. Lahko poveš več?

Salesforce.com je zelo uspešno ameriško podjetje, ki je najbolj znano po svoji CRM aplikaciji v oblaku in ima danes več kot 2 miljona uporabnikov. Podjetje je bilo ustanovljeno leta 1999 v San Franciscu in predstavlja eno izmed bolj uspešnih zgodb dot.com obdobja. Leta 2006, ko je imelo podjetje 450 milijonov dolarjev prihodkov in 2000 zaposlenih so ugotovili, da se je njihov razvojni cikel močno podaljšal. V preteklosti so namreč letno uspeli izdati štiri nove verzije aplikacije, leta 2006 pa samo še eno, kar pomeni, da so njihovi uporabniki dobivali vedno manj novosti in popravkov ter nanje čakali vedno dlje.

Zato so se odločili za prehod na Scrum in pri uvedbi izbrali pristop »vse naenkrat«, kar pomeni, da so vse razvojne ekipe istočasno pričele uporabljati Scrum. Najeli so zunanje agilne trenerje, ki so pomagali pri uvajanju nove metode, izobraževali zaposlene ter širili znanje o agilnosti in Scrum-u po celotnem podjetju. Celoten proces prehoda je bi za zaposlene popolnoma transparenten in po treh mesecih so vse ekipe v razvojnem oddelku že uporabljale Scrum. Prvo leto po uvedbi Scrum-a so z novimi verzijami izdali 94% več funkcionalnosti, implementirali 38% več funkcionalnosti na razvijalca ter uporabnikom zagotovili 500% več dodane vrednosti v primerjavi z letom poprej. Dve leti po uvedbi Scrum-a je podjetje podvojilo prihodke na skoraj miljardo dolarjev.

9. Kaj je to ScrumBut?

ScrumBut je izraz za razne izgovore, ki jih imajo ekipe in njihovi člani, da opravičujejo svoje nedosledno izvajanje Scrum-a. Izraz je nastal iz stavkov naslednje oblike: »We use Scrum, but…«. Velikokrat so ljudje prepričani, da je njihovo podjetje/projekt/stranka tako posebno, da nikakor ne morejo uporabljati pravilnega Scrum-a. Pogost izgovor je recimo »Uporabljamo Scrum, ampak dnevni Scrum sestanek je čista potrata časa, zato ga imamo mi samo enkrat na teden«. Ekipe, ki imajo podobne izgovore, nikoli ne uspejo izkoristiti vseh prednosti, ki jih prinaša Scrum.

10. Product backlog, sprint backlog. Lahko razložiš na kratko?

Product backlog je urejen seznam vseh funkcionalnosti, ki jih še nameravamo dodati k produktu. Le-te so zapisane v obliki uporabniških zgodb in product owner je odgovoren, da je seznam urejen po ustrezni prioriteti. To zagotavlja, da ekipa vseskozi dela na tistih stvareh, ki imajo najvišjo dodano vrednost za stranko. Product backlog ni nikoli končan, saj se razvija skupaj s produktom in se prilagaja okolju, v katerem se bo produkt uporabljal.

Sprint backlog je rezultat načrtovanja sprinta, na katerem člani ekipe izberejo določeno število uporabniških zgodb iz product backloga. V bistvu gre za seznam nalog, ki jih mora ekipa opraviti v sprintu, da na koncu sprinta pripravi novo verzijo produkta, ki ima implementirane izbrane uporabniške zgodbe.

11. Zgodbe uporabnika, kaj so in zakaj so pomembne pri aginih metodah?

Uporabniška zgodba (user story) je kratek in enostaven opis željene funkcionalnosti, izražen z vidika uporabnika. Zgodbe so ponavadi v takšni obliki: Kot <tip uporabnika>, hočem <nek cilj>, da <nek razlog>. Naloga product owner-ja je, da zagotovi, da obstaja product backlog, ki je sestavljen iz teh zgodb, čeprav lahko zgodbe pišejo vsi člani ekipe. Uporabniške zgodbe lahko beležimo kjerkoli, vendar jih največkrat napišemo kar na lističe ter jih pripnemo na tablo, na kateri vodimo produkt in sprint backlog.

12. Vloge v agilnih metodah managementa so Product owner, ScrumMaster, Ekipa – lahko malo obrazložiš?

Scrum ekipa je sestavljena iz enega product owner-ja, enega ScrumMaster-ja in 5 do 9 članov razvojne ekipe.

Product owner vodi ekipo proti pravemu cilju in to počne s kreiranjem prepričljive vizije produkta ter prenosom te vizije na ekipo preko product backlog-a. Je edini odgovoren za uporabniške zgodbe na product backlog-u in mora vseskozi skrbeti, da so zgodbe pravilno prioritizirane.

ScrumMaster je odgovoren, da vsi razumejo teorijo in pravila Scrum-a, ter da se Scrum tudi ustrezno izvaja. Njegova naloga je tudi pomagati ekipi odstraniti vse ovire, ki se pojavijo na projektu. Torej je hkrati vodja ekipe in njihov služabnik. Poudariti je potrebno, da ScrumMaster nima enakih nalog, kot jih ima projektni vodja na klasičnih projektih, saj ne ukazuje članom razvojne ekipe in jih tudi ne nadzira. Prav zaradi tega bivši projektni vodje velikokrat niso najboljši kandidati za ScrumMaster-ja, saj se mnogi težko navadijo na novo vlogo brez pristojnosti.

Ekipa naj bi bila sestavljena iz različnih specialistov, ki imajo skupaj vsa potrebna znanja in veščine, da lahko sami končajo projekt in razvijejo produkt. Glavna naloga ekipe je, da ob koncu vsakega sprinta dostavi prirastek produkta, ki je končan in gre lahko v produkcijo, če se product owner tako odloči. Ekipa je samoorganizirana, kar pomeni, da je avtonomna, prilagodljiva in odgovorna za svoje delo. Takšne ekipe sprejemajo boljše odločitve, njihovi člani so bolj motivirani ter si bolj zaupajo. Ekipa ne potrebuje poveljnika, ki bi se v njenem imenu odločal, kdo mora opraviti določeno nalogo, ter kdaj in na kakšen način. Znano je, da najboljše rešitve nastanejo ravno v samoorganiziranih ekipah.

Celotno Scrum ekipo lahko primerjamo z dirkalnim avtom, kjer razvojna ekipa predstavlja avto, product owner je voznik, ScrumMaster pa glavni mehanik, ki skrbi, da avto deluje brez težav.

13. Sprint se sliši kot najboljši del celotne zgodba – začnemo šprintati, da nekaj dosežemo. Imamo pa znotraj šprintov več vrst dogodkov, kot so sprint planning, review, retrospective, daily scrum. Lahko poveš nekaj o vsakem izmed njih?

Sprint je srce Scrum-a zato se vsi dogodki zgodijo znotraj njega. Sprint je časovno omejen na 2-4 tedne in vedno traja enako dolgo. Vsak sprint lahko smatramo kot mini projekt, v katerem želimo pripraviti novo verzijo produkta z dodatno funkcijonalnostjo.

Vsak sprint se začne s sestankom imenovanim sprint planning. Product owner in ekipa pregledajo  ter po potrebi dopolnijo najbolj prioritetne uporabniške zgodbe na product backlog-u. Ekipa nato z product backlog-a sama vzame toliko najbolj prioritetnih uporabniških zgodb, kolikor jih je sposobna narediti v sprintu, in jih prestavi na sprint backlog. Product owner nima pravice ukazovati ekipi, koliko zgodb in katere od njih naj vzame v sprint. Če določena zgodba ekipi ni razumljiva, jo ima pravico pustiti na product backlog-u.

Na koncu sprinta ekipa izvede pregled sprinta imenovan sprint review. Na tem sestanku, na katerega  so vabljeni vsi, ki sodelujejo na projektu, ekipa demonstrira funkcionalnost, ki je bila implementirana in dodana produktu med sprintom. Glavni namen pregleda sprinta je dobiti povratno informacijo od vseh vpletenih ljudi ter uporabiti te podatke pri urejanju product backlog-a in planiranju naslednjega sprinta.

Zadnje dejanje sprinta se imenuje sprint retrospective in je tisti del Scrum-a, ki ga veliko ekip zanemarja. Na sestanku skuša ekipa identificirati stvari, ki so bile v sprintu dobre in stvari, ki jih je potrebno izboljšati oz. dodati v proces. Cilj sestanka je, da ekipa določi nekaj izboljšav, ki jih bo izvedla v naslednjem sprintu.

Vsak dan se celotna ekipa, vključno s ScrumMaster-om in product owner-jem zbere na dnevnem sestanku imenovanem Daily scrum meeting. Sestanek je časovno omejen na 15 minut in mora biti vedno na istem mestu ob istem času, najbolje je, da je to dopoldan. Na sestanku vsak član ekipe odgovori na 3 vprašanja: kaj je delal včeraj, kaj bo delal danes in kakšne težave ima pri svojem delu. Sestanek torej služi temu, da člani ekipe uskladijo svoje delo in preverijo napredek na projektu.

14. Napredek agilnega tima se spremlja na tabli z listki, prav tako se s točkami ovrednoti delo ter hitrost ekipe. Zakaj je to pomembno?

Obstaja veliko orodij, s katerimi je možno voditi Scrum projekte, med najbolj razširjenimi so npr. Excel, VersionOne in Jira. Ampak glede na to, da manifest agilnosti pravi, da so posamezniki in interakcije pomembnejši od procesov in orodij je v agilnih ekipah najbolj razširjena uporaba tabel in listkov.

Dobra lastnost uporabe listkov je, da je realno stanje projekta oz. sprinta vedni vidno na tabli, ki si jo lahko vsakdo ogleda.  To pa seveda izboljša preglednost in omogoča boljšo komunikacijo vsem sodelujočim na projektu.

Število točk (story points), ki jih določimo vsaki uporabniški zgodbi pove kako težavna je zgodba. Te točke niso niti ure niti dnevi, ki so potrebni za implementacijo zgodbe. Zgodbam dodelimo točke zato, da jih lahko primerjamo med seboj, ter da lahko merimo hitrost ekipe (velocity). Vsota točk vseh uporabniških zgodb, ki jih ekipa implementira v sprintu namreč določa hitrost ekipe in z vsakim končanim sprintom dobimo nov podatek o hitrosti ekipe. Po nekaj končanih sprintih imamo že zelo dober podatek o hitrosti naše ekipe, ki ga lahko uporabimo za napovedovanje poteka projekta. Najbolj popularna tehnika, ki se uporablja za ocenjevanje težavnosti uporabniških zgodb se imenuje planning poker.

15. Pravijo, da danes v tekmi na globalnem nivoju agilne metode vodenja sploh niso več konkurenca. Verjetno se slabo piše ekipam, ki še niso prevzele tovrstnega načina dela? Kako je s stanjem v Sloveniji, imamo dovolj agilnih ekip?

Uporaba agilnih metod po vsem svetu skokovito raste, v zahodni Evropi in Ameriki pa so agilne metode postale že tako razširjene, da za podjeta skoraj ne predstavljajo več konkurenčne prednosti. Več kot polovica agilnih ekip uporablja Scrum, ki ga med drugim uporabljajo tudi podjetja, kot so Google, IBM, Siemens, Nokia, Philips, Microsoft, Yahoo!, Motorola, Xerox,… V zadnjem času sta zelo popularni tudi metodi Kanban in Lean, slednja je še posebej pridobila na uporabi odkar je lani izšla knjiga The Lean Startup.

Tudi v Sloveniji je najbolj razširjen Scrum, ki je postal še posebej popularen v zadnjih dveh letih. Uporablja ga že zelo veliko podjetij, od startup-ov do največjih IT podjetij. LinkedIn skupina z imenom Skram.si, ki je največja agilna skupnost v Sloveniji je v zadnjem letu podvojila število svojih članov, ki jih je trenutno že okoli 240. Seveda pa nas čaka še kar precej dela, da bo management slovenskih podjetij razumel agilnost in jo bo resnično pripravljen sprejeti.

Velikokrat se spomnim na ScrumMaster tečaj v Londonu, kjer je predavatelj David Hicks vseskozi razlagal, kako zelo pomembna je transparentnost za uspeh Scrum-a. Rekel sem mu, da v desetih letih nisem videl ravno veliko transparentnosti pri slovenskih managerjih. V smehu je odvrnil, da naj počakam, ker bo agilna miselnost slej kot prej prišla tudi v Slovenijo. Upam, da se bo to v kratkem zgodilo.

Hvala.

Voranc Kutnik ima svoje podjetje Agilspot, ki se ukvarja z delavnicami, predavanji in svetovanjem podjetjem pri vpeljavi agilnih metodologij.

1 Comment

Sorry, the comment form is closed at this time.