Sivusto on suunniteltu XHTML & CSS-yhteensopiville selaimille. Suosittelemme selaimen päivittämistä uudempaan versioon.

Suoraan sisältöön.
Tulosta sivu

Scrum

25.10.2006

Scrumia käytettäessä kaikki tietävät, miten projekti etenee.

Jukka Lindström,
Certified Scrum Trainer

Scrum on iteratiivinen ja inkrementaalinen ohjelmistokehitysmenetelmä, joka tuottaa jokaisen iteraation päätteeksi valmiin osakokonaisuuden tuotteesta. Menetelmää käytetään menestyksekkäästi niin pienissä kuin isoissakin projekteissa ja organisaatioissa, muun muassa Googlella ja Microsoftilla.

Scrumia käytettäessä ohjelmistoprojektin edistymistä eri osa-alueilla (kustannukset, aikataulut, laatu, laajuus) on helppo seurata. Oikean tiedon avulla pystytään tekemään koko projektia koskevia päätöksiä, kehittämään toimintaa jatkuvasti ja vaikuttamaan projektia hidastaviin asioihin. Uusiin vaatimuksiin ja toimintaympäristössä tapahtuviin muutoksiin pystytään reagoimaan nopeasti ja hallitusti.

Kurinalaista työskentelyä

Scrumissa kehitystyö tapahtuu 1–4 viikon iteraatioissa (sprinteissä), joihin valitaan toteutettavaksi liiketoiminnan kannalta tärkeimmät ohjelmiston ominaisuudet. Jokaisen sprintin päätteeksi tiimit tuottavat valmiin ja toimivan kokonaisuuden, joka esitellään projektin sidosryhmille.

Tiimin jäsenet laativat listan (Sprint Backlog) eri ominaisuuksien toteuttamiseksi tarvittavista tehtävistä ja jakavat työt keskenään. Tiimi on yhteisesti vastuussa siitä, että kaikki valitut ominaisuudet ovat valmiina (toteutettu, integroitu, testattu ja dokumentoitu) sprintin päätteeksi.

Päivittäisissä tapaamisissa jokainen tiimin jäsen kertoo, mitä on tehnyt ja mitä aikoo tehdä, ja arvioi, miten paljon aikaa kuluu jäljellä olevien ominaisuuksien toteuttamiseen. Tapaamisten avulla tietämys leviää ja ongelmiin voidaan tarttua välittömästi.

Usein tiimi julkaisee sprintin työmäärän vähentymistä kuvaavan graafin. Graafista nähdään, jos valmistuminen on arvioitua nopeampaa tai hitaampaa, ja pystytään toimimaan sen mukaan.

Projektia hallinnoi tuotteen omistaja (product owner), joka kerää ja tarkentaa projektin toimitusta koskevia vaatimuksia ja aikatauluttaa ominaisuuksien toteuttamisen yhdessä tiimien kanssa.

Tuotteen omistaja priorisoi tuotteeseen ehdotetut toiminnallisuudet ja tiimit arvioivat niiden toteuttamiseen tarvittavan työmäärän. Työmääräarvioita päivitetään toistuvasti projektin edetessä.

Tiimejä ja tuotteen omistajaa auttaa ScrumMaster, jonka tehtävänä on edesauttaa projektin etenemistä mahdollisimman tehokkaasti. ScrumMaster auttaa tiimejä huomaamaan ja ratkaisemaan ongelmia sekä poistaa työtä haittaavia esteitä.

Scrum motivoi tekijänsä

Vanhoissa projekteissamme projektinhallinnan kannalta suurin ongelma oli vaikeus nähdä projektin edistymiseen vaikuttavia tekijöitä. Scrumia käytettäessä projektin tila on jatkuvasti selvillä. Scrum on helposti omaksuttava paketti, joka kuitenkin pakottaa miettimään ja kehittämään toimintatapoja tilanteeseen sopivaksi. Se edellyttää myös, että tiimin jäsenet ovat osaavia ja työhön sitoutuneita. Olemme huomanneet että työskentely Scrum-tiimissä on erittäin motivoivaa, koska tiimillä on selkeät tavoitteet sprinteissä ja tiimi pystyy vaikuttamaan omaan työhönsä ja työskentelytapoihin.

Jukka Lindström, pääarkkitehti, Certified Scrum Trainer

 

Jukka oli tuomassa Scrumin Reaktorille vuonna 2003 kyllästyttyään siihen, että homma ei toiminut perinteisillä menetelmillä. Jukka on toiminut ScrumMasterina laajoissa ja vaativissa multi-site-projekteissa monitoimittajaympäristöissä.

Scrum-sanastoa


  • Sprint: 1–4 viikon mittainen iteraatio, jonka päätteeksi esitellään toteutetut toiminnot
  • Daily scrum: päivittäinen 5–15 minuutin pituinen tiimin tilannekatsaus
  • Retrospective: sprintin jälkeen pidettävä tapaaminen, jossa tiimi analysoi ja kehittää omaa toimintaansa, jotta prosessi olisi mahdollisimman tarkoituksenmukainen ja tehokas.
  • Product owner: hallinnoi projektia ja vastaa siitä, että tiimit toteuttavat liiketoiminnan kannalta tärkeimpiä asioita.
  • ScrumMaster: edesauttaa projektin tehokasta etenemistä esimerkiksi huolehtimalla siitä, että prosessia ja käytäntöjä noudatetaan ja kehitetään
  • Product backlog: tuotteen toiminnallisuusluettelo, jossa ominaisuudet on listattu priorisoituna työmääräarvioineen. Listaa päivitetään ja tarkennetaan jatkuvasti projektin edetessä. Product backlogin avulla on helppo seurata projektin etenemistä ja hallita sen laajuutta.
  • Sprint backlog: Kuvaa sprintin aikana toteutettavat tehtävät tarkalla tasolla.