Životni ciklus softvera. Kaskadni model (vodopad)

Zbog paralelnog stvaranja klijentskog i poslužiteljskog dijela. Međutim, ostvarivanje prednosti ove arhitekture pokazalo se vrlo teškim zbog dramatično povećane složenosti izgradnje aplikacija u heterogenom okruženju. Uz inherentnu složenost izrade aplikacija u heterogenom okruženju, postoji tendencija da aplikacije s vremenom postaju sve složenije. U takvim uvjetima, proces razvoja informacijskih sustava tradicionalnom kaskadnom metodom može se dugo oduljiti, a rezultat nije zajamčeno da će zadovoljiti potrebe kupca.

Nedostaci kaskadne metode su odmah vidljivi. Glavni je sekvencijalno izvođenje faza. Na primjer, programiranje se može započeti tek nakon završetka analize i dizajna. To dovodi do velikih gubitaka vremena, ne dopušta brzi razvoj prototipova softverskog sustava. Načelo kaskade nije u skladu s iterativnom prirodom razvoja softverskog sustava, budući da u zadnjim fazama može postati potrebno unijeti promjene u odluke donesene u prethodnim fazama.

Može se dodati da je u slučaju klasičnih metoda (npr. kada je područje A predstavljalo kaskadnu organizaciju razvoja i klasične metode projektiranja integralnih IC-ova, a područje B - PI pristup u klasičnoj verziji), ABS područje bilo praktički prazno. .

U početku se vrijednost bruto prometa robe poduzeća oporezivala višestupanjskom (kaskadnom) ili takozvanom kumulativnom metodom, u kojoj se porez naplaćivao u svakoj fazi proizvodnje ili prometa robe (isključujući promet unutar poduzeća). Takav je sustav djelovao u Njemačkoj, Belgiji, Austriji i drugim državama sve do kraja 1960-ih. Ponovljeno oporezivanje porezno je opterećivalo robu i otežavalo organiziranje plaćanja jer je zahtijevalo korištenje velikog broja dokumenata. Jednostavniji način oporezivanja, na koji je većina država prešla, jest naplata poreza na promet jednokratno - u fazi proizvodnje, veleprodaje ili maloprodaje, ali po višoj stopi. Jednokratno oporezivanje prometa robe u proizvodnji, s jedne strane, sputava centralizaciju industrijskih i trgovačkih poduzeća, jer se visina poreza povećava zbog oporezivanja ne samo proizvodnje, već i proizvodnje.

Model I. Ansoffa je metoda adaptivnog pretraživanja pri formuliranju strategije poduzeća. Kao što naziv sugerira, metoda koristi postupak pretraživanja za razvoj strategije. To se događa kaskadnim pristupom na početku, utvrđuju se opća pravila odlučivanja koja se dorađuju u daljnjim fazama procesa, dok se ciljevi postavljeni na početku analize mogu promijeniti. To je prilagodljivost pristupa.

Kao što naziv implicira, ova metoda koristi postupak pretraživanja koji vodi do formuliranja strategije. Njegovo Posebnost- kaskadni pristup prvo formulira moguća pravila odlučivanja (u grubim terminima), zatim se ona sekvencijalno razjašnjavaju u skladu s fazama donošenja odluka. To omogućuje rješavanje istog problema nekoliko puta, svaki put dobivajući sve preciznije rezultate. U prvoj fazi trebate odabrati jednu od alternativa želite li diverzificirati tvrtku ili ne. Druga faza definira širok raspon proizvoda i tržišta. U trećoj fazi slijedi daljnji odabir prema

Trenutno brojna poduzeća u industriji galvanizacije koriste zastarjelu opremu koja se ne može automatizirati. To dovodi do značajnog gubitka vode za pranje. Uvođenjem naprednijih poluautomatiziranih i automatiziranih sustava za kaskadne operacije pranja može se smanjiti potrošnja svježe vode za 30-35%. Smanjenjem potrošnje svježe vode ujedno će se riješiti problem poboljšanja kvalitete premaza, jer je zbog velike potrošnje vode za pranje teško kvalitetno pripremiti vodu za galvansku proizvodnju. U automobilskoj industriji, u instrumentaciji, traktorskoj i poljoprivrednoj tehnici, metode kaskadnog ispiranja već su korištene, što dovodi do smanjenja potrošnje svježe vode za 35-40%. U poduzećima teške, energetske i transportne tehnike, gradnje alatnih strojeva, uglavnom se koriste stacionarni galvanski vodovi, koji troše veliku količinu svježe vode.

Da bi se otklonio ovaj nedostatak, B. Boehm je predložio spiralni pristup. Leži u činjenici da se razvoj projekta odvija, takoreći, u spirali, au svakom njegovom zavoju gore navedeni koraci se izvode uzastopno, pri čemu se projekt dorađuje. Ovaj pristup nadopunjuje kaskadnu metodu elementima iteracije. Ali također ima niz značajnih nedostataka, koji uključuju

U nekim konstruktivnim metodama, rast mreže događa se istovremeno s obukom, vidi npr. STEPNET, algoritam pločica, burst, neuronska stabla, kaskadna korelacija.

