Projektinhallinta ohjelmistoalalla
Ohjelmistoprojekteissa käytetään erilaisia projektinhallintamalleja. Kaksi keskeistä lähestymistapaa ovat vesiputousmalli ja ketterä kehitys.
Vesiputousmalli
Vesiputousmalli (Waterfall) on lineaarinen malli, jossa projekti etenee vaihe vaiheelta:
- Vaatimusten määrittely
- Suunnittelu
- Toteutus
- Testaus
- Ylläpito
Jokainen vaihe pyritään tekemään valmiiksi ennen seuraavaan siirtymistä.
Malli toimii parhaiten silloin, kun:
- vaatimukset ovat selkeät alusta alkaen
- muutoksia ei odoteta projektin aikana
Haasteena on, että:
- muutoksia on vaikea tehdä myöhemmin
- virheet saatetaan huomata vasta myöhään
Ketterä kehitys (Agile)
Ketterä kehitys on joustavampi tapa tehdä projekteja.
- työ jaetaan lyhyisiin jaksoihin (sprinteihin)
- jokaisessa sprintissä syntyy toimiva osa ohjelmaa
- palautetta kerätään jatkuvasti
Tämän ansiosta:
- muutoksiin voidaan reagoida nopeasti
- tuotetta voidaan kehittää vaiheittain
Ketterä kehitys sopii erityisesti ohjelmistoprojekteihin, joissa kaikkea ei tiedetä etukäteen.
Vesiputous vs ketterä
Keskeinen ero on lähestymistavassa:
- Vesiputous: suunnitellaan mahdollisimman paljon etukäteen
- Ketterä: kehitetään vaiheittain ja opitaan matkan varrella
Nykyään ohjelmistokehityksessä käytetään useimmiten ketteriä menetelmiä.
Scrum
Scrum on yksi tunnetuimmista ja käytetyimmistä ketterän kehityksen malleista.
Siinä projekti jaetaan lyhyisiin sprinteihin (yleensä 1–4 viikkoa), ja jokaisen sprintin lopussa syntyy toimiva osa ohjelmaa.
Scrumin keskeisiä ajatuksia ovat:
- tiimityö ja yhteistyö
- jatkuva palaute
- työn jakaminen pieniin osiin
Scrumin roolit
Scrumissa on kolme keskeistä roolia:
-
Tuoteomistaja (Product Owner)
vastaa siitä, mitä tehdään ja missä järjestyksessä, keskustelee pääasiakkaan kanssa, jos sellainen on
-
Scrum Master
tukee tiimiä ja auttaa poistamaan esteitä, johtaa scrum-palavereja. Usein toimii muutenkin osana tiimiä
-
Tiimi
toteuttaa työn käytännössä
Scrumin vaiheet
Sprint planning
- päätetään, mitä sprintissä tehdään
- valitaan tärkeimmät tehtävät ja toissijaiset tehtävät
Daily
- joka päivä pidetään lyhyt keskustelu työn etenemisestä eli mitä taskeja on tehty, mitä seuraavaksi tehdään ja onko työn tekemisessä esteitä
Sprint review
- esitellään valmis työ
- kerätään palautetta
Retrospective
- arvioidaan työskentelyä
- mietitään, mitä voisi parantaa
Scrum tässä projektissa
Tässä projektissa käytämme Scrumia yksinkertaistetussa muodossa.
Scrum ei ole erillinen teoria, vaan tapa tehdä tämä projekti.
- koko testiprojekti toimii yhtenä sprinttinä
- tehtävät tulevat user storyista
- etenemistä seurataan projektiseinällä
Scrum käytännössä
1. Sprint planning
- Valitkaa tiimillenne scrum master, joka on vastuussa palavereista. Scrum master tulee tekemään myös itse nettisivua, mutta pikkuisen pienemmässä määrin
- Pohtikaa, kuinka monta projektiseinällä olevaa taskia ehditte tehdä neljän koulupäivän mittaisen sprintin aikana
- Jos teillä on Ready -niminen sarake projektiseinällä, siirtäkää siihen sarakkeeseen kaikki taskit, jotka uskotte ehtivänne tehdä
2. Daily
Pitäkää lyhyt (max viisi minuuttia) keskustelu:
- Mitä tein viimeksi?
- Mitä teen seuraavaksi?
- Onko esteitä? Miten tiimi voi auttaa?
3. Sprint review
- Esitelkää valmis sovellus
4. Retrospective
Vastatkaa kirjallisesti:
- Mikä meni hyvin?
- Mikä ei toiminut?
- Mitä tekisitte seuraavalla kerralla toisin?
Tässä on linkki viralliseen suomenkieliseen scrum-oppaaseen
Tehtävä: Onko Scrum hyvä tapa tehdä projekteja?
Vaihe 1: Tutustukaa materiaaliin (lyhyesti)
Selatkaa scrum-opasta
Lukekaa erityisesti:
- sprintti
- daily
- review
- retrospective
Teidän ei tarvitse ymmärtää kaikkea täydellisesti.
Vaihe 2: Keskustelkaa tiimissä
Keskustelkaa seuraavista kysymyksistä:
Hyödyt
- Mikä Scrumissa vaikuttaa hyödylliseltä?
- Miten se voisi auttaa teidän projektissa?
Haasteet
- Mikä Scrumissa vaikuttaa vaikealta tai turhalta?
- Mikä voisi mennä pieleen?
Vertailu
- Tuntuuko Scrum paremmalta kuin “tehdään vaan ilman suunnitelmaa”?
- Miksi / miksi ei?
Vaihe 3: Valitkaa tärkeimmät havainnot
Valitkaa tiiminä:
- 2 asiaa, jotka ovat Scrumin suurimmat hyödyt
- 2 asiaa, jotka voivat olla ongelmia