Faze agilnog razvoja. Što je Agile? Na početku tim istražuje stvarnost razvoja aplikacija i opseg. Daljnji rad je podijeljen u tri međusobno povezana ciklusa

  • 02.06.2020

Agile (“okretan”) riječ je koja se u posljednje vrijeme čuje iz svake pegle. Ali što je Agile i, što je najvažnije, zašto je taj Agile potreban?

Ako je otvoren rječnik, na primjer, Oxford, onda tamo možete pročitati najmanje dvije definicije:

  1. Može se kretati brzo i lako.
  2. Sposobnost brzog razmišljanja i razumijevanja.

Odnosno, da biste bili okretni, morate se moći brzo i lako kretati i brzo razmišljati. Čini se da su to vrlo korisne osobine, posebno u poslu. Brzo razmišljanje i brzo reagiranje upravo je ono što je doktor naredio za naše vrijeme, inače jednostavno nećete preživjeti: konkurenti će vas pojesti. U svijetu je sve manje industrija u kojima ti konkurenti ne postoje. Štoviše, brzina kopiranja čini praktički nemogućim izbacivanje proizvoda na tržište i odmor na lovorikama. Bez mogućnosti brze prilagodbe promjenama, što daje tzv. „Agilna metodologija“, sve je teže opstati.

Izraz Agilna metodologija ne uzimam slučajno pod navodnike, jer se često može čuti, ali nije sasvim točan. Ako ne ulazite u tehničke detalje, onda Agile nije metodologija, već skupni naziv za različite metode i pristupe upravljanju koji:

  1. Usmjerite tim na potrebe i ciljeve klijenata.
  2. Pojednostavite organizacijsku strukturu i procese.
  3. Nudi rad u kratkim ciklusima.
  4. Aktivno koristite povratne informacije.
  5. Dolazi do povećanja ovlasti zaposlenika.
  6. Temelje se na humanističkom pristupu.
  7. Oni nisu krajnje stanje, već način razmišljanja i življenja.

Ništa nadnaravno, zar ne? Idemo točku po točku i vidimo zašto je gore navedeno važno da bismo bili brzi i agilni te kako Agile postiže te ciljeve.

Usredotočite se na potrebe i ciljeve kupaca

Mislim da ne vrijedi objašnjavati zašto je najuspješniji posao onaj koji bolje od konkurencije zadovoljava potrebe svojih klijenata. Zanimljivije je razumjeti koji alati u Agileu pomažu u tome.

Što je najvažnije, fokus na klijenta Agilnim pristupom se ne pojavljuje samo u glavi vlasnika tvrtke (tamo već postoji), već kod svakoga tko radi na stvaranju proizvoda ili usluge. Svaki sudionik u procesu mora razumjeti tko je klijent, što želi, koje probleme rješavamo našim proizvodom, što voli, čega se boji i slično. Takav globalni fokus omogućuje vam stvaranje red veličine boljih rješenja. Više sam se puta susreo sa situacijom u kojoj su ljudi koji su prethodno bili odgovorni za neki mali posao, nakon što su shvatili ciljeve klijenta, počeli davati divne ideje, a ljudi koji su odgovorni za razvoj proizvoda iznenađeno su bilježili. Ili - kako se takve ideje bruse na grupnim sastancima razvoja proizvoda razliciti ljudi i međusobno se nadopunjuju, od samo dobrih do izvrsnih. I, naravno, kako se onda provode.

„Alati rada“ u ovom slučaju su kratke, ali intenzivne sesije (sastanci) svih sudionika u radu ili ključne većine, gdje se generiraju i testiraju razne ideje. Isti ti sastanci služe za izjednačavanje razumijevanja i fokusa: svi sudionici izlaznog sastanka razumiju što rade, zašto i zašto je to važno za klijenta. A demokratski format radionice, za razliku od dosadnih prezentacija, jamči veću uključenost i motiviranost svih sudionika.

Primjeri takvih alata su Lean Canvas, Impact Mapping, User Story Mapping i druge agilne metode za opisivanje hipoteza i procesa.

Jedan od kamena temeljaca Agilea je iznimna jednostavnost. I organizacijska struktura organizacije, i procesi po kojima ljudi rade, i pravila trebaju biti što jednostavniji. To će omogućiti ljudima da se fokusiraju na svoj rad, na vrijednost koju stvaraju, a ne na poštivanje propisa i pravila. Sjajni primjeri ovog pristupa mogu se pronaći u mnogim timovima koji rade na Scrumu, najpopularnijem načinu organiziranja tijeka rada u Agileu. Zapravo, svi dogovori i pravila tima od 10-11 ljudi, trenutni zadaci za par tjedana, ciljevi, kao i strateški planovi lako stanu na 2-3 lista A0 papira. Na jednom listu može biti takozvani “sprint backlog”, popis svega što će tim napraviti u sljedećoj iteraciji. Objesite li jedan u prostoriji u kojoj radite, uštedjet ćete si muke prisjećanja svega ovoga. Isto vrijedi i za procese. Na primjer, u Scrumu, mjesto i vrijeme svih sastanaka strogo su fiksni. Svaki sudionik sigurno zna da je, na primjer, u ponedjeljak u 10-00 planirana sljedeća iteracija, au petak u 17-30 - sastanak za poboljšanje procesa rada.

