Scrum delfoi

13
eDelfoin kehitys 2014 SCRUM - Irmeli Aro

description

 

Transcript of Scrum delfoi

Page 1: Scrum delfoi

eDelfoin kehitys 2014

SCRUM

- Irmeli Aro

Page 2: Scrum delfoi

Scrum on projektinhallinnan viitekehys, jota käytetään yleisesti ketterässä ohjelmistokehityksessä. Vaikka Scrum on kehitetty erityisesti ohjelmistoprojektien hallintaan, sitä voidaan soveltaa myös yleisesti projektinhallinnassa.

Ensimmäisinä idean Scrumin kehitysprosessista kuvasivat 1986 Hirotaka Takeuchi ja Ikujiro Nonaka. Teoksessaan Takeuchi ja Nonaka kuvaavat uudenlaisen, holistisen lähestymistavan tuotekehitykseen, jossa yksi ainoa monitaitoinen (engl. cross-functional) ryhmä suorittaa kehitysprosessin alusta loppuun vaiheistuksella, joka on vahvasti lomittunut.

Ryhmän toimintaa verrataan rugby-joukkueeseen, jossa koko ryhmä pyrkii etenemään yksikkönä ja toimimaan tiiviissä yhteistyössä. Myös menetelmän nimi (engl. scrum) viittaa rugbyn aloitusryhmitykseen. Nimi on myös sittemmin jäänyt käyttöön johtuen menetelmän yhtäläisyyksistä rugby-joukkueeseen ja sen toimintaan; molemmat ovat erilaisiin tilanteisiin sopeutuvaisia, nopeita ja itseohjautuvia.

Scrum: projektinhallinta

Page 3: Scrum delfoi

Scrum: työskentelytapaScrumissa työskennellään toistavasti ja lisäävästi (engl. iterative-incremental) ennustettavuuden optimoimiseksi ja riskien kontrolloimiseksi. Tavoitteena oleva tuote kehittyy pikkuhiljaa täydellisemmäksi ja valmiimmaksi useiden kehitysjaksojen aikana. Kehitysjaksoa kutsutaan sprintiksi (engl. Sprint). Sprintti on 1-4 viikon mittainen aikaraja, jonka sisällä tuotetaan “valmiin” määritelmän täyttävä, käyttökelpoinen ja potentiaalisesti julkaisukelpoinen tuoteversio. Jokaisen sprintin sisältö sovitaan sprintin suunnittelupalaverissa ennen sprintin aloitusta, ja toteutettaviksi valitaan sellaisia tuotteen kehitysjonon kohtia, joilla on sillä hetkellä suurin merkitys projektin onnistumiselle.

Sprintin lopuksi järjestetään sprinttikatselmus, jossa kehitystiimi esittelee sprintin konkreettiset saavutukset (esim. ohjelmiston uusimman version) tuoteomistajalle sekä mahdollisille sidosryhmien edustajille palautteen saamiseksi ja ymmärryksen lisäämiseksi kehityksen tilasta. Ennen seuraavan sprintin aloittamista pidetään vielä sprintin retrospektiivi, jossa tarkastellaan prosessin näkökulmasta mikä sprintin aikana sujui hyvin ja mitä voitaisiin parantaa seuraavassa sprintissä.

Page 4: Scrum delfoi

Scrum: roolit 1Scrum-kehityksessä käytetään yhtä tai useampaa scrumtiimiä (engl. scrum team). Scrumtiimi koostuu tuoteomistajasta, scrummasterista ja kehitystiimistä. Scrumtiimi päättää kunkin sprintin tavoitteet ja tehtävät, ja vastaa yhdessä siitä, että asetettuihin tavoitteisiin päästään. Scrumtiimi on itseohjautuva ja monitaitoinen, ja sillä on valta päättää omista työmenetelmistään.

