Životni ciklus projekta
Osnovni životni ciklusi projekta
Životni ciklus projekta (Project Life Cycle) je skup sukcesivnih ili preklapajućih faza projekta određenih prirodom projekta, oblašću i potrebama za upravljanjem projektom. PLC definiše faze projekta, ključne tačke (npr. Phase-gates, Milestones ili Kill-point), pripadajuće aktivnosti, ulaze, izlaze i ključne elemente, te na taj način pomaže u struktuiranom upravljanju projektom. U najširem smislu, pod ovaj segment se mogu uklopiti i životni ciklusi (kontinualnih) isporuka (Continuous Delivery Life Cycle), sa Continuous Integration i Continuous Deployment praksama.
Uzimajući u obzir različitost projekata i industrija u kojima se realizuju, od posebne važnosti je razumevanje životnog ciklusa projekta. Generalno, odnosno uopšteno gledano, životni ciklus projekta može biti prediktivni (plan-driven), iterativni, inkrementalni i adaptivni (agilni):
- Prediktivni tip koristi prednosti koje su poznate i dokazane. Predstavlja više tradicionalni pristup, s najvećim delom planiranja unapred, a zatim sledi sekvencijalno izvršavanje. Na ovaj način se smanjuje neizvesnost i složenost, što omogućava segmentaciju posla u sekvence
- Iterativni tip omogućava korišćenje povratnih informacija o delimično završenom ili nedovršenom poslu, a u cilju poboljšanja i/ili modifikacije tog dela posla
- Inkrementalni tip omogućava isporučivanje podskupa proizvoda/posla, koji korisnik može odmah početi koristiti
- Agilni (adaptivni) tip koristi osobine iterativnih i inkrementalnih tipova uz visoku adaptivnost promenama
Bitno je istaći da je suštinska razlika životnih ciklusa u tome kada se vrši planiranje i u kojoj meri.
Kontinuum životnog ciklusa projekta (PMI)
U zavisnosti od tipa životnog ciklusa mogu se posmatrati i razlike u klasičnom smislu, odnosno u kontekstu obima, troškova i vremena.
Generički prediktivni Životni ciklus projekta (PMI)
Ilustrativni prikaz životnih ciklusa projekta
Disciplined Agile Life Cycles (DAD Life Cycles)
Fokus DAD-a je na isporuci (Delivery). Puni životni ciklus sistema/proizvoda kreće od početne ideje za proizvod, preko konstrukcije i isporuka, do operacija i podrške, a često ima mnogo iteracija s isporukama.
A high-level view of the Full Delivery Life Cycle
DA definiše više životnih ciklusa. Svaki tim je u jedinstvenoj situaciji, te se ostavlja mogućnost izbora između životnih ciklusa:
Software Development Life Cycle (SDLC)
SDLC modeli se najčešće definišu prema različitim pristupima koji se koriste u razvoju softvera. Odabir odgovarajućeg tipa SDLC-a zavisi od specifičnih potreba projekta, ciljeva, veličine, složenosti, vrste softvera, vremena itd. Postoji više različitih modela SDLC-a, a u najčešće korišćene spadaju:
- Model vodopada (Waterfall): Ovaj pristup je linearan i sledi jasno definisanu sekvencu faza, gde se jedna faza završava pre nego što se započne sledeća. Često koristi u projektima gde se ne očekuju čestr promenr zahteva te kada je potrebno (i neophodno) obimnije planiranje.
- V-model: Predstavlja varijaciju Waterfall SDLC-a u kome se naglašava testiranje tokom celog procesa razvoja. U ovom pristupu, faze razvoja softvera i faze testiranja su paralelne, što pomaže u ranom otkrivanju problema i smanjuje rizik.
- Inkrementalni model: U ovom pristupu, softver se razvija u malim delovima koji se nazivaju inkrementi. Svaki inkrement se razvija i testira, a zatim se integriše s prethodnim inkrementima kako bi se stvorio funkcionalni softver. Inkrementalni model se često koristi u projektima gde je potrebno brzo isporučiti funkcionalnosti, ali s druge strane omogućiti i dodavanje novih funkcionalnosti tokom procesa razvoja.
- Spiralni model: Zasniva se na ponavljajućem ciklusu faza koji omogućava fleksibilnost i prilagodljivost promenama. Svaki ciklus faza je nazvan spiralom, a svaka spirala predstavlja korak napred u razvoju softvera.
- Prototip model: Ovaj model se koristi kada je potrebno brzo stvoriti funkcionalni prototip softvera. U ovom pristupu, razvija se kratak i jednostavan softverski prototip koji se koristi za testiranje i dobijanje povratnih informacija od korisnika. Na osnovu povratnih informacija, razvija se konačna verzija softvera. Često se koristi u projektima gde su potrebne nove i inovativne ideje, gde korisnički zahtevi nisu jasni ili se često menjaju.
TBC…..