A što je veća organizacija, to je veća korist od takve jednostavnosti, jer složenost ima tendenciju eksponencijalnog rasta, a Agile je dobar način pobijediti ovu složenost ili barem obuzdati njezin rast.

Primjeri pojednostavljenja (i izravnavanja, ali to je tema za drugu raspravu) u Agileu su Scrum, Nexus, LeSS (Large-Scale Scrum, ili Scrum u velikoj mjeri), kao i sam Agile manifest.

U Agile svijetu nije običaj zatvoriti se u radionicu na tri godine da bi tamo brusio nešto zanimljivo. Rizik je vrlo velik, potrošiti more snage i vremena na nešto što nikome ne treba ili je zastarjelo.

Da bi se to izbjeglo, koristi se takozvani iterativno-inkrementalni pristup, kada:

  • rad se obavlja u malim fiksnim vremenskim razdobljima, na primjer, u jednom, dva ili četiri tjedna,
  • i što je najvažnije, na kraju svakog vremenskog razdoblja ne stvara se samo nekakav međurezultat, već, iako mali, krnji, oskudni, ali radna verzija proizvoda, koji možete početi koristiti.

Kao najjednostavniji primjer takvog radnog modela možemo zamisliti standardni programski program "kalkulator" za sva računala, koji isprva omogućuje samo zbrajanje dva broja, zatim zbrajanje oduzimanje, množenje, dijeljenje, transcendentalne brojeve, trigonometrijske funkcije i pa dalje, prema učestalosti korištenja. U početku je funkcionalnost mala, ali već možemo vidjeti kako kalkulator izgleda, koliko je zgodan za korištenje i zamisliti kako ga dalje razvijati. I što je najvažnije, neki od klijenata (recimo školarci osnovna škola) već ga možete početi koristiti.

Još jedna prednost ovakvog pristupa, osim ranog ulaska na tržište i unošenja promjena u ranim fazama rada, jest mogućnost točnijeg mjerenja napretka. Nismo samo "odradili 15% posla", što je prilično apstraktno. „Napravili smo 15% funkcionalnosti“ koja već radi.

svi procesni pristupi u Agileu imaju kratke cikluse, bilo da se radi o prethodno spomenutom Scrumu, Nexusu, LeSS-u, SAFe-u ili, plus potreba za radom s takvim ciklusima spominje se u samom Agile manifestu.

Aktivno, sustavno korištenje povratnih informacija

Ova je točka, po mom mišljenju, najvažnija za bilo koji proces, jer vam omogućuje da prilagodite svoj rad tijekom vremena, na temelju iskustva, uklanjajući pogreške i gubitke iz procesa i proizvoda koji se stvara i dodajući nešto korisno.

U bilo kojem području ljudske djelatnosti vezano uz stvaranje nečeg novog, naći ćete slično raditi kroz eksperiment. Raketarstvo, zrakoplovno inženjerstvo, farmacija, fizika, medicina, građevinarstvo, psihologija, ekonomija - bilo koje područje aktivnosti započelo je eksperimentima i promišljenom obradom Povratne informacije od njih.

Agile nudi sustavnu upotrebu ovog pristupa posvuda: u kreiranju proizvoda (puštamo ga na tržište, ili pokazujemo kupcu, ili provodimo testove i koristimo povratne informacije kako bismo ga ispravili), u izgradnji procesa (povremeno "zaustavljamo" rad i analizirati sam proces, poboljšati ga, riješiti se gubitaka i problema), čak iu izgradnji strukture organizacije i finom podešavanju odnosa u timovima.

Opet, primjeri su posvuda: retrospektivni sastanci u Scrumu, Kanbanu, Nexusu i LeSS-u, I&A ciklusi u SAFe-u, pristup Design Thinking stvaranju proizvoda itd.

Zašto davati veće ovlasti kada možete dati komad papira s uputama? Postoje najmanje tri razloga za to.

Prvo, ljudi koji se bave mentalnim radom ne vole se osjećati kao majmuni (dobro, ili roboti), a oduzimanjem sposobnosti donošenja odluka osobi oduzimamo mu mentalni rad sam po sebi. A to je svakako demotivirajuće.

Drugo, davanjem više ovlasti dajemo i veću odgovornost, a ljudi su prisiljeni naučiti sami donositi odluke i, što je najvažnije, snositi odgovornost za njih. Dugo je, teško, ali se isplati. Posao neće stati ako se samoorganizirani tim susretne s nepoznatim, dosad nepoznatim problemom. I tko će tvrditi da su na poslu zreli i odgovorni odrasli korisniji od velike djece koja ne znaju samostalno razmišljati?