Yksi scrumtiimin jäsen toimii tuoteomistajana (engl. product owner). Tuoteomistaja vastaa tuotteen arvon ja kehitystiimin työn arvon maksimoimisesta. Käytännössä tämä tapahtuu määrittelemällä tuotteen vaatimukset sekä järjestämällä tuotteen kehitysjono yhteistyössä scrumtiimin kanssa. Tuoteomistaja on yksi henkilö, ei komitea. Tuoteomistaja voi hyödyntää komiteoita tai edustaa sellaisen toiveita tuotteen kehitysjonon kautta. Tuoteomistaja tuntee tuotteen liiketoimintaa ja edustaa asiakkaita ja käyttäjiä. Tuoteomistaja varmistaa, että scrumtiimi toteuttaa jokaisessa sprintissä sellaisia vaatimuksia, jotka ovat tuotteen onnistumisen kannalta keskeisimpiä. Tuoteomistaja hyväksyy sprinttikatselmuksessa edellisen sprintin tuoteversion ja osallistuu sprintin suunnittelupalaveriin varmistaakseen, että kehitystiimi ymmärtää sprinttiin valittavat tuotteen kehitysjonon kohdat riittävällä tarkkuudella. Tuoteomistaja myös auttaa kehitystiimiä ymmärtämään vaatimuksia ja tarvittaessa tarkentaa sprinttiin valittujen vaatimusten toteutustapaa sprintin aikana.

Page 5: Scrum delfoi

Scrum: roolit 2Toinen scrumtiimin rooleista on kehitystiimi (engl. development team). Kehitystiimi koostuu ammattilaisista, jotka muuttavat sprinttiin valitun tuotteen kehitysjonon sisällön potentiaalisesti julkaisukelpoikseksi “valmiiksi” tuoteversioksi jokaisessa sprintissä. Ainoastaan kehitystiimin jäsenet osallistuvat tuoteversion kehitykseen. Kehitystiimit ovat monitaitoisia sisältäen kaiken tarvittavan osaamisen potentiaalisesti julkaisukelpoisen tuoteversion kehittämiseksi. Kehitystiimin jäsenillä voi olla erityistä osaamista tai erilaisia työn painopisteitä, mutta vastuu kehityksestä kuuluu koko kehitystiimille yhdessä.

Kolmas scrumtiimin rooli on scrummaster (engl. scrum master). Scrummaster vastaa siitä, että kaikki ymmärtävät ja käyttävät Scrumia. Scrummasterit tekevät tämän varmistamalla, että scrumtiimit pitäytyvät Scrumin teoriassa, käytännöissä ja säännöissä. Scrummaster on scrumtiimin palveleva johtaja. Toisin kuin perinteisellä esimiehellä, scrummasterilla ei ole scrumtiimin jäseniin suoraa määräysvaltaa, vaan hän vaikuttaa scrumtiimiin Scrum-prosessin kautta. Scrummasterin tehtävät koostuvat suurelta osin ryhmän työskentelyä haittaavien esteiden poistamisesta ja ryhmän valmentamisesta itseohjautuvuuteen. Scrummaster tarkkailee työn etenemistä, ja jos sprintin tavoitteiden saavuttaminen alkaa näyttää epätodennäköiseltä, hän kommunikoi kehitystiimin ja tuoteomistajan kanssa tilanteen korjaamiseksi tai sprintin sisällön kaventamiseksi. Scrummaster myös suojaa tiimiä ulkopuoliselta hälyltä, kuten sprintin aikana pyydetyiltä uusilta vaatimuksilta, ja tekee kaikkensa turvatakseen tiimilleen työrauhan.

Page 6: Scrum delfoi

Scrum: tuotokset• Tuotteen kehitysjono (engl. product backlog) on järjestetty lista kaikesta, mitä tuotteessa saatetaan

tarvita, sekä ainoa lähde tuotteeseen toteutettaville vaatimuksille ja muutoksille. Tuoteomistaja vastaa tuotteen kehitysjonosta mukaan lukien sen sisältö, saatavuus ja järjestäminen. Tuotteen kehitysjono ei ole koskaan valmis, vaan se kehittyy, kun tuote sekä ympäristö kehittyy. Julkaisusuunnitelmaksi kutsutaan kehitysjonoa, joka sisältää kaikki tuotteen kehitysjonosta seuraavaan julkaisuun valitut kohdat (engl.product backlog Item) sekä alustavasti suunnitellun määrän sprinttejä julkaisun toteuttamiseen.

