Beta

Scrum


Ohjeita


Kehmet-Scrum-kuva.png

 

 

Scrum on yleisimmin käytössä oleva ketterä (engl. agile) menetelmä. Sen tavoitteina on läpinäkyvyys ja kyky reagoida nopeasti muutoksiin. Scrumilla pyritään siihen, että tehdyllä kehitystyöllä olisi tilaajan tavoitteiden kannalta mahdollisimman suuri arvo. Scrum tuo kehitystyöhön turvallisen rakenteen silloin, kun kehittäjiä on monta ja tehtävää paljon ja tuoteomistajan kapasiteetti on tästä syystä tiukoilla. Niinpä se on tiimeille turvallinen valinta kehityksen betavaiheen kehitysmenetelmäksi.

Missä Scrumia käytetään

Yleensä Scrum on parhaimmillaan jäsentyneessä hankkeessa, jossa kehitystiimin on mahdollista käyttää koko aikansa yhden hankkeen kehitystyöhön. Usein Scrumia käytetään ketterän hankkeen betavaiheessa, kun kehittämisen volyymi on suurimmillaan. Kokeilun selvitys- ja alfavaiheen sekä tuotantovaiheen jatkokehityksen aikana käytetään yleensä kevyempiä menetelmiä kuten Kanbania.

Seuraavat asiat muodostavat Scrumin ytimen:

Scrumin elementit

Scrumin roolit

  • Scrum-tiimi - Scrum Team. Scrum-tiimin muodostavat tuoteomistaja, Scrum Master ja kehitystiimi yhdessä.
  • Tuoteomistaja - Product Owner. Tuoteomistaja eli palvelusta vastaava vastaa kehitysjonosta ja siitä, että tiimi käyttää joka hetki aikaansa kaikkein tärkeimpiin tehtäviin. Se tarkoittaa sitä, että käynnissä olevan sprintin aikana tuoteomistajan on valmisteltava seuraavaa sprinttiä varten tarpeellinen määrä kehitystehtäviä sille tasolle, että kehittäjät pystyvät tekemään niistä työmääräarviot. Tuoteomistaja vastaa käyttäjäpalautteen hankkimisesta ja hyödyntämisestä sekä yhteydenpidosta sidosryhmien kanssa. Pystyäkseen toimimaan menestyksekkäästi tehtävässään tuoteomistajan on oltava Helsingin kaupungin edustaja. Ihannetapauksessa hän edustaa sitä organisaation osaa, jonka omistukseen palvelu on tulossa. Jos tämä ei kuitenkaan ole mahdollista, tuoteomistajan roolissa voi joutua käyttämään väliaikaisesti esimerkiksi kehitys-/projektipäällikköä.
  • Scrum Master. Scrum Master vastaa siitä, että Scrum eli kehitysmekanismi ymmärretään ja sitä noudatetaan. Scrum Master auttaa kehitysmekanismin käyttämisessä tuoteomistajaa, kehitystiimiä ja sidosryhmiä kuten ohjausryhmää ja laajempaa projektiyhteisöä. Scrum Masterin tulisi olla Helsingin kaupungin organisaatiosta, koska tällöin hänellä on parhaat edellytykset varmistaa kehityksen sujuminen. Monesti hän on käytännössä yksi kehitystiimin jäsen, jolloin hän tuntee tiimin toiminnan hyvin eikä rooliin tarvita erillistä henkilöä.
  • Kehitystiimi - Development Team. Kehitystiimi on Scrumissa itseorganisoituva. Tavoitteena on, että kaikki tiimiläiset voivat  hoitaa kaikkia kehitysjonossa olevia tehtäviä. Ihannetapauksessa kehitystiimi koostuu Helsingin kaupungin henkilöstöstä. Laajamittaisen tuotekehitysorganisaation puuttuessa kehittäjät päädytään kuitenkin usein hankkimaan ulkopuolelta käyttäen siihen tehtyä puitesopimusta (ks. tarkemmin sivu puitesopimusten varmistaminen). Scrum-työtavassa pyritään pitkäjänteiseen jatkuvaan kehittämiseen, mikä on huomioitava myös kehitystiimin organisoinnissa.