Treće, još uvijek je ista brzina. Ako čovjek može sam riješiti problem, umjesto sebe, ne pitajući nikoga, time se smanjuje vrijeme donošenja odluka. Nema više slanja pitanja "gore" i čekanja odgovora od uprave. Ova prednost nije toliko uočljiva ako imate 3 osobe koje rade, ali ako ih imate 30, ili 300, ili 3000... U velikim organizacijama izgrađenim na čisto hijerarhijskom odlučivanju, paraliza volje može biti prilično česta.

Popularni načini izgradnje rada u Agileu, posebice oni temeljeni na Scrum okviru, uključuju sustav samoorganiziranih timova i potiču vodstvo na svim razinama.

Zašto tretirati ljude kao ljudska bića? Odnosno, moralna strana stvari je jasna, ali kakvu će korist donijeti vlasniku poduzeća?

Odgovor je prilično jednostavan. Ako stvaranje onoga što prodajete ne zahtijeva umni rad, ali samo mehaničke radnje - ne možete smetati. Samo platite po obavljenom poslu i to je to. Ali čim mozak radnika stupi u igru, morat ćete računati s principima motiviranja mentalnog rada. I kažu da je ljudima važna mogućnost samoostvarenja, usavršavanja vlastitih vještina, donošenja nečeg vrijednog na svijet, samostalnosti u donošenju odluka i niza drugih čimbenika. A motivirana osoba (ne brkati sa stimuliranom osobom!) će više uložiti u rad, a rezultat će biti bolji i brži. I općenito, ugodna atmosfera na poslu povećava želju za dolaskom i radom tamo - rijetko tko može osporiti i to.

I, što je lijepo, ako kopate u isti Scrum, ispada da su svi ključni čimbenici za motiviranje radnika mentalnog i / ili kreativnog rada već uključeni u njega. U svakoj iteraciji (“sprint”) postavljamo cilj koji želimo postići; dana nam je prilika odlučiti kako točno postići cilj; na kraju, gledamo koliko smo postali bolji (ili lošiji) raditi nego prije; vidimo ljude koji su zainteresirani za proizvod i njihove emocije iz upoznavanja s njim. Posebno je dobro ako su te emocije pozitivne.

Zaključak je: sretni ljudi rade bolje, a Agile tehnologije pomažu uspostaviti proces u kojem se ljudi osjećaju sretnijim. A prva točka manifesta je upravo o ovome: ljudi i način na koji oni komuniciraju važniji su od svega drugog.

Agile nije krajnje stanje, već način razmišljanja i življenja

Ovo govori o tome kako je Agile općenito put, a ne cilj. Ne možete "implementirati" Agile i opustiti se. Odabereš li ovaj put, uvijek ćeš imati nešto drugo za raditi bolje, neki drugi izazov za odgovoriti, neki drugi problem za riješiti, drugu visinu za osvojiti... Ovo je kretanje.beskonačno, jer ne postoji idealan proces ili proizvod, razvoj i natjecanje nikada ne prestaju, kao što nikada ne prestaje borba za opstanak u prirodi.

A ako je sve bilo uspješno: ljudi u tvrtki razumiju i dijele vrijednosti i principe Agilea i rade u skladu s njima, tada uprava neće morati "vući" nikakve promjene ili "šutirati" zaposlenike da počnu nešto raditi različito. Poduzeće će postati jedinstven organizam čije će upravljanje zahtijevati manje napora i donositi više zadovoljstva.
A gdje je više zadovoljstva od posla, a rezultat je veći. To se ne odnosi samo na stručnjake, već i na menadžment, i to u još većoj mjeri.

Svi koji su se ikad bavili upravljanjem projektima znaju koliko je teško organizirati uigran timski rad, a pred stalno promjenjivim zahtjevima za rezultatom projekta sav uloženi trud može postati uzaludan. Agilna metoda upravljanja projektima idealna je za rad s takvim projektima.

Agilna metoda upravljanja projektima je niz faza rada definiranih čvrstim rokovima – sprintovima, koji timu omogućuju stalnu evaluaciju rezultata obavljenog posla i dobivanje povratnih informacija od naručitelja i ostalih sudionika projekta. Ovaj vam pristup omogućuje trenutne promjene na proizvodu kada stignu novi zahtjevi.

Povijest Agilea

Evolucijski projektni menadžment i adaptivni razvoj softver pojavio se početkom 1970-ih. Godine 1970. dr. Winston Royce predstavio je rad pod naslovom "Upravljanje razvojem velikih softverskih sustava" koji je bio kritičan prema sekvencijalnom razvoju. Tvrdio je da se softver ne bi trebao razvijati poput automobila na tekućoj vrpci u kojoj se svaki dio dodaje u uzastopnim fazama. U takvim uzastopnim fazama, svaka faza projekta mora biti dovršena prije nego što sljedeća faza može započeti. Dr. Royce je preporučio korištenje faznog pristupa, u kojem programeri prvo prikupljaju sve zahtjeve projekta, a zatim dovršavaju cijelu svoju arhitekturu i dizajn, zatim pišu sav kod, i tako dalje.