• Sprintin tehtävälista (engl. sprint backlog) koostuu sprintin suunnittelupalaverissa valituista tuotteen kehitysjonon kohdista sekä suunnitelmasta niiden toteuttamiseksi. Sprintin tehtävälista on kehitystiimin antama ennuste siitä, mitä toiminnallisuutta seuraavaan tuoteversioon tulee sisältymään sekä tarvittavista tehtävistä toiminnallisuuden toteuttamiseksi. Sprintin tehtävälista määrittää ja tekee näkyväksi kaiken työn, jonka kehitystiimi kokee tarpeelliseksi kehittääkseen tuotteen kehitysjonon kohdat “valmiiksi” tuoteversioksi ja saavuttaakseen sprintin tavoitteen. Tuoteomistaja ei voi sprintin aikana vaihtaa kehitysjonon kohtia toisiin. Kehitystiimi voi sen sijaan milloin tahansa muuttaa, lisätä tai poistaa sprintin tehtäviä varmistaakseen, että sprintin tavoite ja valitut tuotteen kehitysjonon kohdat toteutuvat.

• Edistymiskäyrä (engl. burndown chart) kuvaa tuotteen tai sprintin jäljelläolevaa työmäärää.• Tuoteversio (engl. increment) on summa kaikista tuotteen kehitysjonon kohdista, jotka ovat

valmistuneet sprintin ja aiempien sprinttien aikana. Sprintin lopussa siinä valmistuneen tuoteversion tulee olla “valmis”, joka tarkoittaa, että se täyttää scrumtiimin “valmiin” määritelmän ja on käyttökelpoisessa kunnossa, riippumatta siitä, päättääkö tuoteomistaja julkaista sen.

Page 7: Scrum delfoi

Scrum: tapahtumat 1Scrumissa käytetään ennaltasovittuja tapahtumia luomaan säännöllisyyttä ja minimoimaan muiden kuin Scrum- palavereiden tarve. Scrumin tapahtumat ovat aikarajattuja eli jokaisella niistä on maksimipituus. Tämä varmistaa sen, että suunnittelulle varataan riittävästi aikaa, mutta suunnitteluprosessissa ei pääse syntymään hukkaa.• Sprintti (engl. sprint) on scrumin ydin, enintään kuukauden pituinen tai sitä lyhyempi aikaraja, jonka

sisällä tuotetaan “valmiin” määritelmän täyttävä, käyttökelpoinen ja potentiaalisesti julkaisukelpoinen tuoteversio. Sprinteillä on sama pituus koko kehityksen ajan. Uusi sprintti alkaa välittömästi edellisen päätyttyä.

• Sprintin suunnittelupalaveri (engl. sprint planning meeting) on palaveri, jossa suunnitellaan sprintin aikana tehtävä työ. Tämä suunnitelma luodaan yhteistyössä koko scrumtiimin kesken. Sprintin suunnittelupalaverin pituus rajataan enintään kahdeksaan tuntiin kuukauden mittaiselle sprintille. Lyhyemmille sprinteille varataan suhteessa vähemmän aikaa. Esimerkiksi kahden viikon sprintille varataan enintään neljä tuntia.

