Agile ili Waterfall – koja je opcija prikladnija za Vašu tvrtku?

Oprečnost  Agile-a i Waterfall-a nije toliko teoretska, koliko praktična. Izbor metodologije koja nije prikladna za Vaš projekt, u najboljem slučaju će usporiti njegov razvoj, a u najgorem slučaju zaslužit će mjesto na spisku top „fejlova“ godine. Fleksibilni i kaskadni modeli razvoja projekta (Agile i Waterfall) su među najpopularnijim metodologijama upravljanja. Kada proučite značajke Vašeg projekta i  naoružate se znanjem iz ovog članka, moći ćete sa sigurnošću odgovoriti na pitanje: „Što će odgovarati mojem poslovanju – Agile ili Waterfall?“ Agile je sustav ideja i principa “fleksibilnog” upravljanja projektima, na temelju kojega se razvijaju popularne metode Scrum, Kanban i druge. Ključni princip je razvoj kroz kratke iteracije (ciklusi), na kraju svakog od kojih korisnik (korisnik) prima radni kod ili proizvod. Vodopad je tehnika upravljanja projektima koja uključuje postupnu prijelaz s jedne faze na drugu bez preskakanja i vraćanja na prethodne faze.

Agile je sustav ideja i principa „fleksibilnog“ upravljanja projektima, na temelju kojega su se razvile popularne metode Scrum, Kanban i druge. Ključni princip je razvoj kroz kratke iteracije (cikluse),gdje  na kraju svakog od njih naručitelj (korisnik) prima radni kod ili proizvod.
Waterfall je tehnika upravljanja projektima koja podrazumijeva postupni prijelaz s jedne faze na drugu bez preskakanja i vraćanja na prethodne faze.

Što je Agile

Kao i ostale popularne metodologije razvoja i upravljanja projektima, Agile se pojavio relativno nedavno u SAD-u. Za razliku od CPM i CCPM, za pojavu fleksibilne metodologije razvoja odgovorna je  čitava je skupina ljudi – 17 američkih IT stručnjaka iz države Utah. U svom „Manifestu fleksibilnog razvoja softvera“, gdje se prvi put spominje pojam „Agile“, propisali su 12 načela Agile razvoja.

Njihova je bit sažeta u sljedećim ključnim točkama koje određuju prirodu fleksibilne metodologije razvoja:

  1. Ljudi i interakcija važniji su od procesa i alata.
  2. Radni proizvod je važniji od iscrpne dokumentacije.
  3. Suradnja s kupcem je važnija od pregovaranja o uvjetima ugovora.
  4. Spremnost na izmjene je važnije od praćenja prvobitnog plana.

Agile je postao osnova za niz fleksibilnih metoda, među kojima su najpoznatiji Scrum, Lean i Extreme Programming.

Scrum je fleksibilna razvojna metodologija nastala iz Agile-a koja se temelji na „sprintovima“ –  ciklusima od 1 do 4 tjedna, pri kraju kojih bi rezultat trebala biti radna verzija proizvoda.

Lean je metoda koja je nastala na temelju Toyotinog sustava upravljanja proizvodnjom – Toyota Production System. Temelji se na filozofiji stalnog usavršavanja na svim razinama organizacije, a jedan od ključnih pojmova je vrijednost (to, što je kupac spreman platiti).

Ekstremno programiranje (XP) je jedna od Agile metodologija, pri čemu važnu uloga ima periodička igra planiranja koja uključuje klijenta. Omogućuje vam prepoznavanje nedostataka prethodne iteracije, prioritetnost zadataka, željene funkcije proizvoda uz uvid u potrebe klijenta.

Prednosti i nedostaci Agile metode

Prednosti metode uključuju:

  • kratke i jasne iteracije – razvojni ciklusi traju od 2 tjedna do 2 mjeseca, a na kraju njih klijent dobiva radnu verziju proizvoda
  • visok stupanj uključenosti izvođača, organizatora i naručitelja projekta
  • Radni proizvod je u prvom planu kao glavni pokazatelj napretka – to se može smatrati i plusom i minusom, jer se u tom slučaju postavljaju visoki zahtjevi za projektni tim za samoorganizaciju
  • minimiziranje rizika zbog fleksibilnog sustava unosa izmjena.

Metodologija nije izbjegla ni nedostatke koji se organski „nadopunjuju“ sa svojim prednostima:

  • poticanje stalnih izmjena u projektu: fleksibilnost razvoja proizvoda može dovesti do situacije da nikada neće doći do konačne verzije
  • povećane zahtjeve za kvalifikacijama i iskustvom tima: uz neizravno stvaranje proizvoda, tim bi trebao analizirati moguće načine poboljšanja učinkovitosti vlastitog rada, kontinuirano razmjenjivati ​​informacije o projektu, biti motiviran i samoorganiziran. Rijetko kad resursi projekta omogućavaju da se privuku takvi stručnjaci.
  • Filozofska priroda metodologije: Agile nije jasan vodič za djelovanje, već čitav filozofski koncept. Tim ne može mehanički primijeniti mehaniku „fleksibilnog“ razvoja, već mora prihvatiti ključna načela sustava
  • težina izračuna ukupne količine posla: poticanje izmjena i usavršavanja konačnog proizvoda dovodi do fluktuirajućeg iznosa troškova projekta.