U 1990-ima razvijen je niz agilnih metoda razvoja softvera kao odgovor na prevladavajuće teške metode. To uključuje: od 1991. - RAD (brzi razvoj aplikacija); od 1994. - Metoda razvoja dinamičkih sustava (DSDM); od 1995. - Scrum; Od 1996. Crystal Clear and Extreme Programming (XP); A od 1997. - Feature driven development (FDD). Iako su nastali prije objavljivanja Manifesta o agilnom razvoju softvera, zajednički se nazivaju agilni razvoj softvera.

U veljači 2001. sedamnaest programera softvera sastalo se u Snowbird Resortu u Utahu kako bi razgovarali o tehnikama laganog razvoja. Zajedno su objavili Agile Manifesto.

Agilni manifest

Agilni manifest sastoji se od 4 temeljne ideje i 12 načela. Svaka Agile metodologija različito primjenjuje ove ideje, ali sve se oslanjaju na njih kako bi upravljale projektima što učinkovitije.

4 agilne ideje
  1. Ljudi i interakcija važniji su od procesa i alata.
  2. Softver koji radi je važniji od dokumentacije.
  3. Suradnja s klijentima važnija je od pregovaranja o uvjetima ugovora.
  4. Spremnost da se naprave promjene u prioritetima umjesto da se drže izvornog plana.
12 principa Agilea
  1. Zadovoljstvo korisnika kroz ranu i kontinuiranu isporuku softvera. Kupci su sretniji kada u redovitim intervalima dobivaju softver koji radi.
  2. Napravite promjene u zahtjevima proizvoda tijekom procesa razvoja.
  3. Česta isporuka radnog softvera (svaki mjesec, dva tjedna, tjedno itd.).
  4. Suradnja između dionika (kupca i programera) tijekom cijelog projekta.
  5. Podrška, povjerenje i motivacija uključenih ljudi. Vjerojatnije je da će motivirani timovi ispuniti svoje najbolje djelo nego zaposlenici nezadovoljni uvjetima rada.
  6. Interakcija licem u lice. Komunikacija je uspješnija kada razvojni timovi mogu izravno komunicirati.
  7. Radni softver glavno je mjerilo napretka. Isporuka funkcionalnog softvera klijentu je krajnji faktor koji mjeri napredak.
  8. Održavanje konstantnog tempa rada. Timovi uspostavljaju ponovljivu i održivu stopu rada kojom mogu isporučiti softver koji funkcionira.
  9. Pozornost na tehničke detalje i dizajn. Prave vještine i dobar dizajn dopustite timu da zadrži zamah, neprestano poboljšava proizvod i radi na promjeni.
  10. Jednostavnost.
  11. Samoorganizirajući timovi potiču izvrsnu arhitekturu, zahtjeve i dizajn. Kvalificirani i motivirani članovi tima koji imaju ovlasti za donošenje odluka redovito komuniciraju s ostalim članovima tima i razmjenjuju ideje koje će osigurati stvaranje kvalitetnog proizvoda.
  12. Stalna prilagodba promjenjivim uvjetima, što će pomoći da proizvod bude konkurentniji na tržištu.

Osnova Agile metode

Osnova agilne metode upravljanja projektima je niz ključnih elemenata:

  1. Vizualna kontrola. Sudionici projekta tijekom rada na projektu koriste kartice različitih boja i vrsta koje označavaju koji je element konačnog proizvoda već razvijen, isplaniran, dovršen i sl. Dakle, tim ima vizualni prikaz trenutnog stanja stvari. Vizualna kontrola osigurava istu viziju projekta od strane svakog od sudionika.
  2. Svi sudionici projekta rade rame uz rame, uključujući i klijenta. Ovaj pristup ne samo da ubrzava mnoge procese povezane s informiranjem članova radne skupine, već i stvara povoljna atmosfera za suradnju i učinkovit rad.
  3. Prilagodljivo upravljanje. Voditelj projekta nije osoba koja daje upute, već voditelj koji određuje osnovna pravila rada i suradnje.
  4. Suradnja. Tim, voditelj projekta i klijent rade zajedno, što eliminira mogućnost gubitka informacija i nerazumijevanja ciljeva. Također, transparentnost svih procesa omogućuje trenutno uklanjanje novonastalih problema i pronalaženje uspješnih rješenja i poboljšanja.
  5. Rad koji se temelji na podjeli ukupnog opsega projekta na sastavne dijelove. Ovakav sustav rada značajno smanjuje kompleksnost projekta i omogućuje timovima da se fokusiraju na svaki dio pojedinačno.
  6. Radite na greškama. Tijekom rada jednog ciklusa tim uči nove vještine i analizira nastale greške, čime se isključuje njihova pojava u sljedećem ciklusu.
  7. Sprintevi i dnevni sastanci. Sprintevi - vremenski periodi tijekom kojih timovi obavljaju niz zadataka - omogućuju vam da jasno vidite rezultate rada. Podijelimo li vrijeme rada na projektu na sprintove, dobijemo npr. 10 sprintova, svaki po dva tjedna. A dnevni sastanci koji ne traju više od 15 minuta pomoći će svakom članu tima da sam sebi odgovori na tri pitanja: što sam radio jučer, što ću raditi danas, što me sprječava da radim?