• Päiväpalaveri (engl.daily scrum) on enintään 15 minuutin mittainen aikarajattu palaveri, jossa kehitystiimi tahdistaa keskinäiset työnsä ja luo suunnitelman seuraaville 24 tunnille. Tämä tapahtuu tarkastelemalla edellisen päiväpalaverin jälkeen tehtyä työtä ja ennustamalla, mitä voidaan toteuttaa ennen seuraavaa päiväpalaveria. Päiväpalaverissa jokainen kehitystiimin jäsen kertoo vuorollaan 1) Mitä olen tehnyt viime päiväpalaverin jälkeen, 2) Mitä aion tehdä ennen seuraavaa päiväpalaveria, ja 3) Onko työni etenemisellä esteitä. Päiväpalaveri ei ole raportointia, vaan kehitystiimin oma tapaaminen, jonka tarkoitus on optimoida työpäivän arvo ja todennäköisyys sille, että kehitystiimi pääsee sprintin tavoitteeseen. Mikäli keskustelua halutaan jatkaa 15 minuutin jälkeen, on tarkoituksenmukaista sopia erillinen palaveri, vaikka välittömästi päiväpalaverin jälkeen.

Page 8: Scrum delfoi

Scrum: tapahtumat 2• Tuotteen kehitysjonon työstö (engl. product backlog grooming) tarkoittaa yksityiskohtien,

työmääräarvioiden ja kehitysjonon kohtien keskinäisen järjestyksen lisäämistä. Kyseessä on toistuva prosessi, jossa tuoteomistaja ja kehitystiimi lisäävät yhteistyössä yksityiskohtia tuotteen kehitysjonoon. Työstön aikana tuotteen kehitysjonon kohtia katselmoidaan ja arvioidaan. Niitä voidaan kuitenkin päivittää milloin tahansa muulloinkin tuoteomistajan toimesta tai toiveesta. Työstöön käytetään yleensä enintään 10% kehitystiimin kapasiteetista. Kehitystiimi vastaa kaikista työmääräarvioista. Tuoteomistaja voi vaikuttaa kehitystiimiin auttamalla sitä ymmärtämään vaatimuksia ja tekemään kompromisseja.

• Sprinttikatselmus (engl. sprint review) on sprintin lopussa pidettävä epämuodollinen palaveri, jossa tarkastellaan kehitetty tuoteversio ja sopeutetaan tarvittaessa tuotteen kehitysjonoa. Sprinttikatselmuksen aikana scrumtiimi ja sidosryhmät selvittävät yhteistyössä, mitä sprintissä kehitettiin. Perustuen tähän tietoon ja mahdollisiin sprintin aikana tuotteen kehitysjonoon tehtyihin muutoksiin osallistujat keskustelevat siitä, mitä voitaisiin kehittää seuraavaksi. Kehitystiimin esittämän tuotedemon tavoitteena on saada palautetta, edistää keskustelua ja luoda realistinen pohja seuraavan sprintin suunnittelupalaverille. Sprinttikatselmus rajataan enintään neljään tuntiin kuukauden sprintille. Lyhyemmille sprinteille varataan suhteessa vähemmän aikaa.

• Sprintin retrospektiivi (engl. sprint retrospective) antaa scrumtiimille tilaisuuden tarkastella työskentelyään ja tehdä suunnitelman kehitysprosessin parannuksille, jotka toteutetaan seuraavassa sprintissä. Sprintin retrospektiivi pidetään sprinttikatselmuksen jälkeen ja ennen seuraavan sprintin suunnittelupalaveria. Palaveri rajataan enintään kolmeen tuntiin kuukauden sprintille. Lyhyemmille sprinteille varataan suhteessa vähemmän aikaa.

Page 9: Scrum delfoi
Page 10: Scrum delfoi
Page 11: Scrum delfoi

ROOLI HALUAISIN ETTÄ TOIVE KOSKA PERUSTELU

OHJAAJANA HALUAISIN ETTÄ VOISIN LISÄTÄ OPISKELIJAN SUORAAN KURSSILLE KOSKA NÄIN VOISIN OHJATA OPISKELIJAA

Page 12: Scrum delfoi

MA TI KE TO PE

KÄYNNISTYS DAILY STAND-UP DAILY STAND-UP DAILY STAND-UP DAILY STAND-UP

GROOMING PLANNING POKER TIIMI, RETRO JA DEMO

MA TI KE TO PE

DAILY STAND-UPDAILY STAND-UP