Pravi izbor veličina mreže je važna. Dobar i, štoviše, vrlo mali model jednostavno je nemoguće izgraditi, a preveliki će se previše prilagoditi podacima o treningu i slabo približiti stvarnom problemu. Obično započnite s malom mrežom i postupno je povećavajte dok se ne postigne željena točnost. U ovom slučaju, obuka mreža u svakom koraku provodi se neovisno. U drugom pristupu, koristi se algoritam samorasta, kada se novi elementi dodaju u mrežu prema potrebi, nakon čega se ponovno odvija obuka (Stepnet, vidi). Spominjemo i metodu kaskadne korelacije (vidi ). U osnovi destruktivnog pristupa stoji potpuno druga ideja: prvo se uzima mreža prevelikog volumena i iz nje se uklanjaju veze i čvorovi koji ne utječu značajno na rješenje (vidi, na primjer, ). Pretpostavlja se da je gornja granica veličine poznata.

Dizajn paralelnih komponenti. Kao kompromis između krute kaskadne sheme i apsolutno proizvoljnog razvoja IC fragmenata korištenjem prototipa, predložena je metoda faznog pregleda, koja je varijanta cikličke sheme. Ovaj kompromis zadržava korištenje strukturnih modela i dokumentacije postupaka sustava koji se razvija, te pretpostavlja da nema ograničenja na fleksibilnost u dobivanju rezultata.

Poznata logistička jednadžba je najjednostavnija metoda za simulaciju modela kaskadne turbulencije. Logističku jednadžbu karakterizira put od uređenog do kaotičnog ponašanja kroz udvostručenje perioda. Ova se jednadžba često koristi kao primjer kako se nasumični (statistički govoreći) rezultati mogu dobiti iz jednostavne determinističke jednadžbe. - Činjenica da logistička jednadžba daje antiperzistentne rezultate nije toliko poznata. To ga čini neprikladnim modelom za tržišta kapitala, iako može biti dobar model za volatilnost.

Povećati tehničke i ekonomske. indikatori U. f. i poboljšati kvalitetu koncentrata pridonijet će razvoju nove metode obogaćivanja velikih klasa ugljena u teškim medijima, obogaćivanju malih klasa ugljena u strojevima za odvodnjavanje, hidrociklonima i koncentracijskim stolovima, intenziviranju procesa flotacije i uvođenju novih netoksičnih, visokoučinkovitih flotacijskih reagensa, novih metoda za intenziviranje uređaja za sušenje, uvođenje shema vodnog mulja s kaskadnim korištenjem vode i regeneracijom vode za pranje, kompleksna mehanizacija i automatizacija proizvodnje i procesa. U tijeku je rad na proizvodnji nove opreme visokih performansi otporne na habanje s povećanim ud. izvođenje. Razvijaju se sustavi za upravljanje radom tvornica pomoću elektroničkih računala.

Slabo strukturirani zadaci, uz kvantitativno formalizirajuće elemente, sadrže nepoznate (zbog niza faktora koje je teško uzeti u obzir) ili kvantitativno nemjerljive komponente. Neizvjesnost polustrukturiranih zadataka, u pravilu, povezana je s formalizacijom višestranih dugoročnih radnji i njihovom faznom ili kaskadnom provedbom. Takvi zadaci uključuju, primjerice, stvaranje udruga neovisnih dioničkih društava, poboljšanje upravljanja međuregionalnim proizvodnim sustavom (razvoj hijerarhijskih razina vodstva i nove strukture upravljačkog aparata), normalizaciju strukture i uvjeta proizvodnje itd. Takvi se zadaci rješavaju metodologijom analize sustava, kombinirajući ekonomsko-matematičke metode sa simulacijskim modeliranjem. Značajna uloga pridaje se kvalitativnim metodama analize i vrednovanja rješenja.

Razvoj softver nije poput tradicionalnih inženjerskih znanosti. Metodologija je ono što razvojni programeri koriste za raščlanjivanje rada na upravljive progresivne korake gdje se svaki može pregledati kako bi se osigurala kvaliteta. Timovi rade zajedno s klijentom na stvaranju gotovog softverskog proizvoda koristeći jednu od metodologija razvoja softvera. Najpopularniji od njih su spiralni, vodopad ili kaskadni model (Vodopad); RAD ili Rapid Application Development; Agilni model, ili fleksibilni i iterativni, ili iterativni model. Postoje i druge mogućnosti, ali u ovom ćemo članku razmotriti samo model vodopada ili kaskade i također istražiti njegove prednosti i nedostatke. Odmah objasnimo da je to slijed određenih koraka, a njegova posebnost je u tome što je nova faza nemoguća dok se prethodna ne završi.

Povijest modela vodopada

Metodologija u svom tradicionalnom obliku ostavlja malo prostora za neočekivane promjene. Ako razvojni tim nije prevelik, a projekti su predvidljivi, tada Waterfall može osigurati da budu dovršeni na vrijeme.

