Agilna metodologija: Značenje, prednosti, nedostaci i drugo

Oduvijek ste željeli znati što je agilna metodologija u razvoju softvera? Ovdje pobliže pogledajte detalje.

Agilna metodologija je filozofija razvoja softvera koja ima za cilj isporučiti bolju vrijednost korisnicima korištenjem kraćih razvojnih ciklusa, uključujući stalne revizije.

Razvoj softvera izrastao je iz područja matematike i znanosti. Dakle, izvorno je uključio znanstvene metode iz tih područja.

Te su se metode 1970-ih razvile u pristup vodopada kako bi zadovoljile zahtjeve dana. Računala i njihov softver u to su vrijeme bili veliki, složeni i dizajnirani da traju desetljećima. Dakle, metoda vodopada je dobro odgovarala.

No, do kasnih 1990-ih, internet je dramatično mijenjao svijet i postao je neophodan novi pristup. Tako je zaživjela agilna metodologija.

Slijedi bliži pogled na ovaj pokret razvoja softvera i kako on može pomoći vama i vašem timu.

Povijest agilne razvojne metode

Agilni razvoj softvera izrastao je iz interneta i njegove nezasitne potrebe za aplikacijama tijekom godina procvata 1990-ih i ranih 2000-ih.

To je također bilo razdoblje kada su se mnogi programeri bez znanja o informatici prebacili na web razvoj zbog ogromne potrebe za web stranicama namijenjenim različitim skupinama i industrijama.

Naravno, većina startupa bila je mala. Dakle, većina razvoja dogodila se u malim timovima, s krajnjim ciljem često brzog izlaska na tržište. Kao što je kašnjenje značilo gubitak tržišnog udjela.

Kako bi se suprotstavili ograničenjima koja je model vodopada postavio za što brže plasiranje proizvoda na tržište, različiti programeri osmislili su različite metode tijekom 1990-ih. Oni uključuju Rapid Application Development (RAD), Scrum, Extreme Programming (XP), Kanban i druge.

Zatim, negdje 2001. godine, 17 programera koji su prakticirali jedan ili drugi oblik ranog agilnog razvoja, okupilo se u Utahu, SAD. Zatim su svoj sastanak završili objavljivanjem 'Manifesta za agilni razvoj softvera'.

Ovaj se manifest temelji na 4 vrijednosti i 12 načela.

4 vrijednosti i 12 principa agilnog razvoja

Iz iskustava koja su skupili tijekom sastanka, 17 programera postiglo je dogovor o nizu vrijednosti za učinkovitiju izradu softvera.

Ove četiri vrijednosti su sljedeće:

  1. Pojedinci i interakcije preko procesa i alat. To znači da je važno razvijati softver s alatima uz praćenje određenog procesa. Ali važnije je imati kompetentne ljude koji učinkovitije rade zajedno.

  2. Radni softver preko sveobuhvatne dokumentacije. Ovaj napada metodu slapa prvo dizajniranja softvera i pisanja dokumentacije za njega prije stvarnog procesa razvoja softvera.

  3. Suradnja s klijentima preko pregovora o ugovoru. Samo bliskom suradnjom s kupcem ili korisnikom možete naučiti i razviti točno ono što kupac treba. Ovo stvara veću vrijednost.

  4. Reagiranje na promjene preko slijeđenja plana. Važno je slijediti plan projekta. Ali plan ne smije biti previše krut. Mora se prilagoditi promjenama kako bi ispunio očekivanja dionika.