Što je Waterfall?

Waterfall metodu  (kaskadni razvojni sustav) je zamisao Winstona Walkera Roycea, direktora Lockheed Software Technology centra u Austinu (Texas, SAD), pionira u softverskog razvoja.

S Waterfall metodom sve se dogodilo na isti način kao i kod mnogih izuma: Herbert Bennington 1956. i Hozier 1961. godine dali su svoj doprinos stvaranju metodologije, a Walker je iskoristio njihov rad, i osigurao si da ga povijest zapamti kao „stvoritelja Waterfall-a“. Pobjednici pišu povijest…

Kaskadni razvojni model podrazumijeva sekvencijalno odvijanje procesa, podijeljenog u faze. Prijelaz na sljedeću etapu moguć je tek nakon završetka prethodne.

S  L  I  K  A

U izvornom Walkerovom radu „Upravljanje razvojem velikih softverskih sustava“ opisuju se 6 faza razvoja proizvoda i njih je 1985. Ministarstvo obrane SAD-a fiksiralo među standarde rada s programerima softvera:

  1. Sistemski i programski zahtjevi: fiksirani u PRD-u (dokument zahtjeva o proizvodu).
  2. Analiza: utjelovljena u modelima, shemama i poslovnim pravilima.
  3. Dizajn: razrađuje se interna arhitektura softvera, načini implementiranja zahtjeva. To se ne odnosi samo na sučelje i vizualni izgled softvera, već i na unutarnju strukturnu logiku.
  4. Kodiranje: programski kod je izravno napisan, softver se integrira.
  5. Testiranje: testeri bugova provjeravaju konačni proizvod, u alatima za praćenje bilježe informacije o nedostatcima u programskom kodu ili funkcionalnosti. U slučaju pogrešaka i raspoloživosti vremena i novca, izvode se ispravci grešaka.
  6. Operacije: proizvod se prilagođava različitim operativnim sustavima, redovito se ažurira kako bi popravio bugove koje su pronašli korisnici i dodaju funkcije. U okviru etape osigurana je i tehnička podrška korisnicima.

Tvrtka Toyota je popularizirala Lean i Kanban metodologije, a do kraja 2000-ih koristila je kaskadni model razvoja softvera za potrebe proizvodnje.

Prednosti i nedostaci Waterfall-a

Među najvećim prednostima Waterfall metodologije su:

  • jasna i jednostavna struktura procesa razvoja – to snižava prag za ulazak u timove
  • redoviti izvještaji – lako možete pratiti resurse, rizike, utrošeno vrijeme i financije zbog strogog faznog režima procesa razvoja i detaljne projektne dokumentacije
  • stabilnost zadataka – zadaci s kojima je proizvod suočen jasni su timu od samog početka razvoja i ostaju nepromijenjeni tijekom cijelog procesa
  • Procjena troškova i rokova izvedbe projekta – vremenski raspored gotovog proizvoda, kao i ukupni trošak, mogu se izračunati prije početka razvoja.

Među nedostacima kaskadne metode ubrajaju se:

  • proces koji nema fleksibilnost – dakle, ako projekt zahtijeva više vremena i financijskih sredstava nego što je to moguće, tada će se morati žrtvovati test-faza. Prema istraživanjima konzultantske skupine Rothman, troškovi popravljanja bugova nakon izdavanja proizvoda prosječno su po 20 puta veći nego tijekom potpunog višefaznog testiranja tijekom procesa razvoja.
  • „otpor“ izmjenama – kruti okvir iz razvojnih faza i uvjet da se dostavi samo gotovi proizvod određuje to da je nemoguće unositi izmjene tijekom razvoja
  • inercija – u ranoj fazi predviđanja vremenskih i financijskih troškova mogu se mijenjati naviše, ali je nemoguće promijeniti projekt ka optimizaciji troškova, mijenjanjem funkcija ili koncepta prije izdavanja gotovog proizvoda
  • povećan rizik – klasični sustav ispitivanja podrazumijeva testiranje svake komponente projekta zasebno, kao i u kombinaciji s drugima. Pri korištenju Waterfalla provjerava se gotov proizvod.

Djelomično se nedostaci kaskadnog modela razvoja korigiraju su Waterfall preinakama: Sashimi, Waterfall s potprojektima i kaskadni model razvoja sa smanjenim rizicima.

Sashimi iliti kaskadni model s preklapajućim etapama je najpoznatiji među njima. U njemu etape kao u izvornom postupku, slijede jedna drugu, ali istodobno se povremeno preklapaju.

