Tredun ohjelmistokehittäjien kurssimateriaaleja
Vesiputousmalli ja ketterän kehityksen malli ovat kaksi merkittävää lähestymistapaa projektinhallinnassa, joilla on omat etunsa ja haasteensa.
Vesiputousmalli (engl. Waterfall Model) on lineaarinen ja vaiheittainen projektinhallintamalli, jossa työ etenee askel askeleelta ilman paluuta aikaisempiin vaiheisiin. Se koostuu tyypillisesti seuraavista vaiheista: vaatimusten määrittely, suunnittelu, toteutus, testaus ja ylläpito. Jokainen vaihe käydään läpi perusteellisesti ennen seuraavaan siirtymistä. Malli sopii erityisesti projekteihin, joissa vaatimukset ovat alusta alkaen selkeät ja vakioidut, koska muutosten tekeminen projektin edetessä on hankalaa ja voi aiheuttaa merkittäviä viivästyksiä. Vesiputousmalli tarjoaa rakenteellisen etenemisen, mutta sen jäykkyys tekee siitä vähemmän joustavan, erityisesti projekteissa, joissa vaatimukset voivat muuttua.
Ketterän kehityksen malli (engl. Agile Development Model) on vastakohta vesiputousmallin jäykkyydelle. Sen tavoitteena on jatkuva parantaminen ja nopea sopeutuminen muuttuviin vaatimuksiin. Ketterässä mallissa työ etenee lyhyissä iteraatioissa tai “sprinteissä”, joissa jokaisessa valmistuu osa toiminnallisuutta, joka voidaan testata ja arvioida. Iteratiivisuus tarkoittaa, että asiakkaiden ja tiimin välinen kommunikaatio ja palaute on jatkuvaa, mikä mahdollistaa nopean reagoinnin muutoksiin. Tämä malli sopii erityisen hyvin projekteihin, joissa vaatimukset saattavat muuttua tai joissa halutaan nopeasti tuottaa osia, joita käyttäjät voivat testata.
Oleelliset erot näiden välillä kiteytyvät joustavuudessa ja lähestymistavassa muutoksiin. Vesiputousmalli on tiukasti strukturoitu ja soveltuu tilanteisiin, joissa vaatimukset eivät muutu, kun taas ketterä malli suosii jatkuvaa muutosten huomioimista ja mahdollistaa nopean sopeutumisen asiakkaiden tarpeisiin. Ohjelmistoalalla on tyypillisempää käyttää ketterän kehityksen mallia.
Scrum on ketterän kehityksen malli, joka keskittyy tuottamaan arvoa nopeissa iteraatioissa ja tukemaan tiimin itseohjautuvuutta. Scrum-menetelmä jakaa projektin lyhyisiin, ennalta määrättyihin aikajaksoihin, joita kutsutaan sprinteiksi (yleensä 1–4 viikkoa). Jokaisen sprintin lopussa syntyy toimiva ohjelmiston osa, joka on valmis testattavaksi ja arvioitavaksi. Scrum-malli korostaa tiimin jäsenten välistä yhteistyötä, jatkuvaa parantamista ja nopeaa palautteen hyödyntämistä.
Scrumissa on kolme tärkeää roolia: tuoteomistaja, joka vastaa projektin vaatimusten määrittelystä ja priorisoinnista; scrum master, joka varmistaa, että tiimi noudattaa scrum-prosessia ja poistaa esteitä; sekä tiimi, joka koostuu kehittäjistä ja muista projektin toteutukseen osallistuvista jäsenistä. Työtä ohjaavat scrumin seremonioihin kuuluvat sprintin suunnittelupalaveri, päivittäiset lyhyet kokoukset (daily stand-ups), sprintin katselmointi ja retrospektiivi, jossa arvioidaan kehitystä ja tunnistetaan parannettavia asioita.
Scrum-menetelmän avulla tiimi voi sopeutua muuttuviin vaatimuksiin ja parantaa tuotetta jatkuvasti, mikä tekee siitä erityisen hyödyllisen monimutkaisissa tai epäselvissä projekteissa, joissa vaatimukset voivat muuttua projektin edetessä.
Scrum-sprintti on rajattu aikajakso, jossa tiimi keskittyy toteuttamaan tiettyjä toiminnallisuuksia projektin tavoitteiden mukaisesti. Sprintti alkaa sprintin suunnittelupalaverilla, jossa tuoteomistaja ja tiimi määrittelevät sprintin tavoitteet ja valitsevat backlogista (tehtävälistasta) priorisoidut tehtävät sprinttiin. Tämän suunnittelun tarkoituksena on varmistaa, että kaikilla on yhteisymmärrys siitä, mitä sprintissä saavutetaan ja mitkä tehtävät ovat ensisijaisia.
Sprintin aikana tiimi pitää päivittäisiä, lyhyitä kokouksia (daily stand-ups), joissa käydään läpi edistyminen ja mahdolliset esteet. Näiden kokousten avulla voidaan varmistaa, että kaikki ovat ajan tasalla ja että ongelmiin voidaan reagoida nopeasti.
Kun sprintti päättyy, pidetään sprintin katselmointi, jossa tiimi esittelee valmiin työnsä tuotteen omistajalle ja muille sidosryhmille. Katselmoinnin tarkoituksena on kerätä palautetta ja varmistaa, että tuote täyttää asiakkaan odotukset. Lopuksi tiimi kokoontuu retrospektiivipalaveriin, jossa arvioidaan sprintin aikana opittuja asioita ja tunnistetaan parannuskohteita tuleviin sprinteihin. Tämä vaihe auttaa tiimiä jatkuvasti kehittymään ja mukautumaan projektin tarpeisiin.
Tässä on linkki viralliseen suomenkieliseen scrum-oppaaseen