Agilna metodologija: pomen, prednosti, slabosti in več
Ste vedno želeli vedeti, kaj je agilna metodologija pri razvoju programske opreme? Tukaj si oglejte podrobneje, če želite izvedeti podrobnosti.

Agilna metodologija je filozofija razvoja programske opreme, katere namen je strankam zagotoviti večjo vrednost z uporabo krajših razvojnih ciklov, hkrati pa vključuje stalne revizije.
Razvoj programske opreme je zrasel iz področij matematike in naravoslovja. Torej je prvotno vključeval znanstvene metode s teh področij.
Te metode so se v sedemdesetih letih prejšnjega stoletja razvile v pristop slapa, da bi zadovoljile zahteve dneva. Računalniki in njihova programska oprema so bili v tistih časih veliki, zapleteni in zasnovani tako, da so delovali desetletja. Torej je bila metoda slapa primerna.
Toda v poznih devetdesetih je internet dramatično spreminjal svet in postal je potreben nov pristop. Tako je zaživela agilna metodologija.
Sledi podrobnejši pogled na to gibanje za razvoj programske opreme in kako lahko pomaga vam in vaši ekipi.
Zgodovina razvojne metode Agile
Agilni razvoj programske opreme je zrasel iz interneta in njegove nenasitne potrebe po aplikacijah v letih razcveta v devetdesetih in začetku leta 1990.
To je bilo tudi obdobje, ko so številni razvijalci brez izkušenj z računalništvom prešli na spletni razvoj zaradi velike potrebe po spletnih mestih, namenjenih različnim skupinam in industrijam.
Seveda je bila večina startupov majhnih. Torej se je večina razvoja zgodila v majhnih skupinah, pri čemer je bil končni cilj pogosto hiter čas do trga. Ker je zamuda pomenila izgubo tržnega deleža.
Da bi se zoperstavili omejitvam, ki jih je model slapa postavil pri čim hitrejšem dajanju izdelkov na trg, so različni razvijalci v devetdesetih letih prejšnjega stoletja iznašli različne metode. Vključujejo Rapid Application Development (RAD), Scrum, Extreme Programming (XP), Kanban in druge.
Nato se je nekje leta 2001 v Utahu v ZDA zbralo 17 razvijalcev, ki so izvajali eno ali drugo obliko zgodnjega agilnega razvoja. Nato so srečanje zaključili z objavo 'Manifesta za agilni razvoj programske opreme.
Ta manifest temelji na 4 vrednotah in 12 načelih.
4 vrednote in 12 načel agilnega razvoja
Na podlagi izkušenj, ki so jih zbrali med sestankom, je 17 razvijalcev doseglo dogovor o naboru vrednosti za učinkovitejše ustvarjanje programske opreme.
Te štiri vrednosti so naslednje:
- Posamezniki in interakcije nad procesi in orodja. To pomeni, da je razvoj programske opreme z orodji ob upoštevanju določenega postopka pomemben. Toda pomembnejše je imeti kompetentne ljudi, ki učinkoviteje sodelujejo.
- Delovna programska oprema nad obsežno dokumentacijo. Ta napade metodo slapa, po kateri najprej načrtujete programsko opremo in pišete dokumentacijo zanjo pred dejanskim procesom razvoja programske opreme.
- Sodelovanje s strankami nad pogodbenimi pogajanji. Samo s tesnim sodelovanjem s stranko ali uporabnikom se lahko naučite in razvijete točno to, kar stranka potrebuje. To ustvarja večjo vrednost.
- Odziv na spremembe nad sledenjem načrtu. Sledenje načrtu projekta je pomembno. Toda načrt ne sme biti preveč tog. Prilagoditi se mora spremembam, da bi izpolnila pričakovanja zainteresiranih strani.
Te zgornje vrednosti Agilnega manifesta temeljijo na 12 načelih in so naslednja:
- Zadovoljstvo strank z zgodnjo in stalno dostavo dragocene programske opreme.
- Dobrodošli spremenljive zahteve, tudi v poznem razvoju.
- Pogosto dobavljajte delujočo programsko opremo (tedne namesto mesecev)
- Tesno, vsakodnevno sodelovanje med poslovneži in razvijalci
- Projekti so zgrajeni okoli motiviranih posameznikov, ki jim je treba zaupati
- Pogovor iz oči v oči je najboljša oblika komunikacije (kolokacija)
- Delujoča programska oprema je primarno merilo napredka
- Trajnostni razvoj, sposoben vzdrževati stalen tempo
- Stalna pozornost tehnični odličnosti in dobremu dizajnu
- Enostavnost – umetnost povečanja količine neopravljenega dela – je bistvena
- Najboljše arhitekture, zahteve in načrti izhajajo iz samoorganizirajočih ekip
- Ekipa redno razmišlja o tem, kako postati učinkovitejša, in se temu primerno prilagaja
Ponovitve ali sprinti
Ponovitve ali sprinti pri agilnem razvoju programske opreme so kratka obdobja, običajno od 1 do 4 tednov, v katerih je razvojno delo razdeljeno. To olajša upravljanje, saj zahteva manj načrtovanja.
Vsaka ekipa je običajno sestavljena tudi iz članov z različnimi funkcijami, ki lahko vključujejo načrtovanje, analizo, oblikovanje, kodiranje in testiranje.
Skupina dela na programski opremi pri vsaki ponovitvi ali sprintu skupaj. In na koncu proizvedejo delujoč izdelek. Ta delovni kos programske opreme je merilo resničnega napredka v skladu z Agilnim manifestom.
Odvisno od izdelka in strankinih potreb se lahko izdelek iteracije sprosti na trg ali ne. Zato je pogosto potrebnih veliko ponovitev za eno izdajo.
Prednosti agilnega razvoja
Kot si lahko predstavljate, agilna metodologija prinaša številne prednosti. So naslednji:
- Hitrejša uresničitev idej
- Večja prilagodljivost kot pristop slapa
- Izboljšana produktivnost z upravljanimi iteracijami
- Boljši izdelki z uporabniškimi interakcijami
- Napake se hitro prepoznajo in odpravijo
Slabosti Agile metodologije
Delo z agilno razvojno metodo ima tudi nekaj slabosti. In lahko vključujejo:
- Na začetku je lahko težko oceniti celotne stroške
- Potrebuje veliko vnosa strank
- Vključuje veliko nenačrtovanega dela
- Ni jasno opredeljenega konca projekta
Kdaj uporabiti agilne metode
- Ko ne morete oceniti, kaj programska oprema zahteva
- Imate dovolj dostopa do strank
- Razvijate spletno aplikacijo ali sistem, ki ga je enostavno posodobiti
- S zgodnjo izdajo morate hitro zajeti tržni delež
Priljubljena razvojna ogrodja Agile
Obstaja veliko priljubljenih agilnih razvojnih okvirov. Nekateri so začeli veliko pred Agilnim manifestom leta 2001, drugi pa kasneje.
Cilj ogrodja je preprosto določiti pravila metode. Medtem ko so najbolj priljubljena ogrodja navedena spodaj za vašo referenco, jih je še veliko več. Prav tako lahko ustvarite svoje ali spremenite obstoječe ogrodje, da bo ustrezalo vaši ekipi.
- Scrum: To ogrodje je zasnovano za ekipe z 10 ali manj člani. Delo je razdeljeno na sprinte po 2-4 tedne z dnevnimi 15-minutnimi sestanki.
- Kanban: Kanban, ki izvira iz Toyote, je japonska beseda, ki pomeni reklamni pano in je zelo koristna za ekipe, ki cenijo vizualne pripomočke. Opravila se premikajo iz ene faze v drugo z uporabo vizualnih predstavitev, kot so samolepilni lističi ali aplikacije.
- Hiter razvoj aplikacij RAD: ta stavek se lahko nanaša na agilni razvoj programske opreme na splošno ali na metodo Jamesa Martina. RAD se osredotoča na zahteve uporabniškega vmesnika in se močno zanaša na izdelavo prototipov.
- Lean zagon: To ogrodje je za tiste, ki morajo razviti izdelek ali storitev, vendar morajo najprej ugotoviti njegovo tržno sposobnost preživetja. Vključuje uporabo eksperimentiranja, da bi ugotovili, kaj deluje in kaj ne.
Drugi pomembni okviri vključujejo ekstremno programiranje (XP), prilagodljiv razvoj programske opreme, agilno modeliranje, metodo razvoja dinamičnih sistemov in skalirano agilno ogrodje.
Metodologije Agile vs Waterfall
Tukaj je vzporedni pogled na agilne in slapovne metode za razvoj programske opreme. Pomaga lahko vedeti, kako se vsaka metoda ujema z drugo. Tako lahko preprosto izberete najboljša orodja za svoje delo.
| Agile | Slap |
|---|---|
| Inkrementalni in iterativni pristop | Linearni in sekvenčni model življenjskega cikla |
| Prilagodljiv za spremembe | Toge izvedbe |
| Testi in pregledi so v teku | Po zaključku je samo ena faza testiranja |
| Zahteve se lahko spremenijo | Zahteve se določijo po načrtovanju |
| Zbirka številnih manjših projektov | En sam projekt |
| Več vključevanja strank | Manjša vključenost strank |
Prilagodljiv proti napovednemu razvoju
Cilj agilnega razvoja programske opreme je prilagajanje spremembam v realnem svetu. In te so pogosto posledica potreb stranke ali uporabnika. Prilagoditev je v močnem nasprotju z napovedno naravo modela slapa.
Potem je smiselno uporabiti agilne metode pri razvoju sistemov, za katere niste tako prepričani, kako se bodo stvari iztekle. Ali ko so v industriji stalne spremembe in razvoj. Velik primer je internet.
Sicer pa, če se razvijate za sistem ali trg, o katerem veste vse in se skoraj ne spreminja ali je imun na spremembe. Potem bi lahko bila v pomoč napovedna narava filozofije slapa.
Izdelava programske opreme
Izdelava programske opreme je še ena filozofija, ki temelji na načelih agilnega razvoja in se osredotoča na poudarjanje veščin razvijalcev programske opreme, vključenih v projekt.
Gibanje Software Craftsmanship ima tudi manifest, ki pravi:
Kot ambiciozni mojstri programske opreme dvigujemo lestvico profesionalnega razvoja programske opreme tako, da ga izvajamo in pomagamo drugim pri učenju obrti. S tem delom smo pridobili vrednost: · Ne le delujoče programske opreme, ampak tudi dobro izdelane programske opreme · Ne le odzivanja na spremembe, ampak tudi nenehno dodajanje vrednosti · Ne le posameznikov in interakcij, ampak tudi skupnosti strokovnjakov · Ne le strank sodelovanje, ampak tudi produktivna partnerstva To pomeni, da smo pri iskanju elementov na levi ugotovili, da so elementi na desni nepogrešljivi. © 2009, spodaj podpisani. To izjavo lahko prosto kopirate v kakršni koli obliki, vendar samo v celoti s tem obvestilom
zaključek
Če pridemo do konca našega pogleda na agilno metodologijo in razvoj programske opreme, lahko vidite, da obstaja toliko možnosti.
Vsaka ekipa je drugačna. In tako kot so različne ekipe razvile svoje različne metode za prilagajanje spreminjajočim se časom. Tudi vi se boste morali prilagoditi tako, da se odločite za že vzpostavljen okvir ali ga prilagodite svoji ekipi.