Model razvoja vodopada postoji više od četrdeset godina. Prvi put je opisan u članku W. Roycea iz 1970. kao jedan od prvih službenih modela za razvojni proces. Opisivan je kao neučinkovit za velike projekte razvoja softvera, ali nitko nije zabranio njegovu upotrebu za male. Gotovo pola stoljeća nakon što je otkrivena, ova tehnika je još uvijek relevantna u današnjem poslovnom svijetu. Nazivaju ga zastarjelim modelom i tretiraju ga s prezirom zbog zastarjelosti tradicionalnog pristupa upravljanju projektima. Ali Waterfall je koristan i predvidljiv pristup ako su zahtjevi fiksni, dobro dokumentirani i jasni, ako je tehnologija razumljiva i kada projekt ne treba puno vremena da se dovrši. U ovom slučaju, model vodopada može pružiti predvidljiviji krajnji rezultat za određeni proračun, vremenski okvir i opseg posla.

Što je model razvoja vodopada?

Model Waterfall može se opisati kao linearni, sekvencijalni razvoj projekta, gdje se procesi neprestano kreću od zahtjeva do dizajna, zatim do implementacije, provjere i implementacije, nakon čega slijedi tekuće održavanje. Vjeruje se da kaskadni model životni ciklus nastao je zahvaljujući W. Royceu, iako je on sam koristio iterativni razvojni model.

Glavni naglasak u razvoju Waterfall modela je na planiranju, vremenskom rasporedu, ciljevima, proračunima i na kraju implementaciji cijelog sustava kao jedinstvene cjeline. Glavne prednosti ovdje su jednostavno planiranje i implementacija unaprijed i unazad.

Opis modela vodopada

U usporedbi s drugim metodologijama, Waterfall se više od ostalih usredotočuje na jasan, definiran skup koraka. Izvorni model sastojao se od pet faza. Često se opisuje kao linearni sekvencijalni model životnog ciklusa. To znači da slijedi jednostavnu strukturu faza, gdje rezultati svake faze napreduju na sljedeću razinu razvoja. Glavni koraci su:

  1. Prikupljanje zahtjeva i izrada dokumentacije.
  2. Dizajn i inženjering sustava.
  3. Provedba.
  4. Testiranje i implementacija.
  5. podrška.

Timovi moraju završiti cijeli korak prije nego što prijeđu na sljedeći, tako da ako nešto nije spremno do određenog roka, to postaje odmah vidljivo. Također, za razliku od Six Sigme ili Scruma, Waterfall ne zahtijeva certificiranje ili posebnu obuku za voditelje projekata ili zaposlenike.

Kritika modela vodopada

Kaskadni model životnog ciklusa informacijskog sustava kritiziran je zbog nefleksibilnosti nakon što je svaka faza dovršena i zbog odgađanja sposobnosti korisnika da pruži povratnu informaciju. Međutim, ova metodologija može dobro funkcionirati za manje projekte s ograničenim proračunom. Često se uspoređuje s jednom dobro poznatom metodologijom životnog ciklusa projekta, PRINCE2, koju je izradila vlada Ujedinjenog Kraljevstva. Ova metodologija se još uvijek koristi u javnom sektoru. Jedna od ključnih razlika između PRINCE2 i Waterfall Life Cycle Modela je ta što potonji zahtijeva pisani opis svih zahtjeva od samog početka, jer ih kasnije može biti teško revidirati. Prije početka izrade bilo kojeg koda, oni moraju biti precizno definirani i fiksirani. Ovo je važna prednost modela životnog ciklusa vodopada.

Prednosti i mane modela vodopada

Budući da je tehnička dokumentacija nužan dio početne faze razvoja zahtjeva, to znači da svi članovi tima jasno razumiju ciljeve projekta. Novi programeri mogu brzo razumjeti pravila stvaranja koda i uključiti se u tijek rada bez ikakvih problema. Ako se koristi vodopadni model životnog ciklusa informacijskog sustava ili projekta, izvođenje u fazama osigurava održavanje discipline.

Svaki korak ima dobro definiranu početnu točku i zaključak, što olakšava praćenje napretka. To pomaže smanjiti bilo kakvo odstupanje projekta od dogovorenog vremenskog okvira. U ovom modelu, za razliku od spirale, softver se promatra kao cjelina. Stoga, pod uvjetom da su ispunjeni svi zahtjevi, radi učinkovitije. Nastavimo li uspoređivati ​​kaskadni i spiralni model životnog ciklusa, možemo zaključiti da je prvi univerzalniji i da se može primijeniti u raznim područjima.

Faza pregovora o zahtjevima

Još jedna prednost modela životnog ciklusa vodopada je ta da se troškovi mogu procijeniti s prilično visokim stupnjem točnosti nakon što se identificiraju svi zahtjevi. Ako se primjenjuje, to znači da su u prvoj fazi svi testni scenariji već detaljno opisani u funkcionalnoj specifikaciji, što proces testiranja čini jednostavnijim i transparentnijim. Također, čak i prije razvoja softvera, dizajn je razrađen do detalja, čime su potrebe i rezultat jasni svima.