Dakle, uvod fleksibilna metoda Agilnost je moguća pod sljedećim uvjetima:

  • jasno je naznačeno značenje projekta,
  • klijent je aktivno uključen u cijeli projekt,
  • moguća postupna provedba ukupnog opsega projekta,
  • rezultat rada je važniji od dokumentacije,
  • radna grupa ne broji više od 7-9 ljudi.

Na ovaj trenutak Agilna metodologija široko je rasprostranjena u IT području i počinje svladavati poslovno područje, posebno marketing, menadžment, obuku itd. Agilnu metodu upravljanja projektima koriste mnoge tvrtke i vladine agencije, na primjer, vlade Norveške i New Yorka. Zeland koristi Agile. U Rusiji Sberbank svladava Agile za komercijalni sektor.

Sustavi za upravljanje projektima temeljeni na Agileu

Postoje mnoge metode temeljene na ideji Agilea, a najpopularnije od njih su Scrum i Kanban.

OLOŠ

Scrum je metodologija upravljanja projektima koja se fokusira na kontrolu kvalitete procesa rada. Hirotaka Takeuchi i Ikujiro Nonaka, prvi koji su opisali Scrum pristup, objasnili su ga kao “ragbi pristup”, u kojem se Scrum bori za loptu. Sama metoda je razvojni proces podijeljen u male iteracije - sprintove, na kraju kojih korisnici dobivaju poboljšanu verziju softvera. Sprint je vremenski strogo fiksiran, a trajanje je od 2 do 4 tjedna. Rad unutar jednog sprinta sastoji se od nekoliko faza:

  1. Planiranje obima posla za jedan sprint.
  2. Dnevni sastanci po 15 minuta za korekciju rada tima i sumiranje međurezultata.
  3. Demonstracija rezultata rada.
  4. Retrospektiva sprinta s pregledom uspjeha i neuspjeha posljednjeg sprinta.

Scrum se najčešće koristi za upravljanje složenim razvojem softvera i proizvoda korištenjem iterativnih i inkrementalnih metoda.

Scrum uvelike povećava produktivnost i skraćuje vrijeme u prednost u odnosu na klasične "vodopad" procese. Scrum procesi omogućuju organizacijama neprimjetno prilagođavanje zahtjevima koji se brzo mijenjaju i stvaranje proizvoda koji ispunjava promjenjive poslovne ciljeve. Scrum vam omogućuje da:

  • Poboljšati kvalitetu rezultata;
  • Bolje se nositi s promjenama;
  • Pružite točnije procjene, trošeći manje vremena na njihovu izradu;
  • Bolje je kontrolirati scenarij projekta i faze rada.

Kanban

Kanban je proces osmišljen kako bi pomogao timovima da rade zajedno učinkovitije. Na japanskom kanban znači " pano, tabla”, a sama metoda je preuzeta i prilagođena sustav proizvodnje Toyota. Bit Kanbana je učiniti razvojni proces što transparentnijim i ravnomjerno rasporediti opterećenje među članovima tima. Kanban promovira kontinuiranu suradnju i potiče aktivno, kontinuirano učenje i usavršavanje.

Kanban se temelji na tri principa:

  1. Vizualizacija zadataka: vidljivost svih informacija o projektu pomoći će uočiti nedostatke, pogreške i slojeve.
  2. Kontrola i ograničenje WIP (rad u tijeku): Ovo pomaže uravnotežiti pristup nitima tako da timovi ne započinju i rade previše posla odjednom.
  3. Kontrolirajte vrijeme za dovršetak zadatka i optimizirajte rad kako biste uštedjeli vrijeme.

Prednosti i nedostaci Agilea

Svaka metodologija ima prednosti i nedostatke. Razmotrite prednosti i nedostatke Agilea.

Prednosti

1. Više fleksibilnosti u usporedbi s vodopadnom metodologijom.

Tradicionalna metodologija vodopada jasno diktira faze rada. S agilnom metodologijom, raspored i trošak su glavne odrednice, a to je područje koje se mijenja kako bi zadovoljilo zahtjeve kupaca i potrošača proizvoda.

2. Manje nedostataka u konačnom proizvodu.

To je rezultat provjera kvalitete koje se provode u svakoj fazi rada. Kontinuirani proces"razvoj, izgradnja i testiranje" također smanjuje nedostatke kako se ponavljaju ciklusi.

Mane

1. Konstantno primanje povratnih informacija dovodi do stalnog odgađanja datuma završetka projekta.

S trenutnim povratnim informacijama koje Agile pruža, postoji opasnost dug rad. Krajnji korisnici koji vide da se ovi zahtjevi mogu ispuniti "lako" (vide samo rezultat, ne trud) zahtijevat će dodatne značajke. Ako voditelj projekta i programeri ne mogu upravljati očekivanjima, krajnji će korisnici nastaviti tražiti više sve dok cijeli tim ne bude opterećen dodatnim poslom.

2. Dokumentacija

