Agilni pristup je delotvorna strategija u razvoju softvera, koja olakšava kreiranje visokokvalitetnog softvera, poboljšava timski rad i komunikaciju, ubrzava isporuku softverskih rešenja i povećava zadovoljstvo korisnika.
Kompanije širom sveta implementiraju agilne metode u upravljanju projektima i procesima razvoja softvera, prepoznajući njihove brojne prednosti.
Prema jednom istraživanju, agilni pristup se koristi u čak 80% IT projekata širom sveta, a obuhvata i mnoge kompanije sa prestižne liste Fortune 500.
Agilni projekti su, takođe, pokazali veće stope uspeha u poređenju sa tradicionalnim metodama upravljanja projektima, kao što je vodopadni model. Te metode često zahtevaju mnogo vremena, manje su prilagodljive promenama i nose sa sobom druge izazove.
Agilni pristup se ističe kao sjajna alternativa ovim metodama. Danas postoji veliki broj agilnih metodologija, a izbor zavisi isključivo od specifičnih potreba vašeg projekta.
Ovaj vodič će vam, stoga, pomoći da razumete suštinu agilnog pristupa i različite metodologije, posebno ako ste menadžer projekta.
Šta su agilne metodologije?
Agilne metodologije obuhvataju različite pristupe razvoju proizvoda, usklađene sa agilnim principima i vrednostima. Ove metodologije omogućavaju timovima i menadžerima projekata da razvijaju visokokvalitetne proizvode i da često isporučuju funkcionalnosti u manjim, kontrolisanim koracima.
Omogućavaju timovima sa različitim veštinama da redovno traže povratne informacije od korisnika kako bi kontinuirano poboljšavali proizvod i postigli veće zadovoljstvo krajnjih korisnika.
Ako se pitate šta tačno znači termin „agilan“, objasnićemo ga kako bi vam koncept agilne metodologije postao jasniji.
Šta je agilnost?
Agilnost je efikasan i fleksibilan pristup upravljanju projektima, osmišljen da omogući brže kreiranje i isporuku visokokvalitetnih proizvoda za krajnje korisnike. Termin „agilan“ podrazumeva sposobnost brzog kretanja i prilagođavanja. Pomaže timovima da budu fleksibilniji na zahteve korisnika i tržišta, prilagođavajući se promenljivim uslovima.
To je način razmišljanja koji obuhvata niz principa i vrednosti u razvoju softvera, definisanih u Agilnom manifestu 2001. godine. Agilni manifest se zasniva na četiri ključne vrednosti:
- Ljudi i interakcija su važniji od alata i procesa. Alati i procesi su neophodni, ali upravljanje projektima uključuje ljudsku interakciju, a krajnji proizvod je namenjen korisnicima. Stoga, ova vrednost naglašava komunikaciju i timski rad.
- Funkcionalan softver je važniji od sveobuhvatne dokumentacije. Iako je detaljna dokumentacija korisna za korisnike i programere i treba je redovno ažurirati, glavni cilj treba da bude razvoj funkcionalnog i korisnog softverskog sistema.
- Saradnja sa klijentima je važnija od pregovaranja o ugovorima. Cilj mora biti zadovoljavanje potreba klijenata, a ne samo ispunjavanje stavki iz ugovora. Agilni timovi treba redovno da komuniciraju sa klijentima i blisko sarađuju kako bi razumeli njihove potrebe, prikupili povratne informacije i poboljšali softver.
- Reagovanje na promene je važnije od striktnog pridržavanja plana. Agilni timovi moraju biti brzi i fleksibilni kako bi se prilagodili promenama u bilo kojoj fazi životnog ciklusa razvoja softvera.
Dodatno, Agilni manifest sadrži 12 principa:
- Zadovoljstvo korisnika kroz kontinuiranu isporuku vrednog softvera.
- Prihvatanje promenljivih zahteva u bilo kojoj fazi razvoja.
- Česta i brza isporuka softvera u nedeljama, a ne mesecima.
- Svakodnevna saradnja između programera i poslovnih ljudi.
- Izgradnja projekata oko motivisanih i pouzdanih pojedinaca.
- Promovisanje komunikacije licem u lice kao najboljeg načina komunikacije.
- Funkcionalan softver kao glavno merilo napretka projekta.
- Održavanje stabilnog tempa razvoja softvera.
- Težnja ka dobrom dizajnu i tehničkoj izvrsnosti.
- Održavanje jednostavnosti kao imperativa.
- Najbolji dizajn, arhitektura i zahtevi proističu iz samoorganizovanog tima.
- Fokus na pronalaženju načina za prilagođavanje timova zahtevima i povećanje efikasnosti.
Agilni pristup se koristi u različitim fazama planiranja razvoja softvera, u tehničkim i upravljačkim procesima. Trenutno postoji više od 50 agilnih metodologija i okvira. To znači da agilni pristup nije samo jedna metoda, već mnogo više od toga.
Organizacije i timovi biraju agilne metodologije na osnovu potreba svojih projekata. Ako ste menadžer projekta, važno je da poznajete različite agilne metodologije kako biste odabrali najprikladniju za vaš projekat.
Evo nekih od najčešće korišćenih agilnih metodologija koje bi trebalo da znate.
Različite agilne metodologije
Scrum
Scrum je jedna od najpopularnijih agilnih metodologija ili okvira, čiji su autori Ken Schwaber i Jeff Sutherland. Koristi se za upravljanje složenim i prilagodljivim projektima, sa ciljem stvaranja visokokvalitetnih proizvoda uz maksimizaciju kreativnosti i produktivnosti tima.
Ovaj fleksibilni okvir pomaže organizacijama, timovima i pojedincima da kreiraju vrednost, omogućavajući prilagodljiva rešenja za kompleksne probleme.
Scrum uključuje iteracije u kojima se faze razvoja softvera dele na cikluse (obično od 2-3 nedelje) ili faze koje se nazivaju „sprintovi“. Svaki sprint ima definisan vremenski okvir za razvoj specifičnog skupa funkcija.
Vreme razvoja za svaki sprint je fiksno kako bi se omogućilo fokusiranje na jedan sprint. Uključuje različite uloge u projektu, kao što su vlasnik proizvoda, Scrum majstor i tim.
Scrum sastanci se održavaju svakodnevno kako bi se pratio napredak projekta i razgovaralo o aktivnostima za poboljšanje procesa. Više sprintova se kombinuje da bi se stvorilo izdanje (Release), gde se proizvod formalno isporučuje klijentu ili krajnjim korisnicima.
Kanban
Kanban je razvijen kao odgovor na određene izazove drugih agilnih metodologija, posebno Scrum-a. Na primer, ciklusi od 2-3 nedelje su postali predugački za organizacije u različitim poslovnim aspektima, a timovima je bilo teže da ispune obaveze u pogledu kvaliteta i obima.
Kanban je predložio drugačiji, unapređen metod koji pomaže timovima da kontinuirano isporučuju, umesto da čekaju 2-3 nedelje. Ovo im omogućava da brže dobijaju povratne informacije od klijenata i poboljšaju softver, postižući tako veće zadovoljstvo korisnika.
Reč Kanban je japanskog porekla i povezana je sa proizvodnim procesom „just-in-time“ (JIT). Kanban je vizuelni sistem upravljanja poslom gde su podaci organizovani u tabeli ili tabli koja se naziva Kanban tabla, prikazujući tok posla prema planu i trenutni rad.
Tabla je podeljena na kolone koje predstavljaju tok posla. Kako razvojni rad napreduje, podaci se pomeraju na tabli i kreira se nova „kartica“ za novi zadatak.
Ova metoda vam pomaže da identifikujete probleme u proizvodnom procesu i da ih brzo rešite kako biste poboljšali efikasnost. Široko se koristi u poslovnim odeljenjima kao što su marketing, ljudski resursi itd.
Pogledajte detaljnu razliku između Kanban i Scrum metoda.
DevOps
DevOps je pristup koji spaja razvoj softvera (Dev) i operacije (Ops). Predstavlja skup kulturnih filozofija, alata i praksi koje pomažu timovima da brzo isporučuju visokokvalitetne usluge i aplikacije.
DevOps ima za cilj da skrati životni ciklus razvoja softvera uz istovremeno obezbeđivanje kontinuirane isporuke proizvoda. Mnogi DevOps koncepti proizilaze iz agilnih metodologija, te ga mnogi razmatraju prilikom odabira agilnog pristupa za svoje projekte.
CI/CD
Kontinuirana integracija (CI) je metodologija razvoja softvera u kojoj programeri neprestano integrišu sve izmene koda u zajednički repozitorijum pre pokretanja automatskih build-ova i testova.
CI ima za cilj da brže pronađe i popravi greške i probleme kako bi poboljšao kvalitet softvera i smanjio vreme validacije. Takođe, omogućava brzu objavu novih ažuriranja softvera kako bi se rešilo više problema i ispunili zahtevi korisnika.
Kontinuirana isporuka (CD) je, takođe, metoda razvoja softvera u kojoj tim nastoji da automatski gradi, testira i pripremi izmene koda za objavljivanje. To je nastavak kontinuirane integracije koji uključuje primenu izmena koda u test ili produkciju kada se faza izgradnje završi.
ScrumBan
Kao što ime sugeriše, ScrumBan kombinuje Scrum i Kanban. Ova hibridna metodologija je razvijena kako bi zadovoljila potrebe timova koji žele da smanje grupisanje poslova i koriste sistem zasnovan na povlačenju.
ScrumBan nudi Scrum strukturu i fleksibilnost i mogućnosti vizuelizacije Kanban-a. Na taj način se dobija svestrano i lakše upravljanje radom i zadovoljavaju potrebe proizvodnje bez preopterećenja.
Lean razvoj softvera (LSD)
Lean je agilni okvir koji se koristi u razvoju softvera, pomažući u racionalizaciji i optimizaciji procesa razvoja uz minimiziranje otpada.
LSD eliminiše nepotrebne korake u dizajnu i razvoju softverskog sistema, što značajno štedi vreme i novac. Takođe podstiče saradnju među članovima tima kako bi se optimizovao tok posla bez zabune ili sukoba. LSD uključuje sedam principa, koji obuhvataju određene taktike, procese i prakse. Oni su:
- Brza isporuka
- Izgradnja kvaliteta
- Eliminisanje otpada
- Optimizacija toka posla
- Timski rad
- Odlaganje obaveza
- Podsticanje učenja
Ova metoda je pogodna za projekte bilo koje veličine, jer je veoma prilagodljiva i skalabilna.
Ekstremno programiranje (XP)
Razvijeno početkom 1990-ih, Ekstremno Programiranje (XP) se fokusira na poboljšanje timskog rada, stvaranje zdravog radnog okruženja i podsticanje učenja.
U ovoj metodi, programeri rade u parovima, gde jedan piše kod, dok drugi posmatra. Takođe redovno menjaju uloge tokom sprintova. Ovo omogućava kontinuirane povratne informacije i provere kvaliteta koda i programerskih veština.
XP, takođe, podstiče stalne povratne informacije od klijenata timovima programera i laku komunikaciju unutar tima.
Na ovaj način, timovi se brzo prilagođavaju promenama kada je to potrebno. Ova agilna metodologija je pogodna za projekte koji uključuju promenljive zahteve i tehničke rizike.
Dizajn razmišljanje
Dizajn razmišljanje je efikasan pristup u kojem se proizvod dizajnira i implementira na osnovu potreba i zahteva krajnjih korisnika ili klijenata. Takođe olakšava prilagođavanje promenljivim tehnološkim i industrijskim uslovima.
Ovaj proces je iterativan, priznajući da postoji više načina da se reši dati problem, a ne samo jedan. Takođe promoviše inovacije, eksperimentisanje i posmatranje.
Timovi su ovde otvoreni za sugestije i ideje, birajući najbolji pristup koji može ponuditi najbolje rezultate za projekat, kako bi stvorili kvalitetan proizvod i ispunili očekivanja klijenata ili korisnika.
Crystal
Crystal je veoma fleksibilna agilna metodologija koja timu nudi slobodu da samostalno razvija procese. Prvenstveno se fokusira na pojedince i njihove interakcije, a ne samo na alate i procese. Zbog toga je komunikacija jedan od ključnih elemenata.
Crystal se razlikuje u nekoliko varijanti:
- Crystal Clear za timove do 8 ljudi
- Crystal Yellow za 10-20 ljudi
- Crystal Orange za 20-50 ljudi
- Crystal Red za 50-1000 ljudi
Ova agilna metodologija ima za cilj isporuku proizvoda najvišeg kvaliteta, fokusirajući se na interakciju, timski rad i simbiozu koji donose veću efikasnost. Timovi pronalaze najbolji način da pristupe projektu na osnovu izazova i specifičnih zahteva.
Disciplinovani Agilni (DA)
Disciplined Agile (DA) je agilna metodologija koja pomaže timovima da pojednostave organizacione kontrole, poboljšaju agilnost poslovanja i postignu bolji finansijski uspeh.
DA vam omogućava da pronađete najbolji način da se prilagodite zahtevima projekta i stilu rada vašeg tima, tako da se procesi mogu brže završiti, bez zabune.
Ovde tim koristi jednostavnije i lakše procese kako bi brže postigao svoje ciljeve. Sličan je Crystal metodi i može da se odluči za hibridni pristup koji kombinuje koncepte Scrum-a, Kanban-a i XP-a.
Metoda dinamičkog razvoja sistema (DSDM)
Metoda dinamičkog razvoja softvera (DSDM) je pogodna za projekte sa strogim rokovima i budžetima. Često se fokusira na isporuku proizvoda u ciklusima, uključujući inkrementalni i iterativni pristup razvoju.
DSDM vam omogućava da dizajnirate plan koji uključuje kontinuiranu i ranu isporuku proizvoda. Takođe daje prioritet prikupljanju povratnih informacija od klijenata tokom procesa razvoja i potvrđivanju ispunjavanja zahteva u skladu sa očekivanjima.
Razvoj vođen karakteristikama (FDD)
Razvoj vođen karakteristikama (FDD) je inkrementalna, klijent-centrična i iterativna agilna metodologija. Cilj mu je da proizvodi softver koji radi dosledno i često. Uključuje sledeće faze:
- Izrada modela projekta
- Kreiranje liste funkcija koje treba dodati proizvodu
- Planiranje po karakteristikama
- Dizajniranje proizvoda prema karakteristikama
- Izgradnja proizvoda po karakteristikama
Kao što ime sugeriše, ova metoda je vođena vrednim karakteristikama koje čine proizvod jedinstvenim na tržištu i korisnim za krajnje korisnike. Navedeni koraci pomažu timovima da stabilno napreduju i da bez problema postignu svoje ciljeve. Pogodna je za veće timove.
Razvoj vođen ponašanjem (BDD)
Razvoj vođen ponašanjem (BDD) je agilna metodologija orijentisana na ponašanje. Njegovi koncepti podstiču saradnju između članova tima sa ili bez mnogo tehničkog znanja o razvoju softvera.
Uključuje pisanje test primera i karakteristika koje sadrže projektne zahteve i kriterijume za prihvatanje o tome kako sistem mora da se ponaša.
Na taj način možete bolje da razumete potrebe za funkcionalnošću i lako da započnete projekat i predvidite sledeće korake i rezultate. BDD pomaže timovima da jasno saopšte svoje potrebe, rano uoče probleme i razviju robustan softverski sistem.
Skalirani agilni okvir (SAFe)
Skalirani agilni okvir (SAFe) uključuje skup organizacionih tokova posla i modela za implementaciju agilnosti na nivou preduzeća. To je fleksibilan okvir koji omogućava centralizovano donošenje odluka, kako bi se povećala efikasnost razvoja.
Ova agilna metodologija primenjuje snagu DevOps-a i Lean-a kako bi omogućila organizacijama da brže kreiraju inovativne proizvode višeg kvaliteta.
Scrum velikih razmera (LeSS)
LeSS je agilan okvir koji omogućava skaliranje Scrum-a za različite timove koji rade na proizvodu. Cilj mu je da eliminiše otpad i smanji složenost razvojnog procesa.
Ova metoda primenjuje ideje i principe Scrum-a u velikim poslovnim okruženjima, kroz definisane vodiče i pravila. Takođe je poznat po svojoj jednostavnosti, ali je efikasan u pomaganju timovima da postignu bolji kvalitet proizvoda i zadovolje potrebe klijenata.
Adaptivni razvoj softvera (ASD)
ASD koristi koncept kontinuiranog prilagođavanja promenama umesto borbe protiv njih. U ASD-u, timovi koriste Speculate, Learn and Collaborate, dinamički ciklus razvoja softvera posvećen većoj saradnji između klijenata i timova i kontinuiranom učenju.
ASD prati nelinearni iterativni životni ciklus razvoja softvera u kojem se svaki ciklus ponavlja i može se menjati tokom izvođenja drugog ciklusa. Takođe se fokusira na brzu proizvodnju visokokvalitetnih proizvoda sa nižim troškovima održavanja.
Agilno upravljanje projektima
Agilno upravljanje projektima je delotvoran i iterativan agilni pristup. Cilj mu je upravljanje razvojnim projektima sa kontinuiranim objavljivanjima. Pored toga, timovi koji koriste ovu metodu prikupljaju i koriste povratne informacije od klijenata u svakoj iteraciji.
Agilno upravljanje projektima nudi mnoge prednosti timovima, kao što su ubrzanje brzine razvoja, prilagođavanje tržišnim trendovima i poboljšana saradnja.
Druge agilne metodologije uključuju:
- PRINCE2 Agile
- Upravljanje portfoliom zasnovano na dokazima (EB PfM)
- Upravljanje portfoliom (MoP)
- PMI-Agile sertifikovani profesionalac (PMI-ACP)
- Nexus
- Projekat Half Double
- Scrum at Scale
- AgileSHIFT
I mnoge druge.
Zaključak
Agilni pristup nudi mnoge prednosti timovima u pogledu produktivnosti, kvaliteta proizvoda i zadovoljstva klijenata. Postoji mnogo agilnih metodologija koje možete odabrati na osnovu potreba vašeg projekta. Stoga, razmotrite svaku od njih kako biste odlučili koja najviše odgovara vašem projektu.
Zatim pogledajte online kurseve za upravljanje projektima.