Kdaj uporabiti Scrum in kdaj ne?
Scrum vodič se začne s tem stavkom.
Scrum je enostavno ogrodje, ki pomaga posameznikom, ekipam in organizacijam ustvarjati vrednost skozi prilagodljive rešitve za kompleksne probleme.
Scrum je torej prava izbira takrat, ko rešujemo kompleksne probleme. Bolj, kot je problem zapletev in kompleksen, bolj je Scrum prava izbira. Problem je lahko npr. razvoj produkta ali izvedba projekta. Kakšen pa je kompleksen problem? Dave Snowden, oče ogrodje Cynefin pravi, da se prava rešitev kompleksnega problema pojavi in da je vsako vnaprejšnje planiranje zguba časa. Več o Cynefinu bom napisal v enem izmed prihodnjih člankov.
Vzemimo primer, da je naš problem razvoj nove storitve.
Če je problem enostaven, predvidljiv in se okolje oz. kontekst tekom razvoja ne bo spreminjal je najbolje na začetku narediti plan in nato se ves čas razvoja držimo tega plana. Uporabimo lahko eno izmed tradicionalnih metod, kot je npr. waterfall (slapovni model). To pomeni, da bomo najprej veliko časa posvetili zbiranju uporabniških zahtev, njihovi analizi, pripravi načrta rešitve in podrobnega plana za izvedbo. Nato bomo zbrali skupino ljudi, katerih naloga bo, da razvijejo storitev v skladu s specifikacijami in načrti, ki smo jih pripravili v začetni fazi. Ljudem, ki bodo razvijali storitev torej ne bo potrebno posebej veliko razmišljati o tem, kako in zakaj bodo uporabniki uporabljali storitev. Svojo nalogo bodo najbolje opravili tako, da bodo slepo sledili planom in naredili stvari točno tako, kot je nekdo pred njimi definiral. Cilj je, da razvijemo točno takšno rešitev, kot je bila definirana v začetni fazi planiranja in nato opisana v specifikacijah. Spreminjanje specifikacij tekom razvoja ni zaželjeno in se mu skušamo za vsako ceno izogniti.
Situacija pa je popolnoma drugačna, ko se lotimo reševanja kompleksnega, nepredvidljivega in spreminjajočega se problema. Tukaj je ogromno neznank in je nemogoče na začetku razvoja narediti realen plan, ki se ga bomo nato lahko držali in razvili storitev. Niso namreč jasne zahteve, dodatno pa se bosta okolje in kontekst nenehno spreminjala. In ravno v takšnih primerih blesti Scrum s svojim iterativnim in inkrementalnim pristopom, ki nam pomaga optimizirati napovedovanje prihodnosti in nadzorovati tveganje. Scrumovi trije stebri (transparentnost, pregled in prilagoditev) nas tekom celotnega razvoja silijo v nenehno prilagajanje trenutni situaciji in iskanju izboljšav. Spreminjanje specifikacij tekom razvoja je zaželjeno, celo ko smo že proti koncu razvoja. Pri agilnem razvoju namreč ni cilj, da naredimo produkt, kot je bil na začetku definiran v specifikacijah, ampak, da naredimo takšen produkt, ki ima kar največjo dodano vrednost za stranke in olajša življenje uporabnikom.
Scrum je primeren, ko:
na začetku razvoja zahteve niso jasne
obstaja velika verjetnost, da se bodo tekom razvoja spreminjale zahteve in okolje
bo potrebno tekom razvoja pri uporabnikih preverjati vmesne rešitve in dobivati povratne informacije
Preden se boste naslednjič odločili za uporabo Scruma se pošteno vprašajte, kakšna je vaša situacija in kakšen problem rešujete. V kolikor je oboje zalo enostavno in predvidljivo, ni popolnoma nobene potrebe po metodi Scrum. Naredite to, kar je nekoč izjavil projektni vodja na začetku enega projekta, na katerem sem sodeloval: “Sedaj bomo napisali takšne specifikacije, da bo lahko katerikoli študent napisal programsko kodo.“
Dejstvo je, da so problemi, ki jih dandanes rešujejo podjetja vedno bolj kompleksni in nepredvidljivi in posledično so agilni pristopi vedno bolj razširjeni. Če to dejstvo za vaše podjetje ne drži imate res srečo. Če pa si zgolj zatiskate oči in si mislite, da za vas ne drži, pa mogoče vaše podjetje čez nekaj let ne bo več obstajalo.