Zbog fleksibilne prirode Agilea, dokumentacija mora pratiti uvjete projekta koji se brzo mijenjaju. Zahtjev za promjenom ili značajkom mogao bi se detaljno raspraviti i dogovoriti s krajnjim korisnicima, programerima i testerima, ali osim ako tim nije bio upoznat, kritični dokument kao što je korisnički priručnik, arhitektonski dokument ili funkcionalni zahtjev, zastarjet će.

3. Česti sastanci

Iako Agile preporučuje da se ovi sastanci održavaju svakodnevno kako bi svi bili ažurirani o napretku drugih, održivost ove prakse utječe na napredak iteracija. Programeri su fokusirani na ono što rade. Povlačeći ih na sastanak koji bi ih mogao omesti u poslu stvarni rad, nije nešto što će rado prihvatiti.

Agilna implementacija

  1. Izbor metodologije. Postoje različite fleksibilne metodologije koje se razvijaju pod određenim uvjetima. Prvi korak u radu s Agileom je odrediti ciljeve radnog zadatka, rokove, broj zaposlenika i još mnogo toga te odabrati takvu fleksibilnu metodologiju upravljanja projektima koja će zadovoljiti sve zahtjeve.
  2. Trening. Edukacija je neophodna kako bi zaposlenici razumjeli osnovne principe Agilea i znali raditi s njima. U ovoj se fazi identificiraju zamke koje se mogu smanjiti Agilna učinkovitost. Je li tim spreman za promjene? Jesu li projekti tvrtke prikladni za agilne prakse? Na ova i mnoga druga pitanja obično odgovaraju Agile poslovni treneri. Između ostalog, izradit će se i popis obuka te plan prema kojem će se provoditi implementacija Agilea u tvrtku.
  3. Agilni demo. Svojevrsni Agile test drive koji se provodi pod nadzorom stručnjaka i prikazuje sve faze rada, objašnjava funkcije uloga, interakciju unutar tima i među timovima itd.
  4. Stvaranje tima. Osim odabira zaposlenika, stvaranje tima uključuje i definiranje odgovornosti, raspodjelu zadataka, izradu rasporeda sastanaka i sl. Svaka metoda je dizajnirana za određena količina osoba u timu.
  5. Izbor alata potrebno za raspodjelu zadataka, izvješćivanje, analitiku i drugo.
  6. Prvi projekt s Agileom. U prvom projektu bit će grešaka, nedosljednosti, odbacivanja nekih alata i odabira drugih. Svaka tehnika zahtijeva svojevrsnu prilagodbu karakteristikama poduzeća u kojem se primjenjuje.

Ako pronađete grešku, označite dio teksta i kliknite Ctrl+Enter.

Teško je pronaći osobu koja ne želi da se prema njoj odnose s poštovanjem. Ali mora postojati razlog za ovakvo stanje stvari. Na primjer, kada je osoba visokokvalificirani priznati stručnjak u području razvoja softvera. A za ovo morate učiti. A u okviru ovog članka razmotrit ćemo što je Agile, čemu služi i kako razumjeti ovu tehnologiju.

opće informacije

Prvo, pozabavimo se tehničkim problemima. Što je Agile? Prijevod (doslovni) ove riječi iz engleskog jezika- nešto rjeđe se spominje “živo, pokretno”, “fleksibilno”. I usput, to je skraćenica. Puni naziv ovog pristupa je Okretan razvoj softvera. Ali budući da je predugačak, odlučeno je da se izreže. A sada samo kažu Agile. Prijevod kao "fleksibilan" koristi se zbog činjenice da najviše odgovara stvarnom stanju.

Što je ovdje uključeno?

Nastavljamo razmatrati što je Agile. Ovdje se želim usredotočiti na činjenicu da je ovo fleksibilan pristup, koji se temelji na mnogo različitih XP, "Kanban", Lean). Kako bismo bolje razumjeli temu, povucimo paralele. Recimo da su Agile tehnologije proces rađanja Svemira. Konačni proizvod je sam stvarni svijet. A veliki prasak je najbolniji problem s kojim se morate suočiti – promjena popisa zahtjeva proizvoda. Obično procesi stvaranja uključuju korištenje model vodopada. U ovom slučaju, sve ide sekvencijalno iu fazama. Ovaj pristup se može izraziti ukratko: vidim cilj - idem do njega. A ako se zahtjevi za konačni rezultat promijene, ponekad morate ponoviti gotovo sve iznova. Ono što dodatno komplicira ovu situaciju je pokušaj pretvaranja da je sve u redu i da treba ići naprijed.

A tu je i menadžment koji je dizajniran da se nosi sa svim tim zahvaljujući svojoj fleksibilnosti. Ova mješavina minimizira različite rizike upotrebom niza načela. Svi oni odražavaju se u Agile Manifestu, objavljenom 2001. Ukratko, zvuče ovako:

  1. Glavni su ljudi, a ne stvari.
  2. Surađuj, ne čitaj ugovor.
  3. Dokumentacija ne smije ometati rad.
  4. Promijenite što je brže moguće.

Možda se čini previše nejasnim i netočnim, ali hajdemo detaljnije.

