Uvod u Agile i Scrum
Agile je metodologija razvoja softvera koja ima širinu pojasa da se brzo prilagodi promjenjivim zahtjevima projekta i da se prilagodi razvoju novog proizvoda dok je projekt u tijeku ili nakon završetka projekta, za razliku od tradicionalnog upravljanja projektima.
Shvatimo razlikovnu prednost koju Agile ima u odnosu na tradicionalnu metodologiju upravljanja projektima:
Tradicionalni pristup:
- Detaljno planiranje prije početka
- Omogućuje usvajanje minimalnih promjena
- Fiksna definicija projekta
Agilni pristup:
- Prije početka potrebno je minimalno planiranje
- Prihvatit će se i prilagoditi se promjenama
- Fiksno vrijeme i trošak
Scrum je najčešće korišteni i najpopularniji pristup za primjenu agilne metodologije.
Uskoro ćemo doći do dijela scruma, ali prvo da vidimo više o agilnom okviru.
Načela iza agilnog manifesta
- Zadovoljstvo kupaca je najveći prioritet koji se postiže kontinuiranom i ranom isporukom vrijednog softvera.
- Dostavite radni softver u kratkom vremenu, uz kontinuirani razvoj novog softvera / proizvoda koji se slijede po istom pristupu.
- Trebali bismo biti u skladu s promjenjivim zahtjevima, čak i ako dođe kasno tijekom SDLC životnog ciklusa.
- Članovi tima trebali bi uvijek biti motivirani i za to im treba pružiti dovoljno podrške i dobrog okruženja.
- Programeri i poslovni ljudi moraju raditi zajedno tijekom cijelog projekta.
- Najefikasniji način razgovora smatra se interakcijom licem u lice.
- Održivi razvoj. Svi članovi tima trebali bi biti u mogućnosti održavati stalan tempo.
- Djelotvorni proizvod / softver smatra se primarnom mjerom napretka.
- Na kraju dana, glavni fokus bi trebao biti tehnička izvrsnost i robustan dizajn.
- Jednostavnost se treba pridržavati tijekom procesa SDLC
- Timovi bi zapravo trebali pokazati kontinuiranu učinkovitost i usvojiti bilo kakve promjene za povećanje učinkovitosti.
- Robustan dizajn i arhitektura potiču od samoorganizirajućih timova.
Pristupi agilnoj implementaciji:
Link: https://goo.gl/images/fkZqGe
- SCRUM - Ovo je iterativni pristup u kojem postoji nešto što se naziva sprinteri koji traju do jednog ili dva tjedna. Ovaj pristup omogućuje timovima da redovito isporučuju radni proizvod ili softver.
- Kanban - Da bi se implementirala agilnost, ovaj pristup koristi vizualni okvir. Ovdje nema sprintova fiksne duljine i tim dobiva zadatak iz prioriteta zaostatka.
- Ekstremno programiranje (XP) - Ovaj je pristup namijenjen poboljšanju kvalitete softvera i odzivnosti uključivanjem jednostavnosti, povratnih informacija i prihvaćanjem promjena.
- Razvoj vođen značajkama (FDD) - Ovaj pristup uključuje 5 osnovnih aktivnosti koje su - Razviti cjelokupni model, sastaviti popis značajki, planirati značajku, dizajnirati po značajki i izgraditi po značajkama.
- Razvoj adaptivnog sustava (ASD) - Ovaj se pristup može koristiti za izgradnju složenih softvera i sustava i uglavnom se usredotočuje na timsku suradnju i samoorganizaciju. Sadrži 3 iterativne aktivnosti koje su - Nagađajte, surađujte i učite.
- Metoda razvoja dinamičkog sustava - DSDM je agilni pristup koji slijedi iterativni i inkrementalni pristup koji se uvelike temelji na Metodologiji brzog razvoja aplikacija. Rješava uobičajene nedostatke projekata, poput problema s projektom, nedostajućih rokova itd.
- Lean razvoj softvera - Lean softverski razvoj je okretni pristup koji ima 7 osnovnih principa, a oni su: eliminirajte otpad, osnažite tim, brzo isporučite, optimizirajte cijelu, ugradite kvalitetu, odložite odluke i pojačajte učenje.
Što je Scrum?
U prethodnim smo odjeljcima već vidjeli pristupe koji se koriste za provođenje agilnog procesa, a Scrum je bio jedan od njih, Scrum je jedan od najvažnijih i najčešće korištenih agilnih metoda. Scrum je iterativni pristup u kojem postoji nešto što se zove sprint koji traje do jednog ili dva tjedna. Ovaj pristup omogućuje timovima da redovito isporučuju radni proizvod ili softver. Ovdje su odgovornosti, uloge i sastanci odlučeni u Scrumu, a sprintovi su rasporedi u kojima je planiranje sprint-a, demo sprint-a, dnevni standup i retrospektiva sprint-a.
Uloge za Scrum / Scrum timovi:
Link: https://goo.gl/images/XpNHBe
- Scrum Master - Scrum Master je uloga koja je odgovorna za tim Scruma da slijedi Scrum metodologiju. Scrum Master organizira sastanke, potiče tim, olakšava planiranje i praćenje, bavi se izazovima i rješava uska grla. Scrum Master također komunicira s vlasnikom proizvoda kako bi osigurao da je zaostatak proizvoda spreman za sljedeći sprint.
- Vlasnik proizvoda - Vlasnik proizvoda odgovoran je za analizu i komunikaciju verzije softvera Scrum timu. Vlasnik proizvoda također koordinira s Scrum Master-om da odluči o zaostatcima proizvoda za sprintove.
- Razvojni tim - Razvojni tim sastoji se od profesionalaca koji su odgovorni za kontinuirani razvoj, testiranje i isporuku softvera. Oni određuju kako isporučiti komade djela u čestim koracima.
Koraci u protoku struje:
Link: https://goo.gl/images/6YTUPf
- Zaostatak proizvoda - Zaostatak proizvoda održava popis značajki proizvoda. Odgovornost je vlasnika proizvoda i majstora Scruma da prioritet postave stavkama zaostalih predmeta na temelju korisničkih priča i zahtjeva.
- Planiranje sprinta - sastanak je koji omogućuje voditelj Scrum-a na kojem vlasnik proizvoda predstavlja detalje o zaostatku proizvoda, postavlja kriterije prihvaćanja isporuke i razvojni tim koji definira rad i trud koji su svakodnevno napredovali.
- Pročišćavanje zaostalih predmeta - Da bi se zaostaci proizvoda ažurirali, koristimo doradu zaostataka. Ovdje su korisničke priče podijeljene na manje dijelove i sve nebitne korisničke priče uklanjaju se
- Daily Scrum - Dnevno trajanje sastanka traje 15 minuta na kojem se razgovaraju o tri pitanja koja su: što je postignuto jučer, što je plan za danas i koje su prepreke.
- Sastanak za pregled sprinta - ovaj sastanak se izvodi na kraju svakog sprinta gdje se prikazuje demonstracija uživo koja prikazuje ono što je postignuto tijekom sprinta.
- Retrospektivni susret sprinta - Ovaj sastanak možemo nazvati i uspjehom na kojem tim raspravlja o procesu koji je funkcionirao ili koji nije djelovao tijekom sprinta svojim potezima.
Zaključak
U ovom smo članku vidjeli da je Agile metodologija razvoja softvera koja ima širinu pojasa da se brzo prilagodi promjenjivim zahtjevima projekta i da se prilagodi razvoju novog proizvoda dok je projekt u tijeku ili nakon završetka projekta za razliku od tradicionalnog upravljanja projektima dok je Scrum najčešće korišteni i najpopularniji pristup za primjenu agilne metodologije.
Preporučeni članci
Ovo je vodič za Agile i Scrum. Ovdje smo razgovarali o različitim pristupima agilnosti i skrumpu. Možete i proći naše druge predložene članke da biste saznali više -
- Što je umjetna inteligencija
- Pitanja za intervju s agilnim Scrumom
- Što je SDLC
- Agile vs Scrum vs Vodopad