Ove gornje vrijednosti Agilnog manifesta temelje se na 12 načela i ona su sljedeća:

  1. Zadovoljstvo kupaca ranom i kontinuiranom isporukom vrijednog softvera.
  2. Dobrodošli promjenjivi zahtjevi, čak iu kasnom razvoju.
  3. Isporučujte radni softver često (tjednima umjesto mjesecima)
  4. Bliska, svakodnevna suradnja poslovnih ljudi i programera
  5. Projekti se grade oko motiviranih pojedinaca, kojima treba vjerovati
  6. Razgovor licem u lice najbolji je oblik komunikacije (kolokacija)
  7. Softver koji radi je primarno mjerilo napretka
  8. Održivi razvoj, sposoban održavati konstantan tempo
  9. Stalna pažnja tehničkoj izvrsnosti i dobrom dizajnu
  10. Jednostavnost - umijeće maksimiziranja količine neizvršenog posla - ključna je
  11. Najbolje arhitekture, zahtjevi i dizajn proizlaze iz samoorganizirajućih timova
  12. Tim redovito razmišlja o tome kako postati učinkovitiji i prilagođava se u skladu s tim

Ponavljanja ili sprintevi

Iteracije ili sprintovi u agilnom razvoju softvera kratka su razdoblja od obično 1 do 4 tjedna, u kojima je razvojni rad podijeljen. To olakšava upravljanje jer zahtijeva manje planiranja.

Svaki tim također se obično sastoji od članova s ​​različitim funkcijama, a one mogu uključivati ​​planiranje, analizu, dizajn, kodiranje i testiranje.

Tim radi na softveru pri svakoj iteraciji ili zajedno sprinta. I na kraju proizvedu radni proizvod. Ovaj radni dio softvera je mjera istinskog napretka, prema Agile Manifestu.

Ovisno o proizvodu i potrebama kupca, proizvod iteracije može biti pušten na tržište ili ne. Dakle, često je potrebno mnogo ponavljanja za jedno izdanje.

Prednosti Agile razvoja

Kao što možete zamisliti, agilna metodologija donosi mnoge prednosti. Oni su sljedeći:

  1. Brža realizacija ideja
  2. Više fleksibilnosti nego vodopadni pristup
  3. Poboljšana produktivnost s upravljanim iteracijama
  4. Bolji proizvodi kroz interakcije korisnika
  5. Pogreške se brzo prepoznaju i otklanjaju

Nedostaci Agile metodologije

Postoje i neki nedostaci rada s agilnom metodom razvoja. A mogu uključivati:

  1. Može biti teško procijeniti ukupne troškove na početku
  2. Zahtijeva mnogo unosa korisnika
  3. Uključuje mnogo neplaniranog posla
  4. Nema jasno definiranog kraja projekta

Kada koristiti agilne metode

  1. Kada ne možete procijeniti što softver zahtijeva
  2. Imate dovoljno pristupa kupcima
  3. Razvijate web aplikaciju ili sustav koji se lako ažurira
  4. Ranim izdavanjem morate brzo osvojiti tržišni udio

Popularni Agile razvojni okviri

Postoji mnogo popularnih okvira za agilni razvoj. Neki su počeli mnogo prije Agile Manifesta iz 2001., dok su drugi došli kasnije.

Cilj okvira je jednostavno definirati pravila metode. Dakle, iako su najpopularniji okviri navedeni u nastavku za vašu referencu, ima ih mnogo više. Također možete slobodno izraditi svoj ili modificirati postojeći okvir kako bi odgovarao vašem timu.

  1. Ološ: Ovaj okvir je dizajniran za timove s 10 ili manje članova. Rad je podijeljen na sprinteve od 2-4 tjedna sa dnevnim sastancima od 15 minuta.

  2. Kanban: Potječe iz Toyote, Kanban je japanska riječ koja znači reklamni pano i vrlo je korisna za timove koji cijene vizualna pomagala. Zadaci se premještaju iz jedne faze u drugu pomoću vizualnih prikaza poput ljepljivih bilješki ili aplikacija.

  3. Brzi razvoj aplikacija RAD: Ovaj se izraz može odnositi na agilni razvoj softvera općenito ili na metodu Jamesa Martina. RAD se fokusira na zahtjeve korisničkog sučelja i uvelike se oslanja na izradu prototipova.

  4. Lean Startup: Ovaj okvir je za one koji trebaju razviti proizvod ili uslugu, ali prvo moraju utvrditi njihovu tržišnu održivost. Uključuje korištenje eksperimentiranja kako bi se vidjelo što funkcionira, a što ne.