Jedna od sjajnih stvari u korištenju vodopada jest da ste od samog početka predani krajnjem proizvodu ili krajnjem rezultatu. Stoga timovi moraju izbjegavati odstupanje od cilja. Za manje projekte gdje je namjera prilično jasna, ovaj korak čini tim svjesnim općeg cilja od samog početka, smanjujući mogućnost da se izgubi u detaljima kako projekt napreduje. Waterfallov pristup vrlo je metodičan, zbog čega naglašava važnost jasne komunikacije u svakoj fazi. U procesu razvoja softvera na svakom novom koraku pojavljuju se novi ljudi. Stoga je važno težiti dokumentiranju informacija tijekom životnog ciklusa projekta.

Nedostaci modela životnog ciklusa vodopada

Potencijalni razvojni problemi mogu se istražiti i riješiti tijekom faze projektiranja. Razrađuju se i alternativna rješenja i biraju optimalna. Sve se to događa prije početka projekta. Mnoge organizacije cijene pozornost na dokumentaciju od samog početka, jer to također znači da ne bi trebalo biti iznenađenja s konačnim proizvodom. Ali u praksi je rijetko moguće bez izmjena. Klijentima je često teško razumjeti vlastite potrebe u smislu funkcionalne specifikacije samo u fazi zahtjeva. To znači da se mogu predomisliti nakon što vide konačni proizvod. Takav problem je teško riješiti. Ponekad se aplikacija mora gotovo u potpunosti preraditi.

Nedostatak fleksibilnosti u modelu vodopada

Još jedan nedostatak modela vodopada životnog ciklusa IP-a (ili projekta) je potencijalni nedostatak fleksibilnosti. Mogu se pojaviti pitanja u vezi s novim razvojem ili promjenama u zahtjevima koji su se dogodili od početnih konzultacija.

Prilagodbe zbog poslovnih planova ili utjecaja tržišta možda nisu uzete u obzir u planiranju. Također, dovršetak projekata može trajati dulje u usporedbi s korištenjem iterativne metodologije kao što je Agile.

Važne točke pri korištenju metodologije vodopada

Kada je riječ o razvoju vodopada, vrlo je važno da programeri softvera mogu učinkovito usmjeravati i savjetovati klijente kako bi kasnije riješili sve te probleme. Često je najkritičniji aspekt primjene vodopada modela životnog ciklusa taj da korisnici zapravo ne znaju što zapravo žele. U mnogim slučajevima, prava dvosmjerna interakcija između programera i klijenata ne događa se sve dok klijent ne vidi model na djelu.