Scrumin tapahtumat

  • Sprintti - Sprint. Scrumissa sprintit ovat 1-4 viikon peräkkäisiä työskentelyjaksoja. Sprinttien väliin ei jätetä suunnittelutaukoja, vaan seuraava sprintti suunnitellaan edellisen aikana. Sprinttien aikana tehtävien etenemistä seurataan jatkuvasti ja reagoidaan esteisiin ja muutoksiin.
  • Sprinttisuunnittelu - Sprint Planning. Sprinttisuunnittelussa sovitaan sprintin tavoite ja valitaan tuotteen kehitysjonosta tehtävät sprintin kehitysjonoon. Samalla arvioidaan, mitä työtä sprinttiin voidaan ottaa ja suunnitellaan sen toteutus.
  • Päiväpalaverit - Daily Scrum. Sprintin aikana kokoonnutaan päivittäin kommunikoimaan, mitä sprinttitavoitteen saavuttamiseksi tapahtuu ja onko näkyvissä etenemisen esteitä.
  • Sprinttikatselmointi - Sprint Review. Sprintti päättyy sprinttikatselmointiin, jossa käydään läpi valmiiksi saatu palvelun osa ja tarkennetaan tulevaa.
  • Retrospektiivi - Sprint Retrospective. Retrospektiivissa tarkastellaan tiimin työskentelyä, kerätään opit ja sovitaan muutoksista käytäntöihin.

Scrumin artefaktit

  • Tuotteen kehitysjono - Product Backlog. Tuotteen kehitysjono on lista kaikista tuotteeseen aiotuista ominaisuuksista. Kehitysjono ei tule koskaan valmiiksi, vaan sitä työstetään jatkuvasti. Tuotteen kehitysjonon kohdat sisältävät vähintään kuvauksen ja työmääräarvion. Kohdat järjestetään prioriteetin ja toteutuksen reunaehtojen mukaan. Jonon ylläpito ja priorisointi on tuoteomistajan vastuulla. 
    Linkki kehitysjono-sivulle
  • Sprintin kehitysjono - Sprint Backlog. Sprintin kehitysjono koostuu sprinttiin valituista tuotteen kehitysjonon kohdista sekä suunnitelmasta niiden toteuttamiseksi. Sprintin kehitysjono tekee näkyväksi kaiken työn, jonka kehitystiimi tunnistaa tarpeelliseksi saavuttaakseen sprintin tavoitteen. Ainoastaan kehitystiimi voi muuttaa sprintin kehitysjonoa sprintin aikana.
  • Tuoteversio - Product Increment. Tuoteversio koostuu sprintin ja edellisten sprinttien aikana kehitetyistä tuotteen ominaisuuksista. Sen on oltava sprintin lopussa julkaisukelpoinen riippumatta siitä, aiotaanko se käytännössä julkaista.

Laadunhallinnan välineet

  • Valmiin määritelmä - Definition of Done. Ohjausryhmän asettamiin reunaehtoihin perustuva valmiin määritelmä on Scrumin tärkein laadunhallinnan työkalu. Se on käytännön tarkistuslista siitä mitä valmistuvalta ominaisuudelta vaaditaan. Tuoteomistaja ja kehitystiimi sopivat valmiin määritelmästä yhdessä. Kehitystyön aluksi valmiin määritelmä on hyvä sopia mieluummin realistisesti kuin liian kunnianhimoisesti.
  • Linkki reunaehdot-sivulle
  • Linkki valmiin määritelmä -sivulle

Pätevyydet ja tuki

Yleensä Scrumin käyttöä aloitettaessa suositellaan, että ainakin tiimin avainhenkilöt käyvät oman Scrum-roolinsa mukaisen sertifikaattikurssin. Tällä varmistetaan, että menetelmä on ymmärretty yhteisellä tavalla. Helsingin kaupungin HIT-koulutuskokonaisuuteen järjestetään Scrum-koulutuksia tarveperustaisesti.

Joskus Scrum-tiimien tueksi on hyvä hankkia myös hieman työtä tukevaa valmennusta.

 

Luonnos