Ostali značajni okviri uključuju ekstremno programiranje (XP), prilagodljivi razvoj softvera, agilno modeliranje, metodu razvoja dinamičkih sustava i skalirani agilni okvir.

Metodologije Agile vs Waterfall

Ovdje je usporedni pogled na agilne i vodopadne metode za razvoj softvera. Može pomoći znati kako se svaka metoda slaže s drugom. Dakle, lako možete odabrati najbolje alate za svoj posao.

OkretanVodopad
Inkrementalni i iterativni pristupLinearni i sekvencijalni model životnog ciklusa
Fleksibilan za promjenuKrute implementacije
Testovi i pregledi su u tijekuPostoji samo jedna faza testiranja nakon završetka
Zahtjevi se mogu promijenitiZahtjevi se utvrđuju nakon planiranja
Zbirka mnogih manjih projekataJedan jedini projekt
Više uključenosti kupacaManje uključenosti kupaca

Adaptivni nasuprot prediktivnom razvoju

Cilj agilnog razvoja softvera je prilagoditi se promjenama u stvarnom svijetu. A one su često rezultat potreba kupaca ili korisnika. Prilagodba je u oštroj suprotnosti s prediktivnom prirodom modela vodopada.

Tada ima smisla koristiti agilne metode pri razvoju sustava za koje niste sigurni kako će stvari ispasti. Ili kada postoje stalne promjene i evolucija u industriji. Internet je veliki primjer.

Inače, ako se razvijate za sustav ili tržište o kojem znate sve, a koje se teško mijenja ili je imuno na promjene. Tada bi prediktivna priroda filozofije slapa mogla biti od pomoći.

Izrada softvera

Software Craftsmanship je još jedna filozofija koja se temelji na principima agilnog razvoja i fokusirana je na naglašavanje vještina programera softvera uključenih u projekt.

Pokret Software Craftsmanship također ima manifest u kojem stoji:

Kao ambiciozni softverski obrtnici, podižemo ljestvicu profesionalnog razvoja softvera prakticirajući ga i pomažući drugima da nauče zanat. Kroz ovaj rad došli smo do vrijednosti: · Ne samo softvera koji radi, već i dobro izrađenog softvera · Ne samo da odgovara na promjene, već i stalno dodaje vrijednost · Ne samo pojedinaca i interakcija, već i zajednice profesionalaca · Ne samo kupaca suradnju, ali i produktivna partnerstva. To jest, u potrazi za stavkama s lijeve strane otkrili smo da su stavke s desne strane nezamjenjive.  © 2009, dolje potpisani. Ova se izjava može slobodno kopirati u bilo kojem obliku, ali samo u cijelosti putem ove obavijesti

Zaključak

Dolazeći do kraja našeg pogleda na agilnu metodologiju i razvoj softvera, možete vidjeti da postoji toliko mnogo opcija.

Svaki tim je drugačiji. I kao što su različiti timovi razvili svoje različite metode za prilagodbu promjenjivim vremenima. I vi ćete se morati prilagoditi tako što ćete ili krenuti s već uspostavljenim okvirom ili ga prilagoditi svom timu.

Nnamdi Okeke

Nnamdi Okeke

Nnamdi Okeke je računalni entuzijast koji voli čitati širok raspon knjiga. Više voli Linux nego Windows/Mac i koristio ga je
Ubuntu od svojih ranih dana. Možete ga uhvatiti na twitteru putem bongotrax

Članci: 298

Primajte tehnološke stvari

Tehnički trendovi, trendovi startupa, recenzije, online prihod, web alati i marketing jednom ili dvaput mjesečno