Usporedbe radi, u Agile developmentu klijent može vidjeti fragmente radnog koda koji su nastali tijekom rada na projektu. Za razliku od Scruma, koji dijeli projekte u zasebne sprintove, Waterfall se uvijek fokusira na krajnji cilj. Ako vaš tim ima određeni cilj s jasnim datumom završetka, Waterfall eliminira rizik od propuštanja roka dok radite na njemu. Na temelju ovih prednosti i mana, razvoj vodopada općenito se preporučuje za projekte koji se vjerojatno neće promijeniti ili trebaju novi razvoj tijekom trajanja projekta.

  • programiranje,
  • Razvoj mobilnih aplikacija
  • Razvoj softverskih proizvoda poznaje mnoge vrijedne metodologije - drugim riječima, dobro 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 uzastopni prolazak faza, od kojih svaka mora biti u potpunosti dovršena prije početka sljedeće. Lako je upravljati projektom u modelu Vodopad. Zbog svoje krutosti, razvoj je brz, cijena i vrijeme su unaprijed određeni. Ali ovo je dvosjekli mač. Model vodopada dobro će funkcionirati samo za projekte s jasno definiranim zahtjevima i načinom na koji će se oni provoditi. 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 izmjena je visok jer morate čekati da cijeli projekt završi da biste ga pokrenuli. Međutim, fiksni trošak često nadmašuje nedostatke pristupa. Ispravak nedostataka uočenih tijekom izrade je moguć, a prema našem iskustvu zahtijeva jedan do tri dodatna dogovora uz ugovor s malom tehničkom specifikacijom.

    Uz pomoć modela vodopada stvorili smo mnoge projekte od nule, uključujući razvoj samo tehničkih specifikacija. Projekti o kojima piše na Habréu: srednji - , mali - .

    Kada koristiti metodologiju vodopada?

    • Tek kada su zahtjevi poznati, shvaćeni i fiksni. Nema proturječnih zahtjeva.
    • Nema problema s dostupnošću programera potrebnih kvalifikacija.
    • Za relativno male projekte.

    2. "V-model"


    Naslijedio strukturu korak po korak od modela vodopada. Model u obliku slova V primjenjiv je za sustave koji su posebno važni za nesmetan 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. Značajkom modela može se smatrati da je usmjeren na temeljitu provjeru i testiranje proizvoda, koji je već u početnim fazama dizajna. Faza testiranja provodi se istodobno s odgovarajućom razvojnom fazom, 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 jasnom TOR-u, 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đu novca i zajmovi su nemogući.

    Kada koristiti V-model?

    • Ako je potrebno temeljito testiranje proizvoda, tada će V-model opravdati temeljnu ideju: validaciju i provjeru.
    • Za male i srednje projekte gdje su zahtjevi jasno definirani i fiksni.
    • S obzirom na dostupnost 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 postupne izgradnje softvera. Postoji više 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. Razvojni postupak prema inkrementalnom modelu uključuje puštanje proizvoda u prvu veću fazu osnovne funkcionalnosti, a zatim dosljedno dodavanje novih značajki, tzv. "inkremenata". 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 digitalnih knjižnica Vivaldi.

    Kao primjer, opišimo bit jednog inkrementa. zamijenio DefView. DefView se prije povezivao s jednim poslužiteljem dokumenata, ali sada se može povezati s mnogima. Na stranici institucije koja svoj sadržaj želi emitirati određenoj publici, instaliran je poslužitelj za pohranu podataka koji izravno pristupa dokumentima i pretvara ih u željeni format. Pojavio se korijenski element arhitekture - središnji Vivaldi poslužitelj, koji djeluje kao jedan pretraživač na svim poslužiteljima za pohranu instaliranim u raznim institucijama.

    Kada koristiti inkrementalni model?

    • Kada su osnovni zahtjevi za sustav jasno definirani i razumljivi. Istodobno, neki se detalji s vremenom mogu poboljšati.
    • Zahtijeva rano lansiranje 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 varijacija 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 brzo predstavite 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 prethodnom koraku koriste se za definiranje objekata i drugih entiteta potrebnih za kruženje informacija.
    • Modeliranje procesa: Tokovi informacija povezuju objekte radi postizanja ciljeva dizajna.
    • Aplikacija za izradu: koristi alate za automatsku izradu 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 dovoljno je velik da plati ove stručnjake, zajedno s cijenom gotovih automatiziranih alata za montažu. RAD model možete odabrati ako pouzdano poznajete ciljni posao i trebate hitno proizvesti sustav u roku od 2-3 mjeseca.

    5. "Agilni model" (metodologija agilnog 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.

    Ovaj tip se temelji na kratkim dnevnim sastancima - "Scrum" i redovito ponavljajućim sastancima (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 u toku rada.
    Metodologija je prikladna za velike ili dugoročne projekte koji se stalno prilagođavaju tržišnim uvjetima. Sukladno tome, u procesu implementacije zahtjevi se mijenjaju. Vrijedno je zapamtiti klasu kreativnih ljudi koji imaju tendenciju generirati, izdavati i testirati nove ideje tjedno ili čak svakodnevno. Agilni razvoj najbolje odgovara ovoj vrsti vođe. Razvijamo interne startupe tvrtke koristeći Agile. Primjer klijentskih projekata je Elektronički sustav medicinskih 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, temeljnu za uspjeh na 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 treba samo malo planiranja za početak projekta.

    6. "Iterativni model" (iterativni ili iterativni model)

    Iterativni model životnog ciklusa ne zahtijeva potpunu specifikaciju zahtjeva za početak. Umjesto toga, izrada počinje implementacijom dijela funkcionalnosti, koji postaje temelj za određivanje daljnjih zahtjeva. Ovaj proces se ponavlja. Verzija možda nije savršena, glavna stvar je da radi. Razumijevajući krajnji cilj, težimo mu tako 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 malo po malo, proizvod se sastoji od dijelova. Za razliku od iterativnog modela, svaki komad je integralni element.

    Primjer iterativnog razvoja je prepoznavanje glasa. Prva istraživanja i priprema znanstvenog aparata započela je davno, u početku - u mislima, zatim - 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 najbolje vrijeme za korištenje iterativnog modela?

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

    7. "Spiralni model" (spiralni model)


    „Spiralni model“ sličan je inkrementalnom modelu, ali s naglaskom na analizi rizika. Dobro radi za poslovne izazove kritične za misiju gdje neuspjeh nije u skladu s poslovanjem tvrtke, u smislu lansiranja novih linija proizvoda, kada je to potrebno. znanstveno istraživanje i praktično testiranje.

    Spiralni model pretpostavlja 4 stupnja za svaki zavoj:

    1. planiranje;
    2. analiza rizika;
    3. građenje;
    4. procjena rezultata i, ako je kvaliteta zadovoljavajuća, prijelaz na novi zaokret.
    Ovaj model nije prikladan za male projekte, razuman je za složene i skupe, kao što je razvoj sustava za upravljanje dokumentima za banku, kada svaki sljedeći korak zahtijeva više analize za procjenu posljedica nego programiranje. Na projektu razvoja EDMS-a za ODU Sibira SO UES, dva sastanka o promjeni kodifikacije odjeljaka elektroničke arhive oduzimaju 10 puta više vremena nego programeru koji kombinira dvije mape. Državni projekti u kojima smo sudjelovali započeli su pripremom stručne javnosti jednog 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 isti za sve projekte, početne uvjete i modele plaćanja. Čak ni svima nama toliko dragi Agile ne može se primijeniti svugdje zbog nepripremljenosti pojedinih kupaca ili nemogućnosti fleksibilnog financiranja. Metodologije se djelomično preklapaju u sredstvima i donekle su slične jedna drugoj. Neki drugi koncepti korišteni su samo za promicanje vlastitih prevoditelja i nisu donijeli ništa novo u praksu.

    O razvojnim tehnologijama:
    .
    .
    .
    .

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

    Što je model vodopada

    Životni ciklus softvera je razdoblje postojanja softvera povezano s pripremom za njegov razvoj, razvoj, korištenje i obradu, počevši od trenutka kada je donesena odluka o razvoju novi sustav do trenutka kada se potpuno prekine svaka njegova uporaba. Model životnog ciklusa softvera ističe specifične skupove aktivnosti, artefakata, uloga i njihovih odnosa. Definira koji su artefakti ulazi u koje aktivnosti, a koji artefakti nastaju kao izlazi, koje su uloge uključene u različite aktivnosti, kako se aktivnosti međusobno odnose tijekom vremena, koji su kriteriji za kvalitetu dobivenih rezultata, kako procijeniti stupanj koji različiti artefakti odgovaraju općim ciljevima projekta i kada prijeći s jedne aktivnosti na drugu.

    Vodopadni model životnog ciklusa softvera uključuje sekvencijalnu provedbu različitih faza aktivnosti, uključujući analizu zahtjeva, dizajn, kodiranje i testiranje pojedinačnih modula (komponenti), testiranje montaže i integrirano testiranje cjelokupnog finalnog proizvoda. To pretpostavlja jasnu razliku između faza u kojima se skup dokumenata razvijenih u prethodnoj fazi prenosi kao ulaz u sljedeću. Stoga se svaka vrsta aktivnosti izvodi u bilo kojoj fazi životnog ciklusa softvera, kretanja obrnuta strana ovaj lanac nije moguć.

    Faze aktivnosti

    Analiza. Faza analize ispituje i definira zadatak koji bi program trebao izvršiti. Rezultat ove faze je skup zahtjeva za softver.

    Oblikovati. U ovoj fazi se zahtjevi identificirani tijekom analize pretvaraju u opis principa rješenja - dokument u skladu s kojim se donose određene odluke tijekom implementacije programa. Glavni rezultat druge faze je dobivanje projekta koji može sadržavati tekst na prirodnom jeziku, programski model, algoritme, tablice, matematičke formule itd. Detaljni dizajn uključuje odabir programskih komponenti, određivanje njihove strukture i načina interakcije. .

    Provedba. Po završetku inicijalnog dizajna slijedi faza implementacije u kojoj se kreiraju i testiraju programski moduli definirani tijekom projektiranja. Glavni rezultati ove faze su moduli izvornog koda i testovi samostalnih modula. Nakon implementacije prelazi se na testiranje sustava, a potom i na puštanje u rad.

    Implementacija i rad. Gotov programski proizvod se predaje naručitelju, provode se prijemna ispitivanja, obuka korisnika i probni rad, nakon čega se softver stavlja na održavanje i počinje proizvodni rad programskog sustava.

    Nedostaci vodopada pristupa

    • Nagomilavanje raznih grešaka učinjenih u ranim fazama projekta. Ako tek pred kraj projekta postane očito da su napravljene greške, tada svako vraćanje na prethodne faze radi ispravljanja grešaka postaje izuzetno skupo. Metoda "vodopada" ne identificira učinkovito i ne ublažava posljedice takvih rizika.
    • Neopravdano povećanje vremena provedbe, prekoračenje proračuna i rizik od potpunog neuspjeha projekta zbog gomilanja grešaka od faze do faze.
    • Sve ključne odluke donose se kada analitičari i programeri nemaju potpuno razumijevanje sustava. Vrlo je teško uklopiti stvarni proces stvaranja softvera u tako krutu shemu, stoga uvijek postoji potreba za vraćanjem na prethodne faze kako bi se razjasnile i revidirale prethodno donesene odluke. Na početku projekta, programeri se suočavaju s zastrašujućim zadatkom potpunog definiranja svih zahtjeva sustava. Da biste to učinili, morate pažljivo i iscrpno razgovarati s korisnicima i istražiti poslovne procese. Korisnici se moraju složiti sa svime što proizlazi iz takve ankete, iako možda nisu u potpunosti upoznati s njenim rezultatima. Uz malo sreće, oko 80% zahtjeva za sustav može se prikupiti na ovaj način u fazi analize. Prilikom projektiranja mogu se pojaviti novi problemi, o kojima je potrebno ponovno razgovarati s korisnicima, što će rezultirati novim zahtjevima za sustav. Tijekom procesa implementacije i testiranja često se utvrdi da se neke ranije donesene odluke ne mogu implementirati ili se ispostavi da zahtjevi nisu bili dovoljno detaljni i njihova implementacija je netočna. Moramo se vratiti na fazu analize i ponovno razmotriti ove zahtjeve.
    • Metoda vodopada ne pruža mogućnost brze prilagodbe promjenama posebno u kasnijim fazama životnog ciklusa softvera.
    • Konačni proizvod možda neće biti tražen zbog netočnog iskaza zahtjeva ili njihove promjene tijekom dugog vremena razvoja softvera.

    Kada koristiti pristup vodopada

    Vodopadni pristup dobro funkcionira u projektima gdje su zahtjevi za softverski proizvod jasno definirani i ne bi se trebali mijenjati, a nije potrebno uključivanje korisnika u proces razvoja. Isto vrijedi i za softverske projekte čija je složenost određena potrebom implementacije složeni algoritmi, a uloga i opseg korisničkog sučelja je mali.

    Usporedba vodopada i iterativnog pristupa

    Gornja slika jasno pokazuje razlike između vodopada i iterativnog pristupa. Pristup vodopada uključuje popravljanje funkcionalnosti softvera i mogućnost variranja vremena i resursa (obično prema gore zbog gore navedenih razloga).

    S vodopadnim pristupom, korisnik je uključen u projekt samo u ranoj fazi (kako bi se utvrdili zahtjevi za softver) ili ako razvojni programeri otkriju potrebu za promjenama. On može samo procijeniti konačni rezultat, koji možda neće odgovarati njegovim zamislima.

    Iterativni pristup pretpostavlja sudjelovanje predstavnika kupca u projektu u svim fazama. Iterativni pristup omogućuje značajno olakšanje i pojednostavljenje procesa promjene funkcionalnosti softvera.

    Glavne prednosti iterativnog pristupa mogu se sažeti kako slijedi:

    • Sposobnost ublažavanja utjecaja velikih rizika u ranoj fazi projekta dok se to još uvijek može učiniti uz minimalne troškove. Razlika u cijeni pogreške u određivanju zahtjeva na početku i na kraju projekta je 1:200.
    • mogućnost organiziranja plodonosne povratne informacije s budućim krajnjim korisnicima kako bi se stvorio sustav koji stvarno zadovoljava njihove potrebe;
    • fokus na najvažnija i najkritičnija područja projekta;
    • kontinuirano iterativno testiranje konačnog proizvoda, što vam omogućuje procjenu uspjeha cijelog projekta u cjelini;
    • rano otkrivanje nedosljednosti između zahtjeva, modela i programskog koda;
    • učinkovito korištenje akumuliranog iskustva;
    • stvarna procjena trenutnog stanja projekta i, kao rezultat, veće povjerenje kupaca i izravnih sudionika u njegovu uspješnu realizaciju.

    Danas ćemo se zadubiti u temu i govoriti 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 – svojevrsno platno na koje možete baciti projekt, a pod nadzorom menadžera ploviti do završetka i gotovog proizvoda. Budući da je svaki projekt jedinstven u određenoj mjeri, metodologija nije lijek, još uvijek morate razmisliti.

    Postoji mnogo metodologija upravljanja projektima - koriste se samo u jednoj tvrtki, globalne su. Metodologije dolaze u obliku alata (kao Agile), dolaze u obliku velike knjige sa skupom tih alata (PMBoK, također metodologija).

    U životu sam koristio i koristim dvije najpopularnije metodologije - Waterfall ("vodopad"/"kaskada") i Agile (i njen izdanak - Scrum), a o njima ćemo pričati. Radi širenja čitateljskih horizonata, ispričat ću vam i druge stvari koje znam. Ako čitač radi s digitalom, onda će "vodopad" i "agile" biti dovoljni za oči - moći će ih koristiti u poslu, životu, pričati prijateljima i strancima, na sastancima, ispijajući smoothije s pametnim pogledom.

    Odakle su došle metodologije?

    Naravno, ništa se ne uzima 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 svoja rješenja s običnim ljudima poput mene, na primjer. Ponekad se metodologije promišljaju na državnoj razini - tamo također rješavaju probleme i skupljaju najbolje prakse (nemojte to tako reći u pristojnom društvu) u knjige i priručnike.

    Agile i vodopad

    Danas ćemo uglavnom govoriti o ove dvije životinje. Nakon što pročitate ovaj odjeljak, spremni ste i zatražite najbolji posao voditelja projekta u najvećoj prihvatljivoj organizaciji u gradu.

    slap

    Waterfall, waterfall 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. “Uz vodopad” izvedba projekta izgleda ovako:

    • Kupite sadnicu
    • Iskopati rupu
    • Stavite sadnicu u nju
    • Pospite zemljom
    • zaliti drvo

    Svaka faza u takvom projektu slijedi prethodnu i ne može se završiti prije prethodne - ovo je "vodopad". Također se presijeca 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 mobilne aplikacije. Faze razvoja takvih projekata vodopada približno su iste:

    • Napišite projektni zadatak
    • nacrtati dizajn
    • Dizajn šminke
    • Kodiraj
    • test
    • Pokreni projekt

    Za kretanje po vodopadu morate imati jasan tehnički zadatak i razumjeti korake koji slijede jedan za drugim. Iz prakse ću reći da je rad na čistom vodopadu nerealan - uvijek se negdje 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 projektni zadatak jasniji, manja je vjerojatnost da će projekt otići ustranu. Za projekte u kojima je prihvatljivo "ići postrance" tu je Agile.

    Okretan

    "Agilno" (ili "agilno", ili "oprosti" - ima mnogo zgodnih naziva) odnosi se na vrstu fleksibilne metodologije. Njegova glavna razlika od vodopada je radni proizvod u svakoj fazi rada i nejasan završni projekt. 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 opseg, 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.

    Zamislimo kompliciraniji projekt za primjer rada “prema Agilu”. Neka to bude građevinski projekt. Zadatak: izgraditi kuću u kojoj možete živjeti.

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

    • Izgradite kutiju sa zidovima i stropom
    • Napravite krov i obložite zidove žbukom
    • Stavite vrata i prozore u kuću
    • Provedena struja, voda, kanalizacija
    • Postavite laminat, zalijepite 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 po sebi. Zamislite da oni stave lopatu na zemlju i čekaju da se nešto dogodi – pa ovdje, da bi se nešto dogodilo, treba nešto učiniti.

    Uglavnom koristim hibridnu metodologiju (i waterfall i agile), gdje postoji tehnički zadatak, faze su jasne, ali dolazi do odstupanja tijekom projekta. Izvana se može činiti da se događa kaos, glavno je napraviti facu za razmetanje, sve ide po planu. Često odstupanja idu u zasebne projekte, ali češće ostaju unutar trenutnog i povlače za sobom povećanje vremena (budžeta) projekta. Čini se da je to loše, ali ne može se isključiti politički moment u radu s ljudima (radimo s ljudima, a ne sa stranicama, sjećate se?).

    Metodologije upravljanja organizacijama

    Ove organizacije, uglavnom, upravljaju razvojem metodologija - razvijaju ih isti menadžeri koji ćete jednog dana postati. Nema ih toliko puno na svijetu, ali svi su jako važni - za novac i vrijeme možete dobiti njihove diplome i ići na intervjue, izvrsni anketari.

    PMI

    Project Management Institute je naš prijatelj. Imam posebnu privrženost ovoj organizaciji - imaju moćnu zajednicu i dobru bazu. Organizacija ima sjedište u SAD-u, postoji od 1969. godine, a njihove standarde upravljanja projektima priznaje ANSI.

    Glavni proizvod PMI-a je skup znanja o upravljanju projektima PMBoK, šesti dio je objavljen u jesen 2017. Tijelo znanja sadrži detaljne nacrte provedbe projekta - od prikupljanja zahtjeva dionika do zatvaranja projekta. Preporučam barem da se upoznate s knjigom - u njoj možete čitati i o slapu s agilom, te o metodi kritičnog puta i metodi brzog dodavanja - temama jednog od mojih budućih članaka.

    Osim PMBoK-a, PMI ima takve osnovne stvari: standarde za upravljanje portfeljem (projektima) i programima, standarde za upravljanje rizikom i Scrum Guide. PMBoK nije informatička knjiga, metode iz skupa primjenjive su na gotovo sve projekte (postoje zasebne ekstenzije za neke tipove) - općenito morate imati.

    PMI ima hrpu vrsta certifikata, s koracima i napomenama. PMI certifikati su poznati i popularni. Na primjer, PMP - stručnjak za upravljanje projektima - na neki način potvrđuje da možete upravljati projektima. Nemoguće je dobiti certifikate organizacije bez iskustva, jer oni su više kao potvrda nego kao ova vaša fakultetska diploma koju ste dobili dok ste učili.

    IPMA

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

    Što oni tamo rade, nije jasno. Pa, oni certificiraju menadžere. Izdaju vlastite časopise - sami i pod zastupstvom. Zaraditi novac. I hvala Bogu.

    PRINC2

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

    P2M

    "Vodič za upravljanje projektima i programima za inovacije poduzeća". Japanska metodologija upravljanja projektima ovaj je put svježa, iz 1999. godine. Ovdje su pipci usmjereni na inovacije i upravljanje očekivanjima. sudionici. Nisam naišao izbliza, nisam proučavao, ne mogu dati ocjenu.

    Microsoft Solutions Framework

    "Privatnu" metodologiju upravljanja projektima, MSF, izumio je i pustio u rad 1994. godine Microsoft. 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 (kao što ih imate na intranetu) za voditelje projekata. U svom čistom obliku, čak ni Microsoft se ne koristi - dodaju isti agilni, na primjer. Wikipedia ima informativan članak o ovom okviru, idite tamo - ima više nego što 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 - bio je takav frajer pod Sovjetima, korišten je u sovjetskoj propagandi produktivnosti. I on je radio po metodologiji (vadio je ugljen), ali je jednog dana shvatio da ako malo presložiš ljude i pokreneš neke procese paralelno, možeš bolje raditi. Tako je sebi zaradio stranicu na Wikipediji. Dakle, ovdje - testirajte, primijenite i doradite (zatim podijelite). Sve na što naiđete, svi savjeti su hipoteze koje treba provjeriti. Uživaj!

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

    Udio: