INHOUSE education

Agile vs. tradicionalno planiranje – šta je pravo za vas?

Agile planning vs traditional

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ć.