Agile vs. tradicionalno planiranje – šta je pravo za vas?
Iako je agile razvoj softvera star više od 20 godina, softverske kompanije se i dalje suočavaju sa starim pitanjem: Agile ili tradicionalni pristup?
Waterfall pristup
Privlačnost waterfall (tradicionalnog) pristupa razvoju softvera dugo je bila snažna, ali budimo realni — nije baš sve idealno.
Evo i zašto::
Nesklad sa realnošću
Waterfall projekti najbolje funkcionišu u utopijskom svetu gde su zahtevi kristalno jasni, domen i tehnologija potpuno poznati, a sve se odvija predvidivo. Spojler: stvarnost retko izgleda tako.
Pogrešne pretpostavke
Waterfall metodologija polazi od pogrešne pretpostavke da će svaka faza dati pozitivne rezultate, zanemarujući „haos teoriju“ razvoja softvera. Spojler #2: stvari se menjaju — i to često. Build-ovi pucaju, softver se ponaša nepredvidivo, integracije prave probleme, ljudi se razbole, hardver zakaže… lista je duga.
Rigidni zahtevi
U tradicionalnom pristupu, zahtevi se definišu od prvog dana i ostaju gotovo nepromenljivi. Project Management pravi detaljan plan zasnovan na tim „zacementiranim“ zahtevima, pretpostavljajući nivo znanja o proizvodu koji graniči sa vidovitošću. Rezultat? Development timovi vode stalnu borbu da ispune tako stroge zahteve.
Agile pristup
Zatim dolazi Agile, sa vrednostima iz Agile manifesta koje poručuju:
„Reagovanje na promene važnije je od praćenja plana“ i
„Dobrodošli su promenljivi zahtevi, čak i kasno u razvoju.“
Agile planiranje prati drugačiji ritam — manje se fokusira na rigidnost plana, a više na fleksibilnost samog procesa planiranja.
Šta Agile planiranje čini drugačijim?
Proces ispred opsesije planom
Umesto da teži savršenom planu, Agile stavlja fokus na sam proces — dinamičan i stalno evoluirajući.
Često donošenje odluka
Agile planiranje podrazumeva kontinuirano donošenje odluka, uz oslanjanje na empirijski pristup inspect & adapt i uključivanje novih informacija u tok projekta.
Višenivojsko planiranje
Agile planiranje funkcioniše na više nivoa — daily, sprint, release, product, portfolio — svaki sa svojom granulacijom i preciznošću. Re-planiranje je sastavni deo procesa, a planovi se stalno prilagođavaju novim uvidima i promenama u realnosti.
Prihvatanje neizvesnosti
Agile prihvata neizvesnost kao prirodan deo razvoja proizvoda i ugrađuje fleksibilnost u sam pristup. Iterativni i inkrementalni razvoj pomažu da se ublaži nepredvidivost softverskog okruženja.
A šta je sa estimacijom?
Ne zaboravimo estimaciju — kompas koji nas vodi kroz neizvesnost.
Agile estimacija, sa fokusom na relativno procenjivanje (story points, ideal days) u kombinaciji sa apsolutnim procenama za pojedinačne zadatke, pomaže timovima da se snađu u kompleksnom planiranju. Tehnike poput Planning poker-a podstiču kolaborativno procenjivanje, otkrivaju skrivene pretpostavke i donose bolje uvide.
Zašto je ovo važno?
Za software inženjere i business stakeholder-e razumevanje ovih koncepata je ključno.
Ako vam je ova tema zanimljiva i želite da uđete dublje u Agile planiranje i estimaciju, formalna edukacija može biti sledeći korak. U svetu razvoja softvera koji se stalno menja, znanje je zaista moć.