Agilnost je sposobnost stvaranja i reagovanja na promene. To je način suočavanja i na kraju uspeha u nesigurnom i turbulentnom okruženju.
Autori manifesta Agile Manifest odabrali su „Agile“ kao oznaku za celu ovu ideju, jer je ta reč predstavljala prilagodljivost i odgovor na promene što je bilo izuzetno važno za njihov pristup.
Radi se zapravo o razmišljanju kako da razumete šta se dešava u okruženju u kome se nalazite danas, kako da identifikujete sa kojom nesigurnošću se suočavate i shvatite kako da se tome prilagodite dok idete dalje.
Šta je Agile Manifest?
Agilne Manifest je deklaracija vrednosti i principa izraženih u Agile metodologiji. Sastavljen od 4 temeljne vrednosti i 12 ključnih principa, ima za cilj da pomogne u otkrivanju boljih načina razvoja softvera pružajući jasnu i merljivu strukturu koja promoviše učestali razvoj, timsku saradnju i prepoznavanje promena.
Softverska industrija je visoko konkurentno tržište zbog činjenice da je softver nešto što se može stalno nadograđivati. Kao odgovor na neadekvatnost tradicionalnih metoda razvoja softvera nastao je Agile Manifest. Februara 2001. godine u gradu Juta, sastavila ga je grupa od 17 programera koji su se bavili razvojem softvera.
Njihov Agilni Manifest razvoja softvera stvorio je revolucionarni način razmišljanja o pružanju vrednosti i saradnji sa kupcima.
Osnovne vrednosti Agile Manifesta
- Pojedinci i interakcije u odnosu na procese i alate
Prva vrednost naglašava timski rad i komunikaciju. Moramo shvatiti da je razvoj softvera ljudska aktivnost i da je kvalitet interakcije među ljudima od vitalnog značaja. Alati su važan deo razvoja softvera, ali razvijanje odličnog softvera mnogo više zavisi od timskog rada, bez obzira na to koje alate tim koristi.
- Radni softver u odnosu na dokumentaciju
Dokumentacija ima svoje mesto i može biti sjajan izvor ili referenca za korisnike i saradnike. Glavni cilj razvoja softvera, međutim, je razvoj softvera koji nudi poslovne koristi a ne opsežnu dokumentaciju.
- Saradnja s klijentima
Razvojni timovi moraju blisko sarađivati i često komunicirati sa svojim kupcima. Slušajući i dobivajući povratne informacije, timovi će shvatiti šta svi akteri zaista žele.
- Odgovor na promene sledeći plan
Promene su realnost u razvoju softvera, realnost koju bi softverski proces trebalo da odražava. Projektni plan mora biti dovoljno fleksibilan da se može menjati, onako kako to zahteva situacija.
12 principa Agilnog Manifesta
- Najveći prioritet je zadovoljstvo kupca ranom i kontinuiranom isporukom vrednog softvera.
- Zahtevi koji se menjaju prihvataju se čak i u kasnoj fazi razvoja. Agilni procesi omogućavaju prilagođavanje izmenjenim zahtevima što kao rezultat daje prednost kupaca u odnosu na konkurenciju.
- Dostave radnog softvera su česte, od nekoliko nedelja do nekoliko meseci, uz prednost kraćem vremenskom periodu.
- Tokom celog projekta menadžeri i programeri moraju da svakodnevno sarađuju.
- Izgradnja projekta oko motivisanih pojedinaca. Dajte im okruženje i podršku koja im je potrebna i verujte im da mogu obaviti posao.
- Najefikasnija i najdelotvornija metoda prenošenja informacija do razvojnog tima i unutar njega je razgovor licem u lice.
- Radni softver je glavna mera napretka.
- Agilni procesi promovišu održivi razvoj. Sponzori, programeri i korisnici trebalo bi da budu u mogućnosti da održavaju konstantan tempo bez obzira na dužinu trajanja projekta.
- Stalna pažnja na tehničkom kvalitetu i dobrom dizajnu povećava agilnost.
- Jednostavnost – veština dovođenja do najvišeg stepena posla koji nije potrebno uraditi od suštinske je važnosti.
- Najbolje arhitekture, zahtevi i dizajni potiču od timova koji se sami organizuju.
- U redovnim intervalima, tim razmišlja o tome kako da postane efikasniji, zatim i prilagođava svoje ponašanje u skladu sa tim.
Prednosti Agile metodologije
U oblasti upravljanja projektima, agile pruža projektnim timovima, sponzorima, menadžerima projekata i kupcima brojne pogodnosti uključujući:
- Agile metodologija obezbeđuje upornu i kontinuiranu isporuka softvera
- Nakon svakog sprinta, radna svojstva se isporučuju kupcu. Ovo povećava nivo njihovog zadovoljstava.
- Kupci imaju priliku da pogledaju razvijene funkcije i provere da li one ispunjavaju njihova očekivanja.
- Ako kupci imaju bilo kakve povratne informacije ili žele bilo kakve izmene u karakteristikama, to je moguće primeniti u trenutnoj ili sledećoj verziji proizvoda.
- Promene se mogu uvesti čak i u kasnijim fazama razvoja proizvoda.
- Agile metodologija omogućava menadžerima i programerima da svakodnevno komuniciraju.
- Značajna pažnja posvećena je i dizajnu proizvoda.
- Poboljšano usklađivanje poslovanja jer tim mora usko da sarađuje sa kupcima kako bi prilagodio i uključio njihove stalno promenljive potrebe. Ovo donosi usklađivanje u realizaciji projekta.
- Usredsređenost na poslovnu vrednost.
- Agile osigurava da se u bilo kojem trenutku projektni tim fokusira na isporuku najdragocenijeg proizvoda koji će biti dostavljen. Tim je na neki način primoran da kao prioritet postavi zahteve kupaca
- Kraći ciklusi isporuke koji pomažu kupcima da što pre dobiju povrat investicije. Tekući rad na projektu, klijenti pregledavaju u realnom vremenu. Takođe je poboljšana vidljivost proizvoda i napredak koji obezbeđuje transparentnost.
- Smanjeni troškovi projekta.
- To se postiže smanjenjem količine prerade koja ide u dalji razvoj i unapređenje projekta. Kako povratne informacije kupaca dolaze u redovnim intervalima, mnogo je manje potrebe za kompletnim prepravkama i povratkom na početak.
Agile takođe pomaže timovima da steknu uvid u karakteristike i ono šta nije potrebno proizvodu. Statistički podaci pokazuju da se 46% funkcija ne koristi ni u krajnjim proizvodima, a Agile štedi razvojne timove od gubljenja vremena i novca koji idu u razvoj neželjenih funkcija.
Agile je zajdnički termin za nekoliko metoda i praksi. Neke od popularnih metoda su:
I Scrum
Scrum je okvir unutar kojeg se ljudi mogu pozabaviti složenim problemima prilagođavanja, dok produktivno i kreativno isporučuju proizvode najviše moguće vrednosti. To je jednostavan okvir za efikasnu timsku saradnju na složenim proizvodima. To je najpopularnija i široko prihvaćena Agile metodologija.
Ova metodologija se bavi dvema kritičnim tačkama u razvoju softvera. Prvo je brzina razvoja softvera, a drugo su zahtevi klijenta koji se stalno menjaju. U ovom pristupu projekat razvoja softvera se izvodi u fazama, a svaka faza je poznata kao Sprint. Takođe se stvaraju mali timovi od 5-6 članova koji kolektivno rade na postizanju željenih rezultata.
Scrum metodologija omogućava aktivno učešće klijenata u svakoj fazi tako da se eventualne potrebne promene odmah uočavaju i na njih se reaguje. To osigurava da se projekat realizuje u roku i efikasno ispunjava zahteve klijenta.
II Extreme Programming (XP) – Ekstremno programiranje
XP je najuspešnija metoda razvoja agilnog softvera zbog fokusiranosti na zadovoljstvo kupaca. Ekstremno programiranje pozdravlja i uključuje promene ili zahteve kupaca u bilo kojoj fazi razvojnog životnog ciklusa.
Ekstremno programiranje započinje prikupljanjem korisničkih zahteva. U zavisnosti od ovih zahteva, ceo razvojni proces je podeljen u nekoliko malih ciklusa.
III Lean Software Development (LSD) – Lean razvoj softvera
Ova metoda se fokusira na poboljšanje protoka vrednosti kroz sistem. Pomaže u uklanjanju otpada u sistemu, poput nepotpunog rada i prebacivanja zadataka. Pomaže radu kroz jačanje tima i građenje integriteta.
IV Adaptive System Development (ASD) – Adaptivni razvoj sistema
Metoda zasnovana na ideji da projekti treba da budu u stanju stalnog prilagođavanja kroz tri serije ciklusa koje se ponavlaju: špekulisanje, sarađivanje i učenje.
V Dynamic Systems Development Method (DSDM) – Metoda dinamičkog razvoja sistema (DSDM)
Koristi se u projektima sa malim budžetom i tesnim rasporedom. Ova metodologija se fokusira na sledeće aspekte projekta:
- Izvodljivost projekta
- Provođenje poslovne studije
- Kreiranje funkcionalnog modela
- Kontinuirana iteracija prototipa
- Dizajnirajte i kreirajte iteracije
- Implementacija konačnog rezultata
VI Feature Driven Development (FDD) – Razvoj baziran na karakteristikama
FDD se fokusira na raščlanjivanje projekta u malim funkcijama koje vrednuju klijenti i koje se mogu isporučiti u kratkom roku. Takođe se naglašava da je razvoj proizvoda ljudska aktivnost, a ne isključivo mehanički poduhvat, iz tog razloga pojedinci i njihova interakcija dobijaju veliku vrednost.
VII Kanban
Jedna od suštinskih ideja Kanbana je da se spreči stvaranje viška. To se postiže korišćenjem Kanban kartica i Kanban table. Oni se takođe koriste za vizuelizaciju protoka resursa tokom proizvodnog ciklusa. To svima daje maksimalan uvid u proces. Ovo takođe pomaže menadžerima da se izbore bez obzira na višak ili manjak u realnom vremenu.
Agilna metodologija u upravljanju projektima
Kada želite da razumete Agile metodologiju u upravljanju projektima, postavite pitanje:
„Kako bismo mogli da upravljamo projektima na način koji nam omogućava da kreiramo i odgovorimo na promene i nosimo se sa nesigurnošću?“
Agile je proces kojim tim može upravljati projektom tako što ga razdvaja na nekoliko faza i uključuje stalnu saradnju sa zainteresovanim stranama i kontinuirano unapređuje svaku fazu projekta. Agile metodologija započinje sa klijentima koji opisuju kako će se koristiti krajnji proizvod i koji će problem rešiti, što pojašnjava koja su očekivanja korisnika od projektnog tima. Kada posao počne, timovi prolaze kroz proces planiranja, izvršavanja i ocenjivanja – što bi moglo promeniti konačni rezultat koji će bolje odgovarati potrebama klijenta. Neprekidna saradnja je ključna, kako između članova tima, tako i sa zainteresovanim stranama na projektu, za donošenje potpuno informisanih odluka.
Dakle, umesto detaljnog planiranja na početku projekta Agilna metodologija je otvorena za promene zahteva klijenata u toku trajanja projekta.
Razlike između Agile metodologije i tradicionalnog načina upravljanja projektima
1. Prilagodljivost promenama
Agile metodologija podrazumeva reagovanje na promene čak i ako u potpunosti promeni obim projekta. U tradicionalnom upravljanju projektima, menadžeri projekata moraju da istupe ako su potrebne promene, dok to nije slučaj sa agilnim upravljanjem projektima.
2. Zadovoljstvo kupaca nasuprot pridržavanju plana
Agile naglasak stavlja na zadovoljstvo kupaca. Proizvod se kontinuirano poboljšava i testira kako bi udovoljilo zahtevima kupca. U tradicionalnom upravljanju projektima važno je pridržavanje plana. Planiranje se vrši u početku i fokus je usmeren na završetak plana.
3. Poboljšana kontrola nad donošenjem odluka
Agile pruža kontrolu svim timovima na svim nivoima čineći ih sposobnim za samoupravljanje kako bi timovi mogli da rade bolje i brže. U tradicionalnom upravljanju projektima, kontrola odlučivanja leži na menadžmentu.
4. Metrika uspeha
Agile meri svoj uspeh samo jednom metrikom i to je vrednost isporučenog proizvoda. Suprotno tome, postoje brojne metrike za uspeh u tradicionalnom upravljanju projektima i ponekad se može zaboraviti da je najvažnija osoba za bilo koji posao kupac.
Nedostaci Agile metodologije
Kao i kod bilo koje druge metodologije, agilni pristup nije dobro prilagođen svakom projektu i uvek se preporučuje velika pažnja kako bi se identifikovala najbolja metodologija za svaku jedinstvenu situaciju. Agile možda neće raditi kako je planirano ako klijent nije jasan u ciljevima, menadžer projekta ili tim je neiskusan ili ako ne funkcionišu dobro pod velikim pritiskom. Zbog manje formalnih i fleksibilnijih procesa, agile metodologija se ne može uvek lako primeiti u većim, tradicionalnijim organizacijama.
Konačno, Agile je način razmišljanja koji možemo primeniti na brojne aktivnosti poštujući vrednosti i principe sadržane u Agile Manifestu. Te vrednosti i principi daju smernice o tome kako odgovoriti na promene i kako se nositi sa nesigurnošću. Kada se suočite sa nesigurnošću, pokušajte da za nešto što mislite da bi moglo uspeti dobijete povratne informacije i prema tome se prilagodite.
Imajte na umu vrednosti i principe kada to radite. Neka vas kontekst vodi kojim okvirima, praksama i tehnikama koje koristite da sarađujete sa svojim timom i pružate vrednost svojim kupcima.
Kada to učinite, Agile postaje pridev koji opisuje način na koji izvodite neku aktivnost.