Projektiranje procesa

S obzirom na to što je Agile, okrenimo se jednoj od najpopularnijih metodologija poznatoj kao "Scrum" (Scrum). Što ona nudi? Za početak potrebno vam je:

  1. Odaberite vlasnika proizvoda. Ova uloga je prikladna za osobu koja vidi do kojeg cilja trebate ići i što će se na kraju dogoditi.
  2. Odlučite se za tim. To zahtijeva grupu od tri do deset ljudi koji imaju vještine za postizanje rezultata.
  3. Izaberite odgovornu osobu. To je osoba koja će pratiti razvoj projekta i pomagati timu da prevlada poteškoće.
  4. Nosite se s poteškoćama. Sve postojeće zahtjeve proizvoda treba sakupiti na jednom mjestu i odrediti prioritete. Vlasnik proizvoda trebao bi ovdje prikupiti sve svoje želje. Zatim ih tim procjenjuje i shvaća može li se to provesti i koliko je vremena za to potrebno.
  5. Cjelokupni opseg posla trebali biste podijeliti na vremenska razdoblja od tjedan ili dva, tijekom kojih će tim obavljati određene skupove zadataka.
  6. Sastanci se trebaju održavati svakodnevno, ne duže od petnaest minuta. Na dnevnom redu bi trebalo biti ono što je učinjeno jučer, koji su planovi za danas, te prepreke koje nam onemogućuju osvajanje visine.
  7. Napravite preglede na kraju tjedna (dva) tijekom kojih tim razgovara o učinjenom. Istodobno je potrebno dokazati učinkovitost dijelova proizvoda.
  8. Nakon svakog vremenskog razdoblja potrebno je razgovarati o problemima i tražiti rješenja. Štoviše, sav razvoj mora se odmah provesti.

Kako prepoznati Agile?

Metodologija upravljanja, bez obzira na odabrani smjer, uvijek ima sljedeće značajke:

  1. Minimizacija rizika. to glavni cilj koje svaki fleksibilni pristup teži.
  2. Iterativni razvoj. U ovom slučaju podrazumijeva se rad u malim ciklusima.
  3. Najvažniji su ljudi i komunikacija među njima.

Zamislimo rijeku. S jedne strane kupca. Drugo je tim. U ovom slučaju agilna metodologija razvoja ima prednosti za sve:

  1. Kupac želi minimalno održiv proizvod. U isto vrijeme, uvjeti se mogu promijeniti tijekom njegovog stvaranja.
  2. Timu je korisno komunicirati s kolegama i kupcem. U tom slučaju minimalizira se rizik od krivog razumijevanja, povećava se transparentnost procesa, brzo se rješavaju problemi, a smanjuju se šanse da će doći do iznenađenja pri izradi proizvoda.

društveni faktor

Kada se govori o tome što je Agile, obično se govori samo o pozitivnim stvarima. Dapače, komunikacija unutar tima se poboljšava. Svi se ljudi fokusiraju na jednu ideju, ne stvaraju tajne među sobom, ne preuzimaju obveze. Kao rezultat toga, tim radi u ugodnim uvjetima i brzim tempom. Ovaj vam pristup omogućuje pojednostavljenje kaosa.

Od svog osnutka uspio je pronaći priznanje u tehnološkim industrijama. Trenutno se široko koristi za projektiranje novih softverski proizvodi. No, u općoj poslovnoj praksi ovaj je pristup još uvijek malo poznat. Stoga su oni koji se prije nisu susreli s Agileom oprezni. Također treba shvatiti da se treba koristiti samo u slučajevima kada se ljudi suočavaju sa zadatkom intelektualnog rada.

Mali primjer

Pogledajmo kako funkcioniraju ove metodologije razvoja softvera. Recimo da imamo Petra, vlasnika proizvoda. Ne zna tehničke detalje, ali ima viziju velike slike. On zna zašto je proizvod potreban, koje probleme će riješiti i koga će zadovoljiti. Ima i zainteresiranih. Oni mogu koristiti proizvod, podržati njegovo stvaranje ili na drugi način biti uključeni u njegovo stvaranje. Također možete dodati korisničke priče koje izražavaju želje zainteresiranih strana. Na primjer: sustav za rezervaciju karata za redovne autobuse Moskva-Sankt Peterburg trebao bi imati pretragu letova. Petar će pomoći zainteresiranima. Preuzet će kontrolu nad implementacijom iz ideja korisničkih priča. Tu je i razvojni tim. To su ljudi koji će graditi radni sustav.

Budući da je metodologija razvoja agilna, korisničke priče se ne akumuliraju do velikog izdanja, već se objavljuju odmah nakon završetka i što je češće moguće. Broj obrađenih zahtjeva tjedni je protok tima. Kako ne bi izgubili zamah i zaglibili u ručnom testiranju, tim bi trebao raditi na automatiziranoj integraciji. Što je? Za svaki radni trenutak piše se automatski test. Ako ima previše priča, onda može doći do žurbe, gubitka motivacije, gubitka produktivnosti i kvalitete. Za takve slučajeve predviđena je metoda "jučerašnje vrijeme". Leži u činjenici da morate postaviti stroga ograničenja u količini posla i pažljivo odabrati što će se točno implementirati. Prethodno spomenuti "Kanban" predlaže postavljanje ograničenja zadataka.

