agilne metode za razvoj softvera.ppt

45
Fakultet organizacionih nauka, Beograd AGILNE METODE ZA RAZVOJ SOFTVERA

Upload: maria-konjevic

Post on 07-Nov-2015

141 views

Category:

Documents


7 download

TRANSCRIPT

  • Fakultet organizacionih nauka, BeogradAGILNE METODE ZA RAZVOJ SOFTVERA

  • AgendaOsnovni pojmovi

    Agile Manifesto, definicija i principi

    Karakteristike agilnog razvoja

    Pojam kaubojskog kodiranja

    Aktuelne agilne metode

  • Pojam agilnih metoda

    Grupa metodologija koje se zasnivaju na iterativnom i inkrementalnom razvojuZahtevi i reenja se razvijaju kroz saradnju izmeu timova

  • Pojam iteracije

    Jedan kratak period vremena, koji obino traje izmeu jedne i etiri nedeljeSvaka iteracija ukljuuje tim kroz celokupan ciklus razvoja softvera

  • Agile ManifestoOsnovna definicija agilnog razvojaNastao je 2001. godine kao odgovor na potrebu za kreiranjem razvojnih metoda koje je lako savladatiLista principa koji se moraju zadovoljiti da bi neka metoda bila agilna

  • Agile Manifesto principiZadovoljstvo korisnika brzom isporukom korisnog softvera Mogunost promene zahteva, ak i u poodmakloj fazi razvoja esta isporuka softvera, u razmaku od par nedeljaIspravan softver je osnovna mera napretka

  • Agile Manifesto principi5. Razvoj koji je u stanju da odri konstantan tempoBliska kooperacija izmeu projektanata i poslovnih saradnikaNajbolji tip komunikacije je komunikacija licem-u-liceProjekti se izvode u okruenju u kojem su motivisani pojedinci, u koje se moe imati poverenja

  • Agile Manifesto principi9. Kontinualno usmeravanje panje ka tehnikoj vetini i dobrom dizajnu Jednostavnost Samoorganizovani timovi Prilagoavanje promenljivim okolnostima

  • KarakteristikeAdaptivno planiranjeEvolutivni razvoj i isporukaIterativni pristupBrz i fleksibilan odgovor na promeneTimski rad i kolaboracijaRazbijanje zadatka na sitne korakeNema dugoronog planiranja

  • KarakteristikeMinimalan broj funkcionalnosti po iteracijiTim nema ni jedan od postojeih oblika hijerarhijeTim sam bira nain realizacije zadataka u svakoj iteracijiZastupnik klijenta proverava usklaenost projekta sa zahtevima

  • KarakteristikeAkcenat je na funkcionalnom softveru, a ne na dokumentacijiAgilne metode se nazivaju i nedisciplinovanim hakovanjem ili kaubojskim kodiranjem

  • Kaubojsko kodiranje nije agilnoKaubojsko kodiranje karakterie odsudstvo definisane metodeAgilni timovi slede definisani proces, koji je esto vrlo rigorozan

  • Maksime agilnog razvojaVeu vrednost ima:Pojedinac i interakcija od procesa i alata Dobra programska podrka od sveobuhvatne dokumentacije Saradnja s klijentima od pregovaranja oko ugovora Brz odgovor na promene od praenja plana

  • ta ih ini jedinstvenim?Primenom agilnih metoda razvoj softvera postaje:InkrementalanKooperativanDirektanAdaptivan

  • Proces uvoenjaPre primene agilnih metoda odgovoriti na sledea pitanja: kako se odabrana metoda uklapa u okruenje da li postoje timovi koji ele da probaju da rade na agilan nain da li postoje zainteresovani korisnici

  • IstorijatNastanak ranih agilnih metoda vezuje se za period pre 2000. godine:1986. SCRUM u oblasti opteg menadmenta1995. Adaptivni razvoj softvera, Razvoj voen karakteristikama i Metod dinaminog razvoja sistema1996. Crystal clear i ekstremno programiranje

  • Agilne metode danasEkstremno programiranje (XP) i Industrijsko ekstremno programiranje (IXP)ScrumAdaptivni razvoj softvera (ASD)Rational Unified Process

  • Agilne metode danasCrystal clear i ostale crystal metodeMetode dinamikog razvoja sistema (DSDM)Razvoj voen karakteristikama (FDD)Agile Unified Process (AUP)Essential Unified Process

  • Ekstremno programiranje - XPCilj je da pobolja kvalitet softvera i prui mogunost brzog odgovora na promenljive zahteve korisnikaZasniva se na teoriji manje je dobro, ali vie je bolje, pa otuda i naziv ove metodologije ekstremno programiranje

  • XP karakteristikeProgramiranje u parovimaEkstenzivno proveravanje kodaFunkcionalnosti se programiraju tek kada se pojavi potrebaRavna menadment strukturaJednostavnost i jasnoa kodaesta komunikacija sa kupcem i meu samim programerima

  • Potencijalne mane

    Nestabilni zahtevi korisnikaNedostatak specifikacije i dokumenataKompromisi usled konflikta sa korisnikom nisu dokumentovani

  • ivotni ciklusIstraivanjePlaniranjeIteracije do nove distribucijeProizvodnjaOdravanje i umiranje

  • Industrijsko ekstremno programiranje - IXPNastalo 2004. u konsultantskoj firmi Cutter, evolucujom ekstremnog programiranja Osnovne vrednosti mogu biti fleksibilne, odnosno razlikuju se od tima do tima

  • Pet osnovnih vrednosti

  • Poboljanje postojee prakseNeki od naina za poboljanje su:Razvoj voen testovima prieDizajn voen domenomProgramiranje u parovimaIterativno testiranje korisnosti

  • ScrumIterativni, inkrementalni razvojni okvirUpravljanje projektima, pre svega za razvoj softveraAgilni razvoj softveraTermin dolazi iz ragbijaStrategija vraanje lopte nazad u igru uz pomo timskog rada

  • Scrum - karakteristikeSprint - osnovna jedinica u procesu razvojaSprint traje izmeu jedne nedelje i mesec dana i tei da ima konstantnu duinuDefinisanje skupa praksi i uloga

  • Scrum uloge1. Scrum Master odrava procese, najee umesto projektnog menadera2. Product Owner predstavlja zainetesovane strane ili poslovanje3. Team grupa ije su funkcije isprepletane, a zadatak je analiza, dizajn, implementacija, testiranje itd.

  • Scrum proces

  • Faze procesaFaza pre igre:Planiranje - definisanje sistema koji e se razvijatiDizajn/arhitektura kreiranje dizajna sistema na osnovu podataka iz prethodne fazeFaza razvoja (faza igre) - agilni deo Scrum pristupa, neprekidna kontrola svih bitnih parametara; crna kutija u kojoj se moe oekivati nepredvieno ponaanje

  • Faze procesa3. Faza posle igre do ove faze se dolazi kada se utvrdi da su svi zahtevi ispunjeni; nema novih zahteva, radi se priprema za izdavanje sistemaPriprema ukljuuje testiranje, integraciju i dokumentaciju

  • Crystal Clear lan Crystal porodice metodologijaNamenjen timovima koji se sastoje od 6 ili 8 projektanataPrimena na sisteme koji nisu krucijalniAkcenat na efikasnosti i bezbednosti komponenti projektaFokusira se na ljude, a ne na procese

  • Adaptive Software DevelopmentPosledica brzog razvoja aplikacija Princip kontinualne adaptacije procesa Repetitivne serije ciklusa pekulacije, kolaboracije i uenjaParadoks planiranja - sve zainteresovane strane gree po pitanju nekih aspekata, dok pokuavaju da definiu misiju projekta

  • ASD ivotni ciklusOsnovne karakteristike ASD ivotnog ciklusa su: Fokusira se na misijuZasniva se na karakteristikama IterativanVoen je rizikomTolerantan na promene

  • Feature-driven developmentIterativni, inkrementalni proces za razvoj softveraSpaja najbolje prakseBlagovremena isporukaFDD proces se sastoji od 5 aktivnosti:Razvoj modelaKreiranje liste karakteristikaPlaniranje na osnovu karakteristikaDizajniranje prema karakteristikamaRazvoj prema karakteristikama

  • Dynamic systems development methodBazira na metodi brzog razvoja aplikacijaIterativni, inkrementalni pristupKontinualno ukljuivanje korisnika odnosno kupcaDefinie trokove, eljeni kvalitet i vremeKoristi MoSCoW metodu za prioritete

  • MoSCoW metodaOva metoda definie sledee kategorije:M MUST zahtevi koji moraju biti zadovoljeniS SHOULD stavke koje bi trebalo ukljuiti u reenje, ako je to mogueC COULD - poeljni zahtevi, ali ne i neophodni i bie ukljueni ukoliko to vreme i resursi dozvoleW - WON'T zahtevi o kojima se moe razmiljati u budunosti

  • DSDM principiFokusirati se na potrebe poslovanjaIsporuka na vremeKolaboracijaNikada ne praviti kompromis po pitanju kvalitetaInkrementalni razvoj koji se bazira na vrstoj osnoviIterativni razvojKontinualna i jasna komunikacijaDemonstracija kontrole

  • Rational Unified ProcessDeo Rational Software korporacije, koja je bila sastavni deo IBM-a do 2003. godineAdaptibilan proces koji se moe krojiti prema potrebama organizacije i timovaGlavni elementi:UlogeProivodi radaZadaci

  • RUP ivotni ciklusivotni ciklus projekta se deli u etiri faze:Poetna fazaFaza razradeFaza konstrukcijePrelazna fazaSvaka faza ima odreeni cilj koji mora da zadovolji i na kraju prekretnicu koja oznaava da je cilj ostvaren

  • Agile Unified ProcessPojednostavljena verzija RUP-aAUP ima sedam disciplina:ModelImplementacijaTestRazvojKonfiguracioni menadmentProjektni menadmentOkruenje

  • Essential Unified ProcessNastao je kako bi poboljao Rational Unified ProcessMogunost biranja onih praksi koje su primenjive u konkretnoj situaciji i njihovo ukljuivanje -> poboljanje u odnosu na RUP

  • Agile ModelingDodatak ostalim agilnim metodama kao to su XP, AUP, ScrumOsnovne vrednosti AM: HrabrostKomunikacijaPovratna spregaSkromnostJednostavnost

  • VelocityMerenje tempa kojim tim radi kako bi se procenilo vreme potrebno za dodavanje nove funkcionalnostiMerenje brzine kako bi se obezbedile dodatne informacije o ostvarenom uinku tima tokom vremena

  • Velocity terminologijaJedinica posla - jedinica koju je tim izabrao kao meru brzine izvoenja projektaInterval - trajanje svake iteracije u procesu razvoja softveraBrzina - odreuje se na osnovu prethodna dva parametra

    *1