Agile i vodopad: odabir metodologije upravljanja projektima. Vodopad (kaskadni, sekvencijalni) model

  • Programiranje,
  • Razvoj mobilnih aplikacija
  • Razvoj softverskih proizvoda poznaje mnoge vrijedne metodologije - drugim riječima, uspostavljene najbolje prakse. Izbor ovisi o specifičnostima projekta, proračunskom sustavu, subjektivnim preferencijama, pa čak i temperamentu upravitelja. U članku su opisane metodologije s kojima se redovito susrećemo u Edisonu.

    1. "Model vodopada" (kaskadni model ili "vodopad")


    Jedan od najstarijih, uključuje uzastopno prolaženje faza, od kojih svaka mora biti u potpunosti dovršena prije nego što započne sljedeća. Model Waterfall olakšava upravljanje projektom. Zahvaljujući svojoj krutosti, razvoj se odvija brzo, trošak i rok su unaprijed određeni. Ali ovo je dvosjekli mač. Waterfall model će dati izvrsne rezultate samo u projektima s jasno i unaprijed definiranim zahtjevima i načinima njihove provedbe. Ne postoji način da se napravi korak unatrag; testiranje počinje tek nakon što je razvoj dovršen ili gotovo dovršen. Proizvodi razvijeni prema ovom modelu bez opravdanog izbora mogu imati nedostatke (popis zahtjeva se ne može prilagoditi u bilo kojem trenutku), koji postaju poznati tek na kraju zbog strogog slijeda radnji. Trošak unošenja promjena je visok jer zahtijeva čekanje dok se cijeli projekt ne završi da bi se on pokrenuo. Međutim, fiksni trošak često nadmašuje nedostatke pristupa. Ispravljanje nedostataka uočenih tijekom izrade je moguće, a prema našem iskustvu zahtijeva jedan do tri dodatna dogovora uz ugovor s malom tehničkom specifikacijom.

    Koristeći model vodopada, izradili smo mnoge projekte od nule, uključujući samo razvoj tehničkih specifikacija. Projekti o kojima je pisano na Habréu: srednji - , mali - .

    Kada koristiti metodologiju vodopada?

    • Tek kada su zahtjevi poznati, shvaćeni i zabilježeni. Nema proturječnih zahtjeva.
    • Nema problema s dostupnošću programera s potrebnim kvalifikacijama.
    • U relativno malim projektima.

    2. "V-model"


    Naslijedio strukturu "korak po korak" od kaskadnog modela. Model u obliku slova V primjenjiv je za sustave kojima je posebno važan neprekinuti rad. Na primjer, aplikacijski programi u klinikama za praćenje pacijenata, integrirani softver za upravljačke mehanizme za hitne zračne jastuke u vozilima i tako dalje. Posebnost modela je što je usmjeren na temeljitu provjeru i testiranje proizvoda koji je već u početnoj fazi projektiranja. Faza testiranja provodi se istovremeno s odgovarajućom fazom razvoja, na primjer, jedinični testovi se pišu tijekom kodiranja.

    Primjer našeg rada temeljenog na V-metodologiji je mobilna aplikacija za europskog mobilnog operatera koja štedi troškove roaminga tijekom putovanja. Projekt se provodi prema jasnoj specifikaciji, ali uključuje značajnu fazu testiranja: praktičnost sučelja, funkcionalnost, opterećenje, uključujući integraciju, koja bi trebala potvrditi da nekoliko komponenti različitih proizvođača radi zajedno stabilno, krađa novca i kredita je nemoguće.

    Kada koristiti V-model?

    • Ako je potrebno temeljito testiranje proizvoda, tada će V-model opravdati svoju inherentnu ideju: validaciju i provjeru.
    • Za male i srednje projekte gdje su zahtjevi jasno definirani i fiksni.
    • U uvjetima dostupnosti inženjera s potrebnim kvalifikacijama, posebno ispitivača.

    3. "Inkrementalni model" (inkrementalni model)

    U inkrementalnom modelu, kompletni zahtjevi sustava podijeljeni su u različite sklopove. Terminologija se često koristi za opisivanje sastavljanja softvera korak po korak. Odvija se nekoliko razvojnih ciklusa, a zajedno čine životni ciklus s više vodopada. Ciklus je podijeljen na manje, lako kreirane module. Svaki modul prolazi kroz faze definiranja zahtjeva, dizajna, kodiranja, implementacije i testiranja. Postupak razvoja prema inkrementalnom modelu uključuje puštanje proizvoda s osnovnom funkcionalnošću u prvoj velikoj fazi, a zatim sekvencijalno dodavanje novih funkcija, tzv. Proces se nastavlja sve dok se ne stvori kompletan sustav.

    Inkrementalni modeli se koriste tamo gdje su pojedinačni zahtjevi za promjenama jasni i mogu se lako formalizirati i implementirati. U našim smo projektima njime izradili čitač DefView, a potom i mrežu elektroničkih knjižnica Vivaldi.

    Kao primjer, opisat ćemo suštinu jednog inkrementa. zamijenio DefView. DefView je povezan s jednim poslužiteljem dokumenata i sada se može povezati s mnogima. Server za pohranu podataka instaliran je na mjestu institucije koja želi emitirati svoj sadržaj određenoj publici, koja izravno pristupa dokumentima i pretvara ih u traženi format. Pojavio se korijenski element arhitekture - središnji Vivaldi poslužitelj, koji djeluje kao objedinjena tražilica za sve poslužitelje za pohranu instalirane u različitim institucijama.

    Kada koristiti inkrementalni model?

    • Kada su osnovni zahtjevi za sustav jasno definirani i razumljivi. U isto vrijeme, neki detalji mogu biti poboljšani tijekom vremena.
    • Potrebno je rano uvođenje proizvoda na tržište.
    • Postoji nekoliko rizičnih značajki ili ciljeva.

    4. "RAD Model" (model brzog razvoja aplikacija ili brzi razvoj aplikacija)

    RAD model je vrsta inkrementalnog modela. U RAD modelu, komponente ili funkcije razvija nekoliko visoko kvalificiranih timova paralelno, poput nekoliko mini-projekata. Vremenski okvir jednog ciklusa je strogo ograničen. Stvoreni moduli se zatim integriraju u jedan radni prototip. Sinergija vam omogućuje da klijentu vrlo brzo prezentirate nešto što radi na pregled kako biste dobili povratnu informaciju i napravili promjene.

    Model brzog razvoja aplikacije uključuje sljedeće faze:

    • Poslovno modeliranje: definiranje popisa protoka informacija između različitih odjela.
    • Modeliranje podataka: informacije prikupljene u prethodnoj fazi koriste se za određivanje objekata i drugih entiteta potrebnih za kruženje informacija.
    • Modeliranje procesa: Tokovi informacija povezuju objekte radi postizanja razvojnih ciljeva.
    • Izradite aplikaciju: koristi automatizirane alate za sklapanje za pretvaranje CAD modela u kod.
    • Testiranje: testiraju se nove komponente i sučelja.
    Kada se koristi RAD model?

    Može se koristiti samo s visoko kvalificiranim i visoko specijaliziranim arhitektima. Proračun projekta je velik za plaćanje ovih stručnjaka zajedno s cijenom gotovih automatiziranih alata za montažu. RAD model se može odabrati s pouzdanim poznavanjem ciljanog poslovanja i potrebe za hitnom proizvodnjom sustava unutar 2-3 mjeseca.

    5. “Agilni model” (fleksibilna metodologija razvoja)


    U “agilnoj” metodologiji razvoja, nakon svake iteracije kupac može promatrati rezultat i shvatiti zadovoljava li ga ili ne. Ovo je jedna od prednosti fleksibilnog modela. Njegovi nedostaci uključuju činjenicu da je zbog nedostatka specifičnih formulacija rezultata teško procijeniti troškove rada i troškove potrebne za razvoj. Ekstremno programiranje (XP) jedna je od najpoznatijih primjena agilnog modela u praksi.

    Ova vrsta se temelji na kratkim dnevnim sastancima - “Scrum” i sastancima koji se redovito ponavljaju (jednom tjedno, jednom svaka dva tjedna ili jednom mjesečno), pod nazivom “Sprint”. Na dnevnim sastancima članovi tima raspravljaju o:

    • izvješće o obavljenom poslu od posljednjeg Scruma;
    • popis zadataka koje zaposlenik mora obaviti prije sljedećeg sastanka;
    • poteškoće koje su se pojavile tijekom rada.
    Metodologija je prikladna za velike projekte ili one koji imaju dug životni ciklus, uz stalno prilagođavanje tržišnim uvjetima. Sukladno tome, zahtjevi se mijenjaju tijekom procesa implementacije. Vrijedno je zapamtiti klasu kreativnih ljudi koji imaju tendenciju stvarati, smišljati i isprobavati nove ideje na tjednoj ili čak dnevnoj bazi. Agilni razvoj je najprikladniji za ovu vrstu menadžera. Razvijamo interne startupe tvrtke koristeći Agile. Primjer projekata klijenata je elektronički sustav medicinskog pregleda, stvoren za provođenje masovnih medicinskih pregleda u nekoliko minuta. U drugom odlomku ove recenzije naši američki partneri opisali su vrlo važnu stvar koja je temeljna za uspjeh u Agileu.

    Kada koristiti Agile?

    • Kada se potrebe korisnika neprestano mijenjaju u dinamičnom poslovanju.
    • Agilne promjene provode se po nižoj cijeni zbog čestih povećanja.
    • Za razliku od modela vodopada, agilni model zahtijeva samo malo planiranja da bi se projekt pokrenuo.

    6. “Iterativni model” (iterativni ili iterativni model)

    Iterativni model životnog ciklusa ne zahtijeva kompletnu specifikaciju zahtjeva za početak. Umjesto toga, stvaranje počinje implementacijom dijela funkcionalnosti, koji postaje temelj za definiranje daljnjih zahtjeva. Ovaj proces se ponavlja. Verzija možda nije savršena, glavna stvar je da radi. Razumijevajući konačni cilj, težimo tome da svaki korak bude učinkovit, a svaka verzija izvediva.

    Dijagram prikazuje iterativni "razvoj" Mona Lise. Kao što vidite, u prvoj iteraciji postoji samo skica Mona Lise, u drugoj se pojavljuju boje, a treća iteracija dodaje detalje, zasićenost i dovršava proces. U inkrementalnom modelu, funkcionalnost proizvoda se gradi dio po dio, proizvod se sastoji od dijelova. Za razliku od iterativnog modela, svaki komad predstavlja cjelovit element.

    Primjer iterativnog razvoja je prepoznavanje glasa. Prva istraživanja i priprema znanstvene aparature započela su davno, prvo u mislima, a potom i na papiru. Sa svakom novom iteracijom, kvaliteta prepoznavanja se poboljšavala. Međutim, savršeno prepoznavanje još nije postignuto, stoga problem još nije u potpunosti riješen.

    Kada je optimalno koristiti iterativni model?

    • Zahtjevi za konačni sustav jasno su definirani i unaprijed razumljivi.
    • Projekt je velik ili vrlo velik.
    • Glavni cilj mora biti definiran, ali detalji provedbe mogu se razvijati tijekom vremena.

    7. "Spiralni model" (spiralni model)


    “Spiralni model” sličan je inkrementalnom modelu, ali s naglaskom na analizi rizika. Dobro funkcionira za rješavanje kritičnih poslovnih problema kada je neuspjeh nekompatibilan s aktivnostima tvrtke, u kontekstu izdavanja novih linija proizvoda, kada su potrebna znanstvena istraživanja i praktična ispitivanja.

    Spiralni model uključuje 4 faze za svaki zavoj:

    1. planiranje;
    2. analiza rizika;
    3. oblikovati;
    4. evaluacija rezultata i, ako je kvaliteta zadovoljavajuća, prijelaz na novu fazu.
    Ovaj model nije prikladan za male projekte, razuman je za složene i skupe, primjerice, razvoj sustava protoka dokumenata za banku, kada svaki sljedeći korak zahtijeva više analize za procjenu posljedica nego programiranja. Na projektu razvoja EDMS-a za ODU Siberia SO UES, dva sastanka o promjeni kodifikacije odjeljaka elektroničke arhive oduzimaju 10 puta više vremena od kombiniranja dvije mape od strane programera. Vladini projekti u kojima smo sudjelovali započeli su pripremom stručne zajednice skupog koncepta, koji nipošto nije uvijek beskoristan, jer se isplati u nacionalnim razmjerima.

    Sažmimo


    Slajd pokazuje razlike između dvije najčešće metodologije.

    U suvremenoj praksi modeli razvoja softvera su multivarijantni. Ne postoji jedan pravi model za sve projekte, početne uvjete i modele plaćanja. Čak ni Agile, koji nam je toliko drag, ne može se svugdje primijeniti zbog nepripremljenosti pojedinih kupaca ili nemogućnosti fleksibilnog financiranja. Metodologije se dijelom preklapaju u sredstvima, a dijelom su slične jedna drugoj. Neki drugi koncepti korišteni su samo za promicanje vlastitih prevoditelja i nisu unijeli ništa novo u praksu.

    O razvojnim tehnologijama:
    .
    .
    .
    .

    U anketi mogu sudjelovati samo registrirani korisnici. Uđi, molim te.

    SAŽETAK

    na temu “Proces razvoja softvera. Koraci procesa"

    Izvedena:

    Student Averyanova Yu.

    Grupa I958

    Provjereno:

    Vasjukov V. M.

    Sankt Peterburg

    Uvod…………………………………….…..…..….…….…………………3

    1 Modeli procesa………………..………………..……….…………………..…5

    1.1 Vodopad (kaskadni model)…....….………….………......…………5

    1.2 Iterativni model……………..…...……….……….…......………8

    1.3 Spiralni model…………………….…..……..…….………..…..…..10

    2 koraka procesa………………………...….….………..……………….…….14

    2.1 Definicija i analiza zahtjeva……………………….………….…..14

    2.2 Dizajn………………………………….………………….……16

    2.3 Kodiranje……………………………...……………...………….……18

    2.4 Integracija………………………….…………..……………….….19

    2.5 Testiranje i otklanjanje pogrešaka…………………………………..……….…….19

    2.7 Implementacija……………………………..……………....…………………...20

    2.7 Održavanje i rad…………..………………..…………...22

    2.8 Dokumentacija………………………....……………..………………...23

    Zaključak……………………………………….……….……………….……24

    Popis korištene literature……………….…………………………..25

    Uvod

    Prije nego što prijeđemo izravno na opis procesa razvoja softvera i njegovih koraka, što je tema ovog eseja, potrebno je dati neke važne definicije. Za početak, trebali bismo navesti što je sam softver.

    Pod softverom odnosi se na skup programa koje izvršava računalni sustav. Ukratko rečeno, softver je skup posebnih programa koji olakšavaju proces pripreme zadataka za izvršavanje na računalu i organiziranje njihovog prolaska kroz stroj, kao i postupaka, opisa, uputa i pravila, zajedno sa svim dokumentacija povezana s ovim komponentama, koja se koristi u radu računalnog sustava.

    Softver također uključuje cjelokupno područje djelovanja u dizajnu i razvoju softvera, i to:

    1) tehnologija izrade programa;

    2) metode testiranja programa;

    3) metode za dokazivanje ispravnosti programa;

    4) analiza kvalitete programa;

    5) dokumentiranje programa;

    6) razvoj i korištenje softverskih alata koji olakšavaju proces dizajniranja softvera i još mnogo toga.

    Softver ima nekoliko namjena. Među njima:

    1) osiguravanje operativnosti računala;

    2) olakšavanje interakcije korisnika s računalom;

    3) skraćivanje ciklusa od postavljanja zadatka do dobivanja rezultata;

    4) povećanje učinkovitosti korištenja računalnih resursa.

    Softver vam omogućuje da:

    1) poboljšati organizaciju računalnog sustava kako bi se maksimalno iskoristile njegove mogućnosti;

    2) povećati produktivnost i kvalitetu rada korisnika;

    3) prilagoditi korisničke programe resursima određenog računalnog sustava;

    4) proširiti softver računalnog sustava.

    Nakon što je koncept "softvera" više nego objašnjen, možete prijeći na proces njegovog razvoja.

    Proces razvoja softvera- strukturu prema kojoj je strukturiran razvoj softvera.

    Postoji nekoliko modela takvog procesa, od kojih svaki opisuje drugačiji pristup u smislu zadataka i/ili aktivnosti koje se odvijaju tijekom procesa. Svi oni bit će razmotreni u okviru ovog rada.

    U ovom trenutku ne postoji univerzalni ili, moglo bi se reći, općeprihvaćeni proces razvoja softvera - skup tehnika, pravila i propisa primjerenih za softver bilo koje vrste, za bilo koju tvrtku, za timove bilo koje nacionalnosti. Svaki aktualni razvojni proces, unutar određenog projekta, ima značajan broj karakteristika i posebnosti. Važno je planirati radni proces prije pokretanja projekta, definirati uloge i odgovornosti u timu, proizvode rada, redoslijed sudjelovanja članova tima u njihovom razvoju i sl.

    Modeli procesa.

    Proces izrade softvera nije ujednačen. Ova ili ona metoda razvoja softvera, u pravilu, određuje neku dinamiku implementacije određenih vrsta aktivnosti, odnosno određuje model procesa.

    Model je dobra apstrakcija različitih metoda razvoja softvera, omogućujući da se one prikažu koncizno, koncizno i ​​informativno. Međutim, sama ideja o modelu procesa jedna je od najranijih u programskom inženjerstvu, kada se vjerovalo da je uspješan model najvažnija stvar koja pridonosi uspjehu razvoja. Kasnije se shvatilo da postoje mnogi drugi aspekti (načela upravljanja i razvoja, struktura tima, itd.) koji se moraju međusobno uskladiti. I počele su se razvijati metodologije integriranog razvoja. Međutim, postoji nekoliko klasičnih modela procesa koji su korisni u praksi.

    Vodopad (kaskada) model.

    Model vodopada (kaskadni model) predložio je 1970. Winston Royce i predviđa sekvencijalnu provedbu svih faza projekta u strogo utvrđenom redoslijedu.

    U Royceovom izvornom modelu vodopada sljedeće su se faze odvijale ovim redoslijedom:

    1. Definicija zahtjeva.

    2. Dizajn.

    4. Integracija.

    6. Instalacija.

    7. Podrška.

    Slika 1. – Faze kaskadnog modela.

    Slijedeći model vodopada, programer prelazi iz jedne faze u drugu strogo sekvencijalno. Prvo, faza "definicije zahtjeva" je potpuno dovršena, što rezultira popisom softverskih zahtjeva. Nakon što su zahtjevi u potpunosti definirani, dolazi do prijelaza na dizajn, tijekom kojeg se izrađuju dokumenti koji programerima detaljno opisuju kako i kako implementirati navedene zahtjeve. Nakon što je dizajn u potpunosti dovršen, programeri implementiraju dobiveni projekt. Sljedeća faza procesa uključuje integraciju pojedinačnih komponenti koje su razvili različiti timovi programera. Nakon završetka implementacije i integracije, proizvod se testira i otklanjaju se pogreške; U ovoj fazi uklanjaju se svi nedostaci koji su se pojavili u prethodnim fazama razvoja. Nakon toga slijedi implementacija softverskog proizvoda i njegova podrška - uvođenje novih funkcionalnosti i otklanjanje grešaka.

    Dakle, model vodopada podrazumijeva da se prijelaz iz jedne razvojne faze u drugu događa tek nakon potpunog i uspješnog završetka prethodne faze, te da nema prijelaza natrag ili naprijed ili preklapanja faza.

    Prednost ovog modela je što ograničava mogućnost povratka na proizvoljan korak unatrag, na primjer, od testiranja do analize, od razvoja do rada na zahtjevima itd. Uočeno je da bi takvi povrati mogli katastrofalno povećati troškove projekta i vrijeme njegovog završetka. Na primjer, ako se tijekom testiranja otkriju pogreške u dizajnu ili analizi, njihovo ispravljanje često dovodi do potpunog redizajna sustava. Ovaj je model dopuštao samo povratke na prethodni korak, na primjer, s testiranja na kodiranje, s kodiranja na dizajn itd.

    Nedostaci modela vodopada su:

    1) utvrđivanje faza i aktivnosti, što za posljedicu ima gubitak razvojne fleksibilnosti, posebice poteškoće u podržavanju iterativnog razvojnog procesa;

    2) zahtjev za potpuni završetak faze aktivnosti, konsolidacija rezultata u obliku detaljnog izvornog dokumenta (tehničke specifikacije, specifikacije dizajna); međutim, iskustvo u razvoju softvera pokazuje da je nemoguće u potpunosti dovršiti razvoj zahtjeva, dizajn sustava itd. – sve je to podložno promjenama; a razlozi za to nisu samo promjenjivo projektno okruženje, već i to što se mnoge odluke ne mogu točno odrediti i formulirati unaprijed, one se pojašnjavaju i specificiraju tek kasnije;

    3) integracija svih razvojnih rezultata događa se na kraju, zbog čega se problemi integracije osjećaju prekasno;

    4) korisnici i kupac ne mogu se upoznati s opcijama sustava tijekom razvoja, a rezultat vide tek na samom kraju; stoga ne mogu utjecati na proces kreiranja sustava, pa se stoga povećavaju rizici od nesporazuma između programera i korisnika/kupca;

    5) model je nestabilan na neuspjehe u projektnom financiranju ili preraspodjeli sredstava; započeti razvoj zapravo nema "usputne" alternative.

    Međutim, postoje modificirani modeli vodopada (uključujući Royceov vlastiti) koji imaju male ili čak značajne varijacije u odnosu na opisani proces.

    Iterativni model.

    Općeprihvaćeni model životnog ciklusa nije idealan jer samo vrlo jednostavni zadaci prolaze kroz sve faze bez ikakvih iteracija – vraćanja na prethodne korake proizvodnog procesa. Prilikom programiranja, na primjer, možete otkriti da je implementacija određene funkcije vrlo glomazna, neučinkovita i u sukobu s performansama koje se zahtijevaju od sustava. U ovom slučaju, potreban je redizajn i možda prerada specifikacija. Kada se razvijaju veliki netradicionalni sustavi, ponavljanje se događa redovno u bilo kojoj fazi životnog ciklusa, kako zbog pogrešaka i netočnosti učinjenih u prethodnim koracima, tako i zbog promjena u vanjskim zahtjevima za radne uvjete sustava.

    Ovo su motivi iza klasičnog iterativnog modela životnog ciklusa:

    Slika 2. – Faze iterativnog modela.

    Strelice koje idu prema gore označavaju povratak na prethodne faze, kvalificirajući se kao zahtjev za ponavljanje faze kako bi se ispravila otkrivena pogreška. U tom smislu, može se činiti čudnim prijeći iz faze "Rad i održavanje" u fazu "Testiranje i otklanjanje pogrešaka". Činjenica je da su pritužbe tijekom rada sustava često dane u takvom obliku da ih je potrebno dodatno provjeriti. Kako bi razumjeli o kojim se pogreškama govori u pritužbi, programerima je korisno prvo reproducirati situaciju korisnika kod kuće, tj. obavljati radnje koje se obično smatraju testiranjem.

    Na temelju specifičnosti projekta i zahtjeva kupaca, programeri mogu odabrati što žele dobiti kao rezultat sljedeće iteracije:

    1. Kompletan sustav s ograničenom funkcionalnošću, spreman za industrijsku upotrebu.

    2. Funkcionalni i arhitektonski prototipovi, koji nisu prikladni za proizvodnu upotrebu, ali omogućuju procjenu funkcionalnog dizajna, korisničkog sučelja, izvedbe itd.

    Klasični iterativni model apsolutizira mogućnost povratka na prethodne faze. Međutim, ova okolnost odražava značajan nedostatak razvoja softvera koji se provodi u tradicionalnom stilu: želju da se unaprijed predvidi sve situacije korištenja sustava i nemogućnost da se to postigne u velikoj većini slučajeva. Sve takve metodologije programiranja usmjerene su samo na minimiziranje povrata. Ali to ne mijenja bit: pri povratku uvijek morate ponoviti konstrukciju onoga što se već smatralo spremnim.

    Iterativni model ima brojne prednosti u odnosu na model vodopada:

    1. Implementacija najvažnijih funkcija može se dovršiti tijekom prvih nekoliko iteracija. Nakon njihovog završetka (dakle puno prije završetka cijelog projekta), korisnik će moći početi koristiti sustav.

    2. Korisnici već na početku projekta imaju priliku ocijeniti funkcionalnost sustava i njegovu prikladnost njihovim potrebama. Potrebne izmjene i dodaci mogu se napraviti tijekom sljedećih iteracija.

    3. Veliki projektni rizici mogu se (i trebaju) riješiti u prvim iteracijama. Na primjer, arhitektonska odluka koja dovodi do neprihvatljive izvedbe može se otkriti i ispraviti već u prvoj iteraciji.

    Važno je razumjeti da sve te prednosti dolaze samo uz pažljivo planiranje ponavljanja, inače je lako završiti s degradiranom verzijom modela vodopada.

    Spiralni model.

    Spiralni model predložio je Barry Boehm 1988. godine kako bi prevladao nedostatke modela vodopada, prvenstveno radi boljeg upravljanja rizicima. Prema ovom modelu, razvoj proizvoda se odvija u spirali, čiji je svaki zavoj određena faza razvoja. Za razliku od modela vodopada, spiralni model nema unaprijed zadani i obvezni niz zavoja; svaki zavoj može biti posljednji tijekom razvoja sustava; po njegovom završetku izrađuju se planovi za sljedeći zavoj. Konačno, revolucija je upravo faza, a ne vrsta aktivnosti, budući da se u modelu vodopada mogu odvijati mnoge različite vrste aktivnosti, odnosno model je dvodimenzionalan.

    Redoslijed poteza može biti sljedeći: na prvom koraku donosi se odluka o izvedivosti stvaranja PO, u sljedećoj fazi utvrđuju se zahtjevi sustava, zatim se dizajnira sustav itd. Okreti mogu imati i druga značenja.

    Svaki zavoj ima sljedeću strukturu (sektore):

    1) određivanje ciljeva, ograničenja i alternativa projekta;

    2) procjena alternativa, procjena i rješavanje rizika; moguće je koristiti izradu prototipova (uključujući izradu niza prototipova), simulaciju sustava, vizualno modeliranje i analizu specifikacija; fokusiranje na najrizičnije dijelove projekta;

    3) razvoj i testiranje – ovdje je moguće koristiti vodopadni model ili koristiti druge modele i metode razvoja softvera;

    4) planiranje sljedećih iteracija - analiziraju se rezultati, planovi i resursi za kasniji razvoj, donosi se (ili ne donosi) odluka o novom krugu; analizira ima li smisla nastaviti razvijati sustav ili ne; razvoj se može obustaviti, na primjer, zbog neuspjeha financiranja; spiralni model vam omogućuje da to učinite ispravno.

    Zasebna spirala može odgovarati razvoju neke softverske komponente ili uvođenju redovitih promjena u proizvod. Dakle, model može imati treću dimenziju.

    Spiralni model nije preporučljivo koristiti u projektima s niskim stupnjem rizika, s ograničenim proračunom, za male projekte. Osim toga, nedostatak dobrih alata za izradu prototipova također može učiniti spiralni model nezgodnim za korištenje.

    Boehm formulira 10 najčešćih (po prioritetu) rizika:

    1. Nedostatak stručnjaka.

    2. Nerealni rokovi i budžet.

    3. Implementacija neprikladne funkcionalnosti.

    4. Dizajniranje pogrešnog korisničkog sučelja.

    5. Perfekcionizam, nepotrebna optimizacija i brušenje detalja.

    6. Stalni tok promjena.

    7. Nedostatak informacija o vanjskim komponentama koje definiraju okruženje sustava ili su uključene u integraciju.

    8. Nedostaci u radu koji obavljaju vanjski (u odnosu na projekt) resursi.

    9. Nedovoljna izvedba dobivenog sustava.

    10. Jaz u kvalifikacijama stručnjaka u različitim područjima.

    Slika 3. – Faze spiralnog modela.

    Glavni problem spiralnog ciklusa je određivanje trenutka prijelaza u sljedeću fazu. Da bi se to riješilo, potrebno je uvesti vremenska ograničenja za svaku fazu životnog ciklusa. Prijelaz se odvija prema planu, čak i ako nisu dovršeni svi planirani poslovi. Plan je sastavljen na temelju statističkih podataka dobivenih u prethodnim projektima i osobnog iskustva programera.

    Spiralni model nije našao široku primjenu u industriji, a važan je, prije u povijesnom i metodološkom smislu: to je prvi iterativni model, ima lijepu metaforu - spiralu - i, kao i model vodopada, kasnije je korišten u stvaranju drugih modela procesa i razvojnih metodologija PO.

    Koraci procesa.

    Razvoj bilo kojeg programa, bilo da se radi o malom postupku obrade informacija primljenih na konzoli ili složenom softverskom proizvodu, sastoji se od nekoliko faza, čija je kompetentna implementacija preduvjet za postizanje dobrog rezultata. Strogo poštivanje vremenski testiranih faza razvoja softvera postaje temeljni kriterij za tvrtke koje se bave razvojem softvera i njihove klijente zainteresirane za dobivanje programa koji savršeno obavlja svoje funkcije.

    Pogledajmo glavne korake procesa:

    1. Definicija i analiza zahtjeva.

    2. Dizajn.

    3. Dizajn (također "implementacija" ili "kodiranje").

    4. Integracija.

    5. Testiranje i otklanjanje pogrešaka (također "provjera").

    6. Provedba.

    7. Održavanje i rad.

    8. Dokumentacija.


    Povezane informacije.


    Suprotnost između Agile i Waterfall nije toliko teoretska koliko je praktična. Odabir metodologije koja nije prikladna za vaš projekt će u najboljem slučaju značajno usporiti njegov razvoj, au najgorem će ga poslati na listu „TOP promašaja godine“.

    Fleksibilni i vodopadni modeli razvoja projekata (Agile i Waterfall, redom) među najpopularnijima su među ostalim metodologijama upravljanja. Nakon što ste proučili značajke vašeg konkretnog projekta i naoružani znanjem iz ovog članka, moći ćete s potpunim povjerenjem odgovoriti na pitanje: “Što je ispravno za moj posao - Agile ili Waterfall?”

    Okretan— sustav ideja i principa “agilnog” upravljanja projektima, na temelju kojih su razvijene popularne metode Scrum, Kanban i druge. Ključni princip je razvoj kroz kratke iteracije (cikluse), na kraju svake od kojih kupac (korisnik) dobiva radni kod ili proizvod.
    Slap— tehnika upravljanja projektom koja uključuje uzastopni prijelaz iz jedne faze u drugu bez preskakanja ili vraćanja na prethodne faze.

    Što je Agile

    Kao i druge popularne metodologije razvoja i upravljanja projektima, Agile se relativno nedavno pojavio u Sjedinjenim Državama. Za razliku od CPM-a i CCPM-a, za nastanak fleksibilne metodologije razvoja neposredno je zaslužna cijela grupa ljudi - 17 američkih informatičara iz države Utah. Zajedno s “Manifestom za agilni razvoj softvera”, u kojem je prvi put korišten izraz “agilni”, propisali su 12 principa agilnog razvoja.

    Njihova se bit svodi na sljedeće ključne točke koje određuju prirodu metodologije fleksibilnog razvoja:

    1. Ljudi i interakcije važniji su od procesa i alata
    2. Proizvod koji radi je važniji od sveobuhvatne dokumentacije
    3. Suradnja s kupcem važnija je od dogovora oko uvjeta ugovora
    4. Biti spreman na promjenu važnije je od pridržavanja prvobitnog plana.
    Agile je postao osnova za brojne agilne metodologije od kojih su najpoznatije Scrum, Lean i Extreme Programming.
    Scrum je fleksibilna razvojna metodologija temeljena na Agileu, koja se temelji na “sprintu” - periodu od 1 do 4 tjedna, na kraju kojeg treba dobiti radnu verziju proizvoda.
    Lean je metoda koja je proizašla iz Toyotinog proizvodnog sustava. Temelji se na filozofiji stalnog poboljšanja na svim razinama organizacije, gdje je jedan od ključnih pojmova vrijednost (ono što je kupac spreman platiti).
    Ekstremno programiranje (XP) jedna je od Agilnih metoda gdje važnu ulogu igraju periodične igre planiranja uz uključivanje korisnika. Omogućuje vam da odredite nedostatke prethodne iteracije, prioritet zadataka, željenu funkcionalnost proizvoda, uzimajući u obzir želje kupca.

    Prednosti i nedostaci Agile metode

    Prednosti metode uključuju:

    • kratke i jasne iteracije - razvojni ciklusi traju od 2 tjedna do 2 mjeseca, na kraju kojih kupac dobiva radnu verziju proizvoda
    • visok stupanj uključenosti izvođača projekta, organizatora i kupaca
    • proizvod rada je u prvom planu kao glavni pokazatelj napretka - to se može smatrati i plusom i minusom, jer se u ovom slučaju pred projektni tim postavljaju visoki zahtjevi za samoorganizacijom
    • minimiziranje rizika zahvaljujući fleksibilnom sustavu za uvođenje promjena.

    Metodologija ne izbjegava nedostatke koji organski "dopunjuju" njezine prednosti:

    • poticanje stalnih promjena na projektu: fleksibilnost razvoja proizvoda može dovesti do toga da nikada ne dođe do konačne verzije
    • povećani zahtjevi za kvalifikacijama i iskustvom tima: uz neposredno kreiranje proizvoda, tim mora analizirati moguće načine poboljšanja učinkovitosti vlastitog rada, kontinuirano razmjenjivati ​​informacije o projektu, biti motiviran i samoorganiziran. Nije uvijek moguće projektnim resursima privući takve stručnjake
    • filozofska priroda metodologije: Agile nije jasna uputa za djelovanje, već cijeli filozofski koncept. Tim ne može mehanički primijeniti mehaniku “agilnog” razvoja, potrebno je prihvatiti ključne principe sustava
    • poteškoće u izračunavanju ukupne količine rada: poticanje promjena i poboljšanja u konačnom proizvodu dovodi do promjenjive vrijednosti troška projekta.

    Što je vodopad

    Waterfall metodologija je zamisao Winstona Walkera Roycea, direktora Lockheed Software Technology Centera u Austinu, Teksas, SAD, pionira u području razvoja softvera.

    S metodologijom vodopada ispalo je isto kao i s mnogim izumima: Herbert Bennington 1956. i Hozier 1961. dali su svoj doprinos stvaranju metodologije, a Walker je iskoristio njihov razvoj, osiguravši slavu "tvorca vodopada". ” Pobjednici se ne sude...

    Model razvoja vodopada uključuje sekvencijalni proces, podijeljen u faze. Prijelaz na novu fazu moguć je tek nakon završetka prethodne.

    Walkerovo izvorno djelo "Upravljanje razvojem velikih softverskih sustava" opisuje 6 faza razvoja proizvoda, koje je 1985. Ministarstvo obrane SAD-a uvrstilo u standarde za rad s programerima softvera:

    1. Zahtjevi sustava i softvera: dokumentirano u PRD (Product Requirements Document).
    2. Analiza: utjelovljena u modelima, dijagramima i poslovnim pravilima.
    3. Oblikovati: interna softverska arhitektura i metode za implementaciju zahtjeva su u razvoju. Ne radi se samo o sučelju i izgledu softvera, već io njegovoj unutarnjoj strukturnoj logici.
    4. Kodiranje: programski kod je izravno napisan, integracija softvera je u tijeku.
    5. Testiranje: bug testeri (testeri) provjeravaju konačni proizvod, unose podatke o nedostacima u programskom kodu ili funkcionalnosti u trackere. U slučaju pogrešaka i dostupnosti vremena/financija, pogreške se ispravljaju.
    6. Operacije: proizvod se prilagođava različitim operativnim sustavima i redovito se ažurira kako bi se ispravile pogreške koje pronađu korisnici i dodala funkcionalnost. U sklopu pozornice osigurana je i tehnička podrška korisnicima.

    Toyota, koja je popularizirala Lean i Kanban metodologiju, do kraja 2000-ih koristila je vodopadni model razvoja softvera za potrebe proizvodnje.

    Prednosti i nedostaci vodopada

    Najveće prednosti Waterfall metodologije uključuju:

    • jasna i jednostavna struktura razvojnog procesa - to smanjuje prepreku ulasku timova
    • praktično izvješćivanje - lako možete pratiti resurse, rizike, utrošeno vrijeme i financije zahvaljujući strogoj fazi razvojnog procesa i detaljnoj projektnoj dokumentaciji
    • stabilnost zadataka - zadaci koji stoje pred proizvodom jasni su timu od samog početka razvoja, te ostaju nepromijenjeni tijekom cijelog procesa
    • procjena troškova i vremena projekta - vrijeme puštanja gotovog proizvoda, kao i njegov konačni trošak, mogu se izračunati prije početka razvoja.

    Među nedostacima metode vodopada su:

    • procesu nedostaje fleksibilnosti - tako da, ako projekt zahtijeva više vremena i financijskih resursa nego što je moguće, tada će faza testiranja ići pod nož. Prema istraživanju konzultantske grupe Rothman, trošak ispravljanja grešaka nakon puštanja proizvoda u promet je u prosjeku 20 puta veći nego tijekom potpunog višefaznog testiranja tijekom procesa razvoja
    • “otpor” na promjene - kruti okvir razvojnih faza i uvjet davanja samo gotovog proizvoda uvjetuju nemogućnost promjena tijekom razvoja
    • inercija - u prvim fazama, prognoza vremena i financijskih troškova može se promijeniti prema gore, ali nemoguće je promijeniti projekt u smjeru optimizacije troškova, promjena u funkcionalnosti ili konceptu prije puštanja gotovog proizvoda
    • povećan rizik - klasični sustav testiranja uključuje zasebno testiranje svake komponente projekta, uključujući i interakciju s drugima. Kod korištenja Waterfall-a testira se gotov proizvod.

    Djelomično su ispravljeni nedostaci modela razvoja vodopada u modifikacijama Vodopad: Sashimi, Vodopad s podprojektima i Model razvoja vodopada sa smanjenjem rizika.

    Sashimi ili model vodopada s fazama slojevitosti najpoznatiji je među njima. U njoj etape, kao i u izvornoj metodi, slijede jedna drugu, ali se istovremeno vremenski preklapaju.

    Vodopad s potprojektima je model u kojem radite s tri velika bloka: konceptualizacija, inženjering zahtjeva i arhitektonska struktura proizvoda. Zatim, za svaki od njih, prolazite kroz faze (potprojekte) detaljnog dizajna, kodiranja i testiranja. Na kraju, integracija svih komponenti provodi se u fazi testiranja sustava.

    Vodopadni razvojni model sa smanjenjem rizika modifikacija je klasičnog Vodopada, koji dodaje spirale smanjenja rizika koje dijele projekt na mini-projekte i odgovaraju jednom ili više ključnih rizika.

    usporedna tablica

    Slap

    Suština

    Fleksibilni razvojni model temeljen na
    iterativni principi

    Sustav razvoja vodopada koji se temelji na krutom slijedu procesa razvoja

    datum nastanka

    1956., 1961., 1970. godine

    Programeri

    Grupa IT stručnjaka (SAD)

    G. Bennington, Hozier, W. Walker Royce

    Načela primjene

    • najviši prioritet u zadovoljstvu kupaca
    • tijekom cijelog projekta, tim i kupac svakodnevno komuniciraju međusobno i jedni s drugima
    • radni proizvod je glavni pokazatelj napretka
    • posao se može povjeriti samo samoorganiziranom, motiviranom timu
    • Optimalni vremenski okvir za puštanje radnog proizvoda je od 2 tjedna do 2 mjeseca.
    • strogi slijed razvojnih faza
    • prijelaz na novu fazu - tek nakon uspješnog završetka prethodne
    • fiksni trošak proizvoda
    • kupac nije uključen u izravan proces razvoja
    • promjene se mogu napraviti tek nakon što je cijeli razvojni proces završen.

    profesionalci

    1. visoka razina interakcije između članova projektnog tima
    2. brz rezultat (radni kod) kao rezultat “sprintanja”
    3. poticanje promjena i poboljšanja proizvoda tijekom njegovog razvoja
    4. neposredno uključivanje kupca u proces rada.
    1. jasan i precizan dijagram tijeka rada
    2. sposobnost izračunavanja točne količine resursa utrošenih na projekt
    3. ne zahtijeva troškove za uspostavljanje komunikacije između svih članova tima.

    minusi

    • rizik od beskrajnih promjena proizvoda
    • Veća ovisnost o razini kvalifikacija i iskustvu tima
    • Gotovo je nemoguće točno izračunati konačnu cijenu projekta.
    • prioritet formalnog pristupa slijedu procesa rada
    • nemogućnost unošenja izmjena od strane kupca prije završetka razvoja proizvoda
    • u slučaju nedostatka resursa, kvaliteta projekta trpi zbog smanjenja faze testiranja.

    Praktičke tvrtke

    Unilever, niz banaka (Alfa banka, Home Credit, Raiffeisen banka itd.)

    Cisco Ericsson AB, Toyota (do 2010.)

    Prikladno za vas ako...

    1. Na projektu radi iskusan, visokokvalificiran tim
    2. radite na startupu
    3. potrebno brzo dobiti radnu verziju proizvoda
    4. kupac djeluje kao partner, a ne investitor
    5. Proizvod se razvija u području koje je podložno stalnim promjenama.
    1. Većina ili sav posao na projektu angažiran je vanjskim izvođačima
    2. imate jasan koncept proizvoda koji želite dobiti
    3. niste ograničeni u vremenu i resursima za izradu proizvoda
    4. Stvaranje proizvoda ili poslovanja temelji se na poštivanju strogog slijeda zadataka.

    Neće uspjeti ako...

    • niste spremni trošiti dodatna sredstva na uspostavljanje svakodnevne stabilne komunikacije između svih sudionika u procesu
    • proizvod mora biti izrađen do određenog roka
    • proračun projekta je strogo ograničen
    • potrebna vam je detaljna dokumentacija svih razvojnih procesa.
    • želite stvoriti inovativan proizvod ili veliki projekt
    • niste sigurni u koncept predloženog projekta
    • financijska sredstva nisu ključni limitator u vašem projektu.

    Presuda

    Agile i Waterfall dvije su potpuno različite metodologije za razvoj i upravljanje projektima. Svaki od njih iznjedrio je desetke modifikacija i metoda, "skrojenih" za određeni format projekta.

    Fleksibilni model bit će idealan za IT tvrtke, startupe, projekte u inovativnim područjima
    Vodopadni model ne gubi tlo pod nogama u građevinskim projektima ili projektima gdje je ključno ograničenje trajanje projekta, a ne financije

    Uzimajući u obzir karakteristike svake metode i vašeg poslovanja, kao i na temelju kriterija rizika, vremena i uključenosti dionika, možete samostalno odrediti učinkovitu metodologiju.

    Danas ćemo se pozabaviti temom i razgovarati o alatima koje menadžer koristi u svom radu.

    Na oznake

    Metodologija

    Metodologija u upravljanju projektima je standardizacija provedbe projekta. Standardizacija ovdje podrazumijeva opis koraka rada, kontrolne liste za provjeru – svojevrsni nacrt u koji možete ubaciti projekt, a pod nadzorom menadžera on će otploviti do završetka i gotovog proizvoda. Budući da je svaki projekt jedinstven u jednom ili drugom stupnju, metodologija nije lijek za sve;

    Postoji veliki izbor metodologija upravljanja projektima - mogu se koristiti samo u jednoj tvrtki ili mogu biti globalne. Metodologije dolaze u obliku alata (kao što je Agile), ili dolaze u obliku velike knjige sa skupom tih alata (PMBoK, također metodologija).

    U svom životu koristio sam i nastavljam koristiti dvije najpopularnije metodologije - Waterfall ("vodopad" / "kaskada") i Agile (i njegov izdanak - Scrum), o kojima će biti riječi. Radi širenja vidika čitatelja, ispričat ću vam o drugim stvarima koje znam. Ako čitač radi s digitalom, onda će “waterfall” i “edgy” biti dovoljni za oči - možete ih koristiti u poslu, životu, pričati ih prijateljima i strancima, na susretima, dok ispijate smoothie s pametnim pogledom.

    Odakle su došle metodologije?

    Naravno, ništa ne dolazi niotkuda, a Petar Veliki nije čuo ništa o agilu. Metodologije izmišljaju raznorazne organizacije i udruge, gdje pametni dečki skupljaju svoje probleme na hrpe, zatim shvaćaju kako su se mogli izbjeći, a zatim dijele rješenja s običnim ljudima poput mene, na primjer. Ponekad se metodologije promišljaju na državnoj razini - one također rješavaju probleme i prikupljaju najbolje prakse (u pristojnom društvu, nemojte to tako reći) u knjige i priručnike.

    Agile i vodopad

    Danas ćemo uglavnom govoriti o ove dvije životinje. Nakon što pročitate ovaj odjeljak, možete s pouzdanjem otići i tražiti najbolju poziciju voditelja projekta u najvećoj odgovarajućoj organizaciji u gradu.

    Slap

    Vodopad, kaskadna metodologija je tradicionalna, najpopularnija i najlogičnija metodologija upravljanja projektima. U svom čistom obliku može raditi u vrlo jednostavnim projektima. Recimo da trebate posaditi drvo. "Po vodopadu" implementacija projekta izgleda ovako:

    • Kupite sadnicu
    • Iskopati rupu
    • U nju stavite sadnicu
    • Pospite zemljom
    • Zalijte drvo

    Svaka faza u takvom projektu slijedi prethodnu i ne može se završiti prije prethodne - ovo je "vodopad". Ovo se također preklapa s "metodom kritičnog puta", ali o tome ću govoriti u zasebnom članku - podsjeti me.

    Radim na projektima u području razvoja web stranica i mobilnih aplikacija. Faze razvoja takvih projekata vodopada približno su iste:

    • Napišite tehničke specifikacije
    • Nacrtajte dizajn
    • Napravite dizajn
    • Kodiraj
    • Test
    • Započnite projekt

    Za kretanje po vodopadu morate imati jasnu tehničku specifikaciju i razumjeti korake koji slijede jedan za drugim. Iz prakse ću reći da je nerealno raditi prema čistom vodopadu - negdje se uvijek pokaže da je nešto propušteno, negdje se trebate vratiti na prethodnu fazu i to učiniti paralelno s trenutnom fazom. Međutim, što je tehnička specifikacija jasnija, to je manja vjerojatnost da će projekt otići ustranu. Za projekte u kojima je prihvatljivo "ići postrance" tu je Agile.

    Okretan

    "Agilno" (ili "agilno", ili "kakva šteta" - ima mnogo cool naziva) odnosi se na vrstu fleksibilne metodologije. Njegova glavna razlika od vodopada je proizvod rada u svakoj fazi rada i nejasna završnica projekta. U primjeru s istim stablom, gdje je svaka faza sekvencijalna, ova agila neće raditi: dobro, kupili ste sadnicu, ali koja je svrha? Agile ima prilično širok raspon primjena, no najviše je zaživio u IT-u. A njegove vrste i podvrste pokrivale su susjedna područja debelim filmom - poslovno planiranje, upravljanje proizvodima i tako dalje i tako dalje.

    Kao primjer "agilnog" rada, zamislimo složeniji projekt. Neka ovo bude građevinski projekt. Zadatak: sagradite kuću u kojoj možete živjeti.

    Faze proizvodnje (zamislimo da svaka faza traje točno jedan sprint):

    • Izgradite kutiju sa zidovima i stropom
    • Izgradite krov i pokrijte zidove žbukom
    • Ugradite vrata i prozore u kuću
    • Osigurati struju, vodu, kanalizaciju
    • Postavite laminat i tapete
    • Ponijeti namještaj i TV
    • Pusti mačku unutra

    Vodopad ili Agile?

    Nijedna metodologija nije lijek za sve. Najbliža analogija koju mogu povući je s kontrolnim listama - ovo je tako cool stvar (čitaj @salakhmir) koja puno pomaže u radu, ali iz nekog razloga ne radi svima. Bilo koji alat je samo alat i neće raditi sam za sebe. Zamislite da stavite lopatu na zemlju i čekate da se nešto dogodi – pa ovdje, da bi se nešto dogodilo, morate nešto učiniti.

    Uglavnom koristim hibridnu metodologiju (i waterfall i agile), gdje postoji tehnička specifikacija, faze su jasne, ali dolazi do odstupanja tijekom projekta. Izvana se može činiti da se događa kaos, glavna stvar je staviti lice za razmetanje - sve ide po planu. Odstupanja često idu u zasebne projekte, ali češće ostaju unutar trenutnog i dovode do povećanja vremena (budžeta) projekta. Ovo se čini lošim, ali element politike u radu s ljudima (radimo s ljudima, a ne s web stranicama, sjećate se?) ne može se isključiti.

    Organizacije upravljanja metodologijom

    Te organizacije, uglavnom, upravljaju razvojem metodologija - razvijaju ih isti menadžeri kakvi ćete i vi jednog dana postati. Nema ih mnogo na svijetu, ali svi su iznimno važni - za novac i vrijeme možete dobiti njihove diplome i otići na intervjue, impresionirati anketare.

    PMI

    Project Management Institute je naš prijatelj. Imam posebnu naklonost prema ovoj organizaciji - imaju moćnu zajednicu i dobru bazu. Organizacija se nalazi u SAD-u, postoji od 1969. godine, a njihove standarde upravljanja projektima priznaje ANSI.

    Glavni proizvod PMI-a je zbirka znanja o upravljanju projektima PMBoK; šesti dio objavljen je u jesen 2017. Tijelo znanja sadrži detaljne nacrte izvedbe projekta - od prikupljanja zahtjeva dionika do zatvaranja projekta. Preporučam barem čitanje knjige - u njoj možete čitati o vodopadu s agilom, te o metodi kritičnog puta i metodi brzog prolaza - temama jednog od mojih budućih članaka.

    Osim PMBoK-a, PMI ima sljedeće osnovne stvari: standarde upravljanja portfeljem (projektom) i programima, standarde upravljanja rizicima i Scrum Guide. PMBoK nije informatička knjiga, metode iz koda primjenjive su na gotovo sve projekte (za neke vrste postoje zasebna proširenja) - općenito morate imati.

    PMI ima hrpu različitih vrsta certifikata, s koracima i napomenama. PMI certifikati dobro su poznati i popularni. Na primjer, PMP - project management professional - na neki način potvrđuje da možete upravljati projektima. Nemoguće je dobiti certifikate organizacije bez iskustva, jer su oni više potvrda nego vaša sveučilišna diploma koju ste dobili tijekom studiranja.

    IPMA

    International Project Management Association je ista organizacija kao i PMI, samo europska (Švicarska) i o njoj se manje čuje. Posluje od 1965. godine, a izvorno se zvao Internet (kada od Interneta nije bilo ni traga).

    Nije jasno što oni tamo rade. Pa, oni certificiraju menadžere. Izdaju vlastite časopise – sami i pod predstavništvima. Oni zarađuju novac. I slava B-gu.

    PRINC2

    “Prince” (PROjekti u kontroliranim okruženjima). Metodologija se pojavila 1989. u Velikoj Britaniji (i potom se odvojila). Ključna značajka metodologije je korist koju će procesi unutar projekta donijeti projektu. Minimiziranje rizika, održavanje kvalitete projekta. PRINCE2 projekti također imaju složenu organizacijsku strukturu s projektnim odborom. Inače, takvi projekti, kao i projekti po drugim metodologijama, imaju početak, faze i završetke - sve je poznato i poznato.

    P2M

    "Vodič za upravljanje projektima i programima za poduzetničke inovacije." Japanska metodologija upravljanja projektima ovaj je put svježa, iz 1999. godine. Ključ je ovdje naglasak na inovacijama i upravljanju očekivanjima dionika. Nisam to izbliza upoznao, nisam to proučavao, ne mogu dati ocjenu.

    Microsoft Solutions Framework

    “Vlasničku” metodologiju upravljanja projektima, MSF, izumio je i predstavio Microsoft 1994. godine. Poseban je po tome što je razvijen izravno za razvoj softvera, a nije prilagođen, što se može reći za isti PMBoK. Izvana izgleda kao popis internih preporuka (poput one u vašem uvodu) za voditelje projekata. Čak se ni Microsoft ne koristi u čistom obliku - dodaju, na primjer, isti agilni. Wikipedia ima informativan članak o ovom okviru, molimo idite tamo - ima više od onoga što vam mogu reći.

    Sažetak

    Ništa nije lijek, ali je moguće i potrebno razumjeti principe i iz njih uzeti ono najbolje. Dok sam pisao članak, krajičkom oka naišao sam na članak o Stahanovu - postojao je takav tip pod Sovjetima, korišten je u sovjetskoj propagandi produktivnosti. I on je radio po metodologiji (vadio je ugljen), ali je jednog dana shvatio da kad bi malo presložio ljude i pokrenuo neke procese paralelno, mogao bi bolje raditi. Tako sam sebi zaradio stranicu na Wikipediji. Ovdje je isto - testirajte, primijenite i poboljšajte (zatim podijelite). Sve s čime se susrećete, svi savjeti su hipoteze koje treba provjeriti. Uživaj!

    U sljedećem dijelu pokušat ću govoriti o planiranju zadataka i vremena, uključujući i svoj mikromenadžment. Članak bi trebao pomoći ne samo menadžerima početnicima, već i onima koji rade s njima. Ako imate dovoljno strasti, članak će biti objavljen ovaj tjedan. Pišite pisma.

    Glavni članak: Model vodopada

    Model životnog ciklusa vodopada model vodopada) predložio je 1970. Winston Royce. Omogućuje sekvencijalnu provedbu svih faza projekta u strogo utvrđenom redoslijedu. Prijelaz na sljedeću fazu znači potpuni završetak rada u prethodnoj fazi. Zahtjevi utvrđeni u fazi formiranja zahtjeva strogo su dokumentirani u obliku tehničkih specifikacija i evidentirani su tijekom cjelokupnog razvoja projekta. Svaka faza kulminira izdavanjem cjelovitog skupa dokumentacije koja je dovoljna da razvoj nastavi drugi razvojni tim.

    Faze projekta prema modelu vodopada:

    1. Formiranje zahtjeva;

    2. Dizajn;

    3. Provedba;

    4. Ispitivanje;

    5. Provedba;

    6. Rad i održavanje.

    Prednosti:

    · Potpuna i usklađena dokumentacija u svakoj fazi;

    · Lako je odrediti vrijeme i troškove projekta.

    Mane:

    U modelu vodopada prijelaz iz jedne faze projekta u drugu pretpostavlja da je rezultat (output) prethodne faze potpuno točan. Međutim, netočnost bilo kojeg zahtjeva ili njegovo netočno tumačenje rezultira činjenicom da je potrebno „vratiti se” u ranu fazu projekta, a potrebna prerada ne samo da izbacuje projektni tim izvan rasporeda, već često dovodi do kvalitativnog povećanje troškova i, eventualno, do prekida projekta u obliku u kojem je izvorno zamišljen. Prema suvremenim stručnjacima, glavna zabluda autora modela vodopada je pretpostavka da projekt jednom prolazi kroz cijeli proces, da je dizajnirana arhitektura dobra i laka za korištenje, da je izvedbeni dizajn razuman, a da su pogreške u implementaciji lako eliminirati testiranjem. Ovaj model pretpostavlja da će sve greške biti koncentrirane u implementaciji, pa se stoga njihovo uklanjanje događa ravnomjerno tijekom testiranja komponenti i sustava. Stoga model vodopada nije baš realan za velike projekte i može se učinkovito koristiti samo za stvaranje malih sustava.

    Iterativni model

    Alternativa sekvencijalnom modelu je takozvani iterativni i inkrementalni razvojni model. iterativni i inkrementalni razvoj, IID), koji je također dobio od T. Gilba 70-ih godina. Ime evolucijski model. Ovaj model se također naziva iterativni model I inkrementalni model .

    IID model uključuje razbijanje životnog ciklusa projekta u niz iteracija, od kojih svaka nalikuje "mini-projektu", uključujući sve razvojne procese koji se primjenjuju na stvaranje manjih dijelova funkcionalnosti u usporedbi s projektom kao cjelinom. Svrha svake ponavljanja- dobivanje radne verzije programskog sustava, uključujući funkcionalnost definiranu integriranim sadržajem svih prethodnih i trenutnih iteracija. Rezultat završne iteracije sadrži sve potrebne funkcionalnosti proizvoda. Dakle, sa završetkom svake iteracije, proizvod dobiva inkrement - prirast- svojim sposobnostima koje se posljedično razvijaju evolucijski. Iterativnost, inkrementalnost i evolucija u ovom su slučaju izraz istog značenja u različitim riječima s malo različitih gledišta.


    Kako kaže T. Gilb, “evolucija je tehnika osmišljena da stvori privid stabilnosti. Šanse za uspješnu izradu složenog sustava bit će najveće ako se implementira u nizu malih koraka i ako svaki korak sadrži jasno definiran uspjeh, kao i mogućnost „vraćanja“ na prethodnu uspješnu fazu u slučaju neuspjeha. . Prije nego što pokrene sve resurse namijenjene stvaranju sustava, programer ima priliku primiti povratne signale iz stvarnog svijeta i ispraviti moguće greške u projektu.”

    IID pristup ima i svoje negativne strane, koje su zapravo naličje prednosti. Prvo, dugo je nedostajalo cjelovito razumijevanje mogućnosti i ograničenja projekta. Drugo, kada ponavljate, morate odbaciti dio prethodno obavljenog posla. Treće, savjesnost stručnjaka pri obavljanju poslova i dalje je u opadanju, što je psihološki objašnjivo, jer kod njih stalno dominira osjećaj da se “poslije ionako sve može prepraviti i poboljšati”.

    U većini suvremenih razvojnih metodologija (RUP, MSF, XP) implementirane su različite varijante iterativnog pristupa.

    Spiralni model

    Spiralni model(Engleski) spiralni model) razvio je Barry Boehm sredinom 1980-ih. Temelji se na klasičnom Demingovom ciklusu PDCA (plan-do-check-act). Kod korištenja ovog modela softver se izrađuje u nekoliko iteracija (spiralnih zavoja) metodom prototipa.

    Svaka iteracija odgovara izradi fragmenta ili verzije softvera, pri čemu se pojašnjavaju ciljevi i karakteristike projekta, procjenjuje kvaliteta dobivenih rezultata i planira rad sljedeće iteracije.

    U svakoj iteraciji ocjenjuje se sljedeće:

    · rizik prekoračenja projektnih rokova i troškova;

    · potreba za izvođenjem još jedne iteracije;

    · stupanj potpunosti i točnosti razumijevanja zahtjeva sustava;

    · izvedivost prekida projekta.

    Važno je razumjeti da spiralni model nije alternativa evolucijskom modelu (IID model), već posebno razvijena verzija. Nažalost, spiralni model se često ili pogrešno koristi kao sinonim za evolucijski model općenito, ili se (ne manje pogrešno) naziva potpuno neovisnim modelom uz IID.

    Posebnost spiralnog modela je posebna pažnja posvećena rizicima koji utječu na organizaciju životnog ciklusa i kontrolnih točaka. Boehm formulira 10 najčešćih (po prioritetu) rizika:

    1. Nedostatak stručnjaka.

    2. Nerealni rokovi i budžet.

    3. Implementacija neprikladne funkcionalnosti.

    4. Dizajniranje pogrešnog korisničkog sučelja.

    5. Perfekcionizam, nepotrebna optimizacija i brušenje detalja.

    6. Stalni tok promjena.

    7. Nedostatak informacija o vanjskim komponentama koje definiraju okruženje sustava ili su uključene u integraciju.

    8. Nedostaci u radu koji obavljaju vanjski (u odnosu na projekt) resursi.

    9. Nedovoljna izvedba dobivenog sustava.

    10. Jaz u kvalifikacijama stručnjaka u različitim područjima.

    Današnji spiralni model definira sljedeći opći skup kontrolnih točaka:

    1. Koncept poslovanja (COO) - koncept (korištenje) sustava;

    2. Ciljevi životnog ciklusa (LCO) - ciljevi i sadržaj životnog ciklusa;

    3. Life Cycle Architecture (LCA) - arhitektura životnog ciklusa; ovdje je moguće govoriti o spremnosti konceptualne arhitekture ciljnog programskog sustava;

    4. Initial Operational Capability (IOC) - prva verzija proizvoda koja se stvara, prikladna za probni rad;

    5. Konačna operativna sposobnost (FOC) – gotov proizvod, postavljen (instaliran i konfiguriran) za stvarni rad.

    Najnoviji materijali u odjeljku:

    Borodinska bitka je vrhunac romana “Rat i mir”. Borodinska bitka u djelu Rat i mir
    Borodinska bitka je vrhunac romana “Rat i mir”. Borodinska bitka u djelu Rat i mir

    26. kolovoza 1812. odlučena je sudbina Rusije i ruskog naroda. Borodinska bitka L.N. Tolstoja je trenutak najveće napetosti, trenutak...

    Pilav od govedine korak po korak recept
    Pilav od govedine korak po korak recept

    Zanima vas kako pravilno skuhati pilav od junetine? Danas je ovo omiljeno jelo u svakoj obitelji. Često možete pronaći recepte za uzbečki ili...

    Nagađa ako misli.  Proricanje sudbine na kartama
    Nagađa ako misli. Proricanje sudbine na kartama

    DIJELJENO Kad smo zaljubljeni, često se sjetimo predmeta naše simpatije i, naravno, zainteresiramo se je li naš osjećaj obostran i kakav...