210 likes | 423 Views
Scrum. Commitment (sitoutuminen) Focus (keskittyminen) Openness (läpinäkyvyys) Respect (kunnioitus) Courage (Rohkeus). Menetelmälliset periaatteet. Tuotoksena iteraation jälkeen julkaisukelpoinen ohjelma Pieninä palasina (inkrementaalinen) Kierros kierrokselta parempi (iteroiva)
E N D
Scrum Commitment (sitoutuminen) Focus (keskittyminen) Openness (läpinäkyvyys) Respect (kunnioitus) Courage (Rohkeus)
Menetelmälliset periaatteet • Tuotoksena iteraation jälkeen julkaisukelpoinen ohjelma • Pieninä palasina (inkrementaalinen) • Kierros kierrokselta parempi (iteroiva) • Tiivis kommunikaatio ja yhteistyö eri toimijoiden välillä
Scrumin vaiheet Definion of done Valmiin määritelmä Product Backlog Tuotteen kehitysjono Capacity Kapasiteetti Sprint Burndown Chart sprintin edistymiskäyrä Refining (työstö) Sprint Planning Sprintin suunnittelu Sprint Review Sprinttikatselmus Daily Scrum Päiväpalaveri Vision Visio Sprint Retrospective Sprintin retrospektiivi Sprint Goal Sprintin tavoite Sprint Backlog Sprintin tehtävälista Päivä Increment Tuoteversio Sprint (esim.2…4 vkoa) Scrum Team (= PO+SM+DT ) Scrumtiimi Product Owner Tuoteomistaja Scrum Master Scrummaster Development Team Kehitystiimi Chicken Lopetus
Roolit • Scrum Team, scrumtiimi • Development Team +Scrum Master+ Product Owner • Development Team, kehitystiimi • Toteuttaa itsellisesti valitsemansa tehtävät • Itseorganisoituva ja itseohjautuva • Ihannekoko 7+-2 henkilöä • Yhteinen vastuu yksilönä, tiimin etu edelle • ”omistaa” Sprint Backlogin • Scrum Master • Hallitsee Scrum-prosessin • Puuttuu ajoissa esteisiin ja poistaa ne (24 h) • Suojaa kehitystiimiläisiä ulkopuolisilta häiriöiltä • Dokumetoi Scrum-prosessia • Ei varsinaista määräysvaltaa kehitystiimiläisiin • Product Owner, tuoteomistaja • hallitsee tuotteen ja tuottavuuden (liiketoimintanäkökulman) • Asiakkaan nimeämä ja edustaja • Vastuussa projektin markkina-arvosta • ”omistaa” Product Backlogin • Päättää viimekädessä sprinttien ja projektin kohtalosta
Scrum-tapahtumat • Sprint Planning Meeting, Sprintin suunnittelu • Team, Scrum Master ja Product Owner tapaavat uusien User Storyjen työn alle ottamiseksi • Daily Scrum, Päivän Scrum • Team ja Scrum Master tapaavat työn esteiden poistamiseksi • Sprint Review, Sprintin katselmointi • Team esittelee valmiit tuotokset Product Ownerille, joka antaa palautetta tuotoksesta • Tarkistetaan, että Product backlog on ok • Retrospective, Retrospektiivi • Scrum Team kehittelee prosessia (ja tuotetta?)
Sprint Planning Meeting, Sprintin suunnittelupalaveri • OSA 1 • (Product Backlog tarkistetaan, kuuluisi kai Review-tapahtumaan) • Product Owner esittelee päivitetyn Product Backlogin • Sovitaan Sprintin päämäärä (Sprint Goal) • Kehitystiimi päättää seuraavan sprintin kapasiteettinsa nopeuteensa (Velocity) perustuen • Valitaan seuraavan Sprintin toteutukset Product BackloginItems (User Stories, Features, Epics) • valintakriteerinä Product Ownerin määrittämä järjestys (Order) (liiketoiminnallinen arvo ja riskitaso) • kehitystiimi tekee varsinaisen valinnan • Suunnittelukokouksen alkuosaan osallistuvat ainakin Product Owner, ScrumMaster ja kehitystiimi. Kanat eli esimerkiksi asiakas ja asiantuntijat (mm. nörttipomo) saavat osallistua. • OSA 2 • Pilkotaan tuotteen kehitysjonosta (Product Backlog) valitut käyttäjätarinat ym. sopiviksi sprintin tehtävälistan tehtäviksi (Task of Sprint Backlog). • Pilkkoessaan tuotteen kehitysjonon kohtia (PBL Items) SBL-Taskeiksi, pitää ottaa huomioon Scrumtiimin (PO+SM+DT) määrittelemä ”Valmiin” käsite. Usein ohjelmistokehityksessä, käyttäjätarinan valmiiksi saattamiseen tarvitaan useita vaihejakomallin vaiheita, esimerkki julkaisukelpoisesta toimituserän tehtävistä. • Jokainen sprintin tehtävälistan kohdan tulisi pystyä tekemään saman työpäivän (työrupeama) aikana (yksilö/pari/ryhmätyönä). • Kehitystiimi miettii menetelmät • Kehitystiimi pisteyttää (0, ½, 1,2,3,5,8,13,ääretön,?,kahvikuppi) Items (Taskit) ns. ScrumPlanPoker-pelillä • Kehitystiimi sitoutuu toteuttamaan näin muodostuneen Sprint Backlogin ja se ”lukitaan” • Suunnittelukokouksen loppuosaan osallistuu ainakin ScrumMaster ja Team. Product Owner tavoitettavissa Suunnittelukokouksella on Time-Box eli ennalta sovittu aikaraja, usein max. 2h/Sprint-viikko
Daily Scrum, päivän scrum • Tavoitteena • Kehitystiimiläisten keskinäinen tietoisuus Sprintin tilasta ja työskentelyn synkronointi • Työn teon esteiden kertominen • Max. 15 min. yleensä seisten Scrum Master kysyy tiimiläisiltä • Mitä olet tehnyt edellisen Daily Scrum -kokouksen jälkeen? • Mitä aiot tehdä seuraavaan Scrum-kokoukseen mennessä? • Mikä on hankaloittanut työtäsi? • Scrum Master tekee pikapäätöksiä esteiden poistamiseksi • Sovitaan tarvittavat tapaamiset (työkokoukset) • Muut kuin kehitystiimiläiset ja Scrum Master saavat olla kanoina mukana.
Sprint Review, sprintin katselmointi • Esitellään ProductOwnerille, asiakkaalle/sidosryhmille työn tulokset • Kaikki halukkaat saavat osallistua • Vastataan yleisön kysymyksiin • Keskittyy tuotteeseen • Pyritään helpottamaan toimituserän käyttöönottoa • Katselmoidaan vain valmiit tuotteen osat • Kerrotaan Sprint Backlogin valmiusaste (mitkä kesken, mikä %) • Mietitään jatkotoimenpiteet • Tehdään pohjatyö seuraavalle sprintille • ProductBacklogin päivitystarve (erityisesti kanojen näkökulmasta, jotka nyt saavat poikkeuksellisesti puhua ;-) • Arvioidaan tuotteen seuraava julkaisuaika
Retrospective, Retrospektiivi • Analysoidaan ja kehitetään erityisesti prosessia • Ks. muistiinpanot • Sprintin edistymiskäyrän (Sprint Burndown Chart) analyysi- Tarkennettu nopeus (Velocity) eli montako pistettä tiimi pystyi tekemään • Seuraavan sprintin nopeus (montako pistettä tiimi tekee) • Product Backlogin päivittäminen (tiimin näkökulma) • Mm. palautetaan kesken jääneet tehtävät jäljellä olevine pisteineen uudeksi kohdaksi tuotteen kehitysjonoon” (ellei tätä jo tehty sprintin katselmoinnissa) • Mukana Team, Scrum Master ja Product Owner
Artifacts (tuotokset) • Scrum-dokumentit • Elävät koko ajan, ei varsinaista historointia • Tuotteen kehitysjono (Product Backlog) • User Story –kortit/rivit • (Julkaisun tehtävälista (Release Backlog)) • Sprintin tehtävälista (Sprint Backlog) • Edistymiskäyrät (Burndown Chart) • Jäljellä olevat käyttäjätarinat/tehtävät • Esim. Product Burndown, Release Burndown Chart, Sprint Burndown Chart
User Story, käyttäjätarina • "Käyttäjänä haluan toiminnallisuuden xxx, koska saavutamme sillä hyödyn zzz." ”As a [role], I want to [goal], so I can [reason].” • Vastaa kysymyksiin Kuka haluaa mitä ja miksi tämä asia on tärkeä. • Usein kirjoitetaan 150x100 kokoiselle kortille • Id, tarina, kirjoittaja, pvm, (tarinapisteet) • Käyttäjätarinat kootaan Product Backlogiin jatkojalostusta varten
Product Backlog, Tuotteen kehitysjono • Backlog on tuotteen sen hetkinen priorisoitu (järjestetty) ”vaatimuslista” monimutkaisuuspisteineen • ”Vaatimukset” eli Product Backlogin kohdat (Items) voivat olla • tuotteen ominaisuuksia (feature) • käyttäjätarinoita (user story) • -teemoja (themes) • Epiikkeja (epic) eli suuria epämääräisiä toiveita , jotka protoiltava toteutuskelpoisiksi • Ylläpidetään paljon sprintin ulkopuolella/rinnalla, päivitetään (Grooming) koko ajan • 10% sprintin ajasta menee kehitysjonon ylläpitoon • Ennen Sprintin suunnittelukokousta PO priorisoi (järjestää) kehitysjoon • Product Owner (PO) omistaa Product backlogin
Sprint Backlog, Tehtävälista, esimerkkejä Excel-tauluna (2 erilaista) Seinätauluna (mukana edistymiskäyrä) Sprint Backlogin rivit ova Tehtäviä (Task). Tehtävät ovat Pilkottuja osia Product backlogin kohdista (Item) Vähennä tehtäviä Pyydä lisää PO:lta käyttäjätarinoita ict2tn007 – by Anne Valsta
TaskTehtäväkortti, esimerkki(mukaellen Anne Valsta) User story _________ Sprintti _____ Tehtävä Pisteet__________ ______________________________________________ ______________________________________________ Menetelmät ____________________________________ ________________________________________ ________________________________________ Huomaa _______________________________________ ________________________________________ Tekijä ______________ Valmis _____________ Toteutunut työmäärä ______h ict2tn007 - Anne Valsta
Kehitystiimin nopeus (Velocity) • Product Backlogista kehitystiimi valitsee seuraavaan sprinttiin suurin piirtein saman tarinapistemäärän kuin ehtivät tehdä edellisessä sprintissä. • Tulevan sprintin kapasiteettia laskettaessa otetaan huomioon scrumtiimin mahdolliset sitoutumisen vaihtelut (lomat, tiimiläisten muut työt, atk-ongelmat jne.) • Tätä pistemäärää per sprintti kutsutaan kehitystiimin nopeudeksi (engl. velocity) tarinapistettä per sprintti.
(0. Sprint) • Ns. pikasprintti, jossa ”harjoitellaan” • Pikasprintin avulla saadaan myös tietoa kehitystiimin nopeudesta (Velocity)
Aloita! • luo visio (jokainen kirjoittaa oman visionsa tuotteesta, pareittain jne)-> visio jätetään luokan seinälle • kirjoita käyttäjätarinat -> PB seinälle tai Exceliin • priorisoi käyttäjätarinat markkina-arvon ja riskitason mukaan • määritä tarinan koko (pisteytä) • täydennä/uudelleenjärjestä PB:tä • luo tarvittaessa RB (julkaisun kehitysjono) • suunnittele sprintin SB (alussa ehkä nollasprintti ja lyhyitä sprinttejä seinätauluna) • aloita sprintti
LIITE. Vaihejakomalliliittyy Scrum-käsitteeseen Definition-of-Done) (Ns. vesiputousmalli) Esitutkimus, nykytilanteen kartoitus, projektin tarve, kannattavuusvertailut, korvaavat kehitysehdotukset Määrittely ja kuvaus toiminnan kuvaus tietosisältö rajapinnat(käyttäjät) vaatimukset toiminnalle Arkkitehtuuri infrastruktuuri tietovarastot Tietoliikenne suojaukset, varmistukset Tekninen suunnittelu määrittelyn tarkennus ohjelmiston suunnittelu Tekninen toteutus hankinnat ohjelmointi dokumentointi Testaus Koulutus Käyttöönotto kertarysäyksellä Ylläpito Poisto Diaan: Sprintin suunnittelu