Što učiniti s redom čekanja?

U redu, tim je odlučio da mogu obraditi četiri priče tjedno. Ali kako se snaći u svemu što jest? Recimo da korisnici postavljaju deset priča tjedno. Četiri su u obradi. Stoga će red čekanja stalno rasti. U ovom slučaju postoji samo jedan učinkovita metoda- riječ "ne". Za vlasnika proizvoda ovo je iznimno važno. Reći "da" nije teško. Mnogo je teže i važnije odlučiti što ne učiniti. Štoviše, za to je potrebno snositi i odgovornost. Stoga je potrebno odlučiti na što sada obratiti pozornost, a što treba odgoditi. Da bi sve bilo ispravno, vlasnik proizvoda mora razumjeti vrijednost i opseg svake priče.

Mi donosimo odluke

Neke od priča su izuzetno potrebne. Drugi su samo lijep bonus. Za razvoj nekih priča trebat će nekoliko sati. Drugima će trebati mjeseci da se završe. Mnogi često povlače korelaciju između veličine priče i njezine vrijednosti. Ali to nije uvijek točno. Više nije isto što i bolje. Složenost i vrijednost zadatka pomaže Peteru da pravilno odredi prioritete. Kako se te karakteristike mogu kvantificirati? Nema šanse. Ovo je prava igra pogađanja. A za veću učinkovitost potrebno je u to uključiti mnogo ljudi. Riječ je o razvojnom timu koji će informirati o opsegu posla i zainteresirane strane. Ali treba razumjeti da su svi podaci dobiveni na ovaj način približne pretpostavke. Ovdje nema točnih brojeva. U početku će biti promašaja. Ali kako budete stjecali iskustvo, njihov broj i razmjer će se smanjivati.

Mogući rizici

Kako bismo izbjegli probleme, potrebno je dati iskrene odgovore na brojna pitanja. To:

  1. Činimo li prave stvari? Ovo je poslovni rizik.
  2. Možemo li implementirati ono što nam je potrebno?
  3. Hoće li projekt funkcionirati na ovoj platformi. Ovo je tehnički rizik.
  4. Ima li dovoljno novca i hoćemo li imati vremena? To su rizici uvjeta implementacije i troškova.

U ovom slučaju potrebno je znanje. Oni se mogu promatrati kao suprotnosti rizicima. Kada je značajna razina nesigurnosti fiksirana, tada stječemo znanje - na primjer, stvaramo prototipove sučelja ili tehničke eksperimente. A već posjedujući ih, donosimo odluke o smjeru u kojem se trebamo kretati.

Kako naučiti?

IT industrija se izuzetno brzo razvija, a kako na kraju ne bi izgubili, potrebno je stalno učiti, usavršavati vještine i radnu učinkovitost. Stoga su pitanja obuke i provedbe važnija nego ikad. Gdje početi? Najviše najbolja opcija- radi se o suradnji s tvrtkom u kojoj se Agile već primjenjuje. Obuku će u ovom slučaju voditi ljudi koji ne po glasini znaju što je agilni razvoj. Ali, nažalost, to nije uvijek moguće. Najčešće je uključen stručnjak treće strane koji zna što je Agile. Provedba ovog pristupa provodi se pod njegovim nadzorom. Istina, usluge takvog stručnjaka koštaju. Ali ako dobijete stvarno obrazovanu osobu, onda će vam se svi troškovi dobro isplatiti. Uostalom, u moderni svijet Učinak zaposlenika igra važnu ulogu.

Što se sprema za budućnost?

Metodologije razvoja softvera neprestano se razvijaju. Traženje novih načina i mogućnosti poboljšanja učinkovitosti aktivnosti i rada. Prilično je problematično reći što nam budućnost nosi. Vjerojatno će fleksibilni razvojni sustav biti integriran s alatima za automatizaciju proizvodni procesi. Na primjer, bit će moguće rješavati probleme čak i dok ste udaljeni od lokacije tvrtke. Na mnogo načina, budućnost je određena novim Informacijska tehnologija. Uostalom, kada se pojave, morate svladati nove metode rada s njima. I u ovom slučaju postoji razvoj zatvoren u ciklusu.

Konačno

Time je ekskurzija u fleksibilne završila, ali valja podsjetiti da je teorija jedno, a praksa sasvim drugo. Nove informacijske tehnologije koje se neprestano pojavljuju predstavljaju izazov velikoj zajednici programera. Kako svoj tim možete učiniti učinkovitijim? Odgovor na ovo pitanje svatko pronalazi sam. Ovdje prikazane informacije mogu se koristiti za formiranje okosnice. Ali u praksi ćete morati raditi s postojećim modelom i dovesti stanje u stanje usklađenosti s postojećim izazovima. Tada će tim moći učinkovito ispuniti svoje ciljeve.