Waterfall s potprojektima je model u kojem se radi s tri velika bloka: konceptualizacija, projektiranje zahtjeva i arhitekturna struktura proizvoda. Zatim unutar svakog od njih prolazite kroz faze (potprojekte) detaljnog projektiranja, kodiranja i testiranja. Na kraju su sve komponente integrirane tijekom faze testiranja sustava.

Kaskadni model razvoja s ​​smanjenjem rizicima – preinaka klasične Waterfall metode, kojem su  nadodane spirale smanjenja rizika koje projekti dijele na mini projekte koji odgovaraju jednom ili nekoliko ključnih rizika.

Tablica za usporedbu

Agile Waterfall
Suština Fleksibilni razvojni model utemeljen na iterativnim principima Kaskadni razvojni sustav temeljen na krutom slijedu procesa razvoja
Godina osnivanja 2001. 1956., 1961., 1970.
Developeri Grupa IT stručnjaka (SAD) G. Bennington, Hozier, V. Walker Royce
Načela upotrebe
  • najveći prioritet je ispunjavanje potreba kupaca
  • tijekom cijelog projekta, tim i klijent svakodnevno surađuju međusobno i zajedno
  • funkcionalni proizvod – glavni pokazatelj napretka
  • posao se može povjeriti samo samoorganiziranom, motiviranom timu
  • optimalni rok za izdavanje funkcionalnog proizvoda – od 2 tjedna do 2 mjeseca.
  • strogi slijed razvojnih faza
  • prijelaz na novu fazu – tek nakon uspješnog završetka prethodne
  • fiksni trošak proizvoda
  • klijent nije uključen u izravni proces razvoja
  • izmjene se mogu izvršiti tek nakon završetka cjelokupnog procesa razvoja
Plusevi
  1. visoka razina interakcije između članova projektnog tima
  2. brzi rezultat (radni kod) na kraju „sprintova“
  3. poticanje promjene proizvoda i usavršavanja tijekom njegovog razvoja
  4. izravno uključivanje kupca u tijek radnog procesa
  1. jasna i jednostavna shema radnog procesa
  2. mogućnost izračunavanja točnog iznosa utrošenog na resurse projekta
  3. ne zahtijeva troškove za uspostavljanje komunikacije između svih članova tima.
Minusi
  • rizik da se proizvod beskrajno mijenja
  • velika ovisnost o visokokvalificiranom i iskusnom timu
  • Gotovo je nemoguće točno izračunati ukupni trošak projekta.
  • prioritet formalnog pristupa slijedu radnog procesa
  • nemogućnost dodavanja izmjena do kraja razvoja proizvoda
  • u slučaju manjka sredstava, kvaliteta projekta pati zbog skraćenog razdoblja testiranja.
Kompanije koje ih koriste Unilever, niz banaka (Alfa Bank, Home Credit, Raiffeisen Bank, itd.)  Cisco Ericsson AB, Toyota (do 2010.)
To će Vam odgovarati ako…
  1. iskusni, visoko kvalificirani tim radi na projektu.
  2. Vi radite u start-upu
  3. morate brzo dobiti radnu verziju proizvoda
  4. klijent djeluje kao partner, a ne kao investitor
  5. proizvod je razvijen u polju podložnom stalnim promjenama..
  1. većina ili cjelokupni rad na projektu provodi se na outsourcingu
  2. imate jasan koncept proizvoda kojeg želite dobiti.
  3. niste ograničeni vremenom i resursima za stvaranje proizvoda
  4. stvaranje proizvoda ili poslovanja temelji se na slijedu strogog slijeda zadataka.
Neće Vam odgovarati ako…
  • niste spremni potrošiti dodatne resurse na uspostavljanju svakodnevne stabilne komunikacije između svih sudionika u tom procesu
  • proizvod mora biti gotov do određenog datuma.
  • proračun projekta strogo je ograničen
  • potrebna Vam je detaljna dokumentacija o svim razvojnim procesima..
  • želite stvoriti inovativni proizvod ili veliki projekt
  • niste uvjereni u koncepte predloženog projekta
  • financijski resursi nisu ključno ograničenje Vašeg projekta.

SLIKA

Presuda

Agile i Waterfall su dvije potpuno različite metode razvoja i upravljanja projektima. Svaka od njih je generirala desetke modifikacija i metoda, optimiziranih za određeni oblik projekta.

Fleksibilni model će biti idealan za IT tvrtke, start-upove, projekte u inovativnim područjima.

Kaskadni model se dobro drži u građevinskim projektima ili projektima, gdje je ključno vremensko ograničenje projekta, a ne financiranje.

Uzimajući u obzir karakteristike svake od metoda i vašeg poslovanja, kao i na temelju kriterija rizika, vremena i uključivanja zainteresiranih strana, moći ćete samostalno odrediti koja je najučinkovitija metodologija.