Upload
brooks
View
96
Download
0
Embed Size (px)
DESCRIPTION
Agile ir Scru m. Stanislovas Jonu šas. Tradicinis (krioklio) metodas. Tradicinių (krioklio) metodų prielaidos. Projekto valdymas yra nuspėjamas ir kartotinis procesas. Mes galime tiksliai iš anksto įvertinti užtrukimo laiką ir resursų poreikį projekto padarymui. - PowerPoint PPT Presentation
Citation preview
Agile ir ScrumStanislovas Jonušas
Tradicinis (krioklio) metodas
Tradicinių (krioklio) metodų prielaidos
Projekto valdymas yra nuspėjamas ir kartotinis procesas. Mes galime tiksliai iš anksto įvertinti užtrukimo laiką ir resursų poreikį
projekto padarymui. Mes ištikrųjų galime suplanuoti visas smulkmenas, kurios nepasikeis
per visą projekto laiką. Visi reikalavimai gali būti surinkti prieš pradedant projektą. Klientas (vartotojas) gali paaiškinti savo reikalavimus ir pasakyti, ko
jam tiksliai reikia, net nematydamas veikiančios programos. Reikalavimai niekada nepasikeis.
Agile pradžia
2001 metais vasario mėn, susirinko programuotojai į Snowbird (Utah) kurortą aptarti, kaip būtų galima greičiau ir kokybiškiau pagaminti PĮ.
Kent BeckMike BeedleArie van BennekumAlistair CockburnWard CunninghamMartin Fowler
James GrenningJim HighsmithAndrew HuntRon JeffriesJon KernBrian Marick
Robert C. MartinSteve MellorKen SchwaberJeff SutherlandDave Thomas
Agile Manifestas
Kurdami programinę įrangą ir padėdami ją kurti kitiems, mes randame geresnius būdus tai daryti. Dirbdami mes vertiname:
Žmones ir jų bendravimą labiau nei procesus ir įrankius;
Veikiančią programinę įrangą labiau nei išsamią dokumentaciją;
Bendradarbiavimą su klientu labiau nei derybas dėl kontraktų;
Reagavimą į pokyčius labiau nei plano vykdymą.
12 Agile principų
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the
customer's competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the
shorter timescale. Business people and developers must work together daily throughout the project. Build projects around motivated individuals. Give them the environment and support they need, and trust
them to get the job done. The most efficient and effective method of conveying information to and within a development team is face-to-
face conversation. Working software is the primary measure of progress. Agile processes promote sustainable development. The sponsors, developers, and users should be able to
maintain a constant pace indefinitely. Continuous attention to technical excellence and good design enhances agility. Simplicity--the art of maximizing the amount of work not done--is essential. The best architectures, requirements, and designs emerge from self-organizing teams. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior
accordingly.
Kodėl yra daroma Agile ?
Sumažinti kainą; Sumažinti riziką; Padeda išvengti esminių klaidų (fail-fast, fix-cheap); Padinti komandos produktyvumą; Rinkoje nieko naujesnio šiuo metu nėra; Dėl Mados (nes kiti tai daro).
Agile naudingas, kai:
Kuriamas inovatyvus produktas; Keičiasi rinkos/ekonomikos sąlygos; Sudėtingas (complex) produktas/projektas; Vartotojo reikalavimai yra pastoviai besikeičiantys, daug
neapibrėžtumo, sunku suprasti, ką reikia pagaminti.
Naudojant Agile yra būtina:
Kvalifikuoti (turintys reikiamus įgudžius) ir motyvuoti komandos nariai;
Efektyvus palaikymas iš kliento ir stiprus bendradarbiavimas su juo; Vykdomosios valdžios aplinkos palaikymas.
Agile naudojimas svarstytinas, kai:
Paprastas ir triavialus projektas, kai yra mažai nežinomujų. Organizacija naudoja „sunkų“ procesą ir lėtai priima sprendimus. Neįmanomas kliento/vartotojo įtraukimas (pakeičiame kažką kode,
bet klientas tų pakeitimų nepamato, nes pakeitmai buvo infrastruktūroje ir pan.)
Sena sistema, kur programos kodas „spageti“ principu. (Sunkiai padaromi pakeitimai projekte/produkte).
Kai suformuota komanda neturi reikiamų įgudžių (trūksta kažkokios srities specialisto, kuris būtinas PĮ pagaminimui).
Aukšto standarto reguliavimai, kai klaidos griežtai negalimos (pvz. Vaistų gamyba, atominės elektrinės, karinė pramonė).
Kodėl darant pagal Agile projektai žlunga? Agile metodas – tai ne sidabrinė kulka, jinai nesprendžia esminių
problemų, jeigu problemos yra susijusios su žiniomis ar komandos įgūžiais. Agile šitoje vietoje padės tik tuom, kad tos problemos anksčiau pasirodys (fail fast principas).
Nepavykęs kliento įtraukimas į procesą arba įmonės vykdomosios valdžios nepalaikymas.
Žmonės vadina projektą Agile projektu, bet nesupranta pagrindinių koncepcijų. Paprastai tai būna, kai daro „mini-waterfal“ ir sako, kad tai yra Agile.
Pagal Agile - paketimai yra visada sveikintini. Bet tai nereiškia, kad padarom ir po to daug kartų perdarinėjame. Agile šitokiems perdarinėjimams beprasmis.
Agile metodai
Scrum Extreme programming (XP) DSDM Lean software development Feature Driven Development (FDD) Agile Modeling Agile Unified Process (AUP) Agile Data Method Essential Unified Process (EssUP) Getting Real Open Unified Process (OpenUP) .....
Scrum
Empirinio proceso atributai
Skaidrumas (Transperancy) – turi visi matyti ir suprasti rezultatą vienodai (bendra kalba ir supratimas, ką reikšia DONE, tiek tarp darančių darbą, tiek ir tą darbą priimančių asmenų)
Patikrinimas (Inpection) – tikrinti SCRUM artifaktus (daily stand-ups, retrospektyva, sprint review)
Pakeitimas (Adaption) – po pasitikrinimo, padaryti atinkamus pakeitimus, kad gamintume greičiau ir tai, ką reikia.
Scrum framework
Dviejų savaičių iteracija
Rolės
Product Owner (PO) – kliento balsas, tarpinkas tarp komandos ir kliento, atsakingas už tai, kad didžiausią vertę gautų klientas/akcininkas. Jis atsako už backlog‘ą ir jo prioritetizavimą.
Scrum Master – atsakingas už komandos kliūčių pašalinimą, jis nėra team lead‘as, bet veikia kaip tarpinikas tarp komandos ir PO. Prižiūri, kad būtų laikomasi SCRUM taisyklių ir vertybių. Gerina komandos efektyvumą.
Team member – atsakingas, kad būtų pagamintas kokybiškas produktas. Komanda būna sudaryta iš cross-function žmonių.
PO atsakomybės:
Aiškiai aprašyti Product Backlog įrašai (User story, Epic). Užtikrinti, kad komandos darbas būtų vertingas (nedarytų to, ko
nereikia). Užtikrinti, kad Product Backlog yra visiems matomas, suprantamas ir
aiškus komandai, ką ji toliau darys. Užtikrinti, kad komanda supranta produkto Backlog‘o įrašus iki
pakankamo detalumo lygio. Pasako, ką reikai padaryti. Perteikia viziją komandai ir nukreipia ją reikiama kryptimi. Priima padarytą darbą.
Savybės gero PO:
Į verslą orientuotas (ROI); Supranta sritį (domain); Visada pasiekamas komandai (-oms); Turi galios priimti projektui/produktui sprendimus; Turi viziją, kaip sėkmingai pagaminti produktą/projektą.
Scrum Master
Prižiūri, kad būtų laikomasi taisyklių ir vertybių; Atsakingas, kad būtų pašalintos visos kliūtys ir komanda galėtų
pasiekti Sprint‘o tikslą; Apsaugo komandą nuo išorinio pasaulio poveikio ir PO; Padeda PO perteikti projekto viziją, paruošti backlog‘ą, suprasti
procesą; Praveda SCRUM eventus, jeigu yra poreikis; Atsakingas, už komandos kokybišką darbą ir motyvaciją.
Scrum Master nedaro:
Užduoties atlikimo laiko įvertinimo; Tvarkymo ir prioritetizavimo Backlog‘o; Darbų paskirstymo; Sprendimo priėmimo; Ir neduoda nurodymų, kaip padaryti (pačios implementacijos);
Grooming susirinkimas
Išlaikyti backlog‘ą suprioritetizuotą; Pašalinti nebereikalingus backlog‘o įrašus; Sukurti arba pakelti prioritetą pagal svarbą; Skaldyti arba sujungti backlog‘o įrašus; Įvertinti taskų sudėtingumą; Susirinkimas užtrunka ne ilgiau negu 2val., kai iteracija yra 2
savaičių.
Įvertinimas be Agile pokerio
Įvertinimas pagal Agile pokerį
Sprinto planingas
Dviejų savaičių iteracijai skiriama iki 4h (fiksuotas laikas);
Dalyvauja visa komanda; Skaldomi User Story į technines užduotis; Sudarytas iš dviejų dalių:
Nusprendžiama, kokie darbai turi būti padaryti; Kokią implementacija mes pasirinksime;
Sprinto backlog nesikeičia visą iteraciją.
Stand-up susirinkimas
Kiekvieną dieną, toje pačioje vietoje ir tuo pačiu laiku.
Neilgiau negu 15 min. Trys esminiai klausimai:
Ką vakar dariau; Ką šiandien planuoju daryti; Ar yra kokių klučių, kas neleis man pabaigti užduoties.
„Burn down“ diagrama
Sprinto peržiūra
Dalyvauja visa komanda; Vyksta demonstracija suinteresuotiems žmonėms (klientui,
akcininkams); Neilgiau negu 1h. (fiksuotas laikas) 2 savaičių iteracijai. Pagal gautą atgalinį ryšį galima daryti pakeitimus kitame sprint‘e; Pasitikriname, ar tą gaminame, ko klientui reikia.
Retrospektyva
Komandos darbo gerinimas (proceso pagerinimas išlaikant Scrum principus);
Trys klausimai: Kas buvo gerai; Ką galima pagerinti; Kokių veiksmų imtasi iš praeitos retrospektyvos susirinkimo.
Neilgiau negu 1h (fiksuotas laikas) 2 sav. iteracijai; Tai nėra skirta santykių aiškinimuisi ir senų sąskaitų
suvedimui; Visos komandos įtraukimas.
Tradicinis procesas
Prielaidos:• Klientas žino tikrai ko
norį• Programuotojas
detalei žino kaip gamins produktą
• Niekas nesikeis per visą projektą
Agile procesas
Prielaidos:• Klientas eigoje
supras ko jis ištikrųjų norį
• Programuotojas eigoje ras būdą kaip geriau pagaminti
• Viskas gali keistis viso proceso metu
Ačiū
Klausimai ?