Vesiputous lässyn lässyn



Viime aikoihin asti ohjelmistokehitystä on tehty lähinnä vesiputousmallilla, jossa projekti ensin määritellään, sitten suunnitellaan, sitten toteutetaan, testataan ja luovutetaan asiakkaalle. Malli on raskas ja epäkäytännöllinen. Koska asiakas on mukana vain alussa ja lopussa, hänellä ei ole kontrollia projektiin, ja alun määrittelyssä tehtyjä virheitä ei voida enää korjata.

Kuulostaako tutulta? Kaikkihan haukkuvat nykyään vesiputousmallia, ja scrum on päivän sana.

Mutta ollaanpas nyt rehellisiä. Kuka on nähnyt vesiputousmallia oikeasti käytettävän jossain isossa projektissa? Siis ikinä? Softakehitystä aidosti ilman minkäänlaisia iteraatioita, ilman suunnitelmien korjaamista toteutuksen aikana ja ilman asiakkaan osallistumista kesken projektin?

Missä yhteydessä sellaista voisi oikeastaan edes tehdä? Eihän siitä tulisi mitään.

Totuus onkin, että vesiputousmallia ei ole tarkoitettukaan toteuttettavaksi. Se on oikeastaan referenssimalli, joka listaa asiat joita pitää jossain vaiheessa projektia tehdä.

Vesiputousmallin esitteli Winston W. Royce vuonna 1970 artikkelissaan Managing the development of large software systems. Yllä oleva klassinen vesiputouskaavio on samasta artikkelista. Heti kuvan jälkeen seuraava lause on “I believe in this concept, but the implementation described above is risky and invites failure.”

Loppuosan artikkelistaan Royce käyttääkin sen selittämiseen, miksi tämä hänen olkinukeksi luomansa prosessimalli ei ole realistinen ja miten asiat oikeastaan pitäisi tehdä. Kuvaus sisältää iteraatiota ja asiakkaan aktiivista osallistamista joka vaiheessa. Ja myös melko raskaan dokumentaation, ei hän varsinaisesti ketterää mallia kuvaa.

Miksi vesiputousmallia sitten on esitelty vuosikymmeniä ohjelmistokehityksen vakiomallina, jos se ei ole edes tarkoitettu käytettäväksi sellaisenaan? Hyvä kysymys. Ehkä mallien toteuttamista ei otettu niin kirjaimellisesti, vaan oli tarkoitus osata soveltaa? Sitä voi olla vaikea ymmärtää, mutta äänestettiinhän joskus Kekkostakin. Se oli eri maailma.

Vastaavaan tapaan taloustieteessäkin käytetän yksinkertaistettuja malleja, joissa tehdään epätosiksi tiedettyjä oletuksia. Kaikki mallit ovat vääriä, mutta jotkut ovat hyödyllisiä. Kysymys ei olekaan siitä, kuvaako vesiputousmalli tai vaikka scrum softaprojektin tekemistä “oikein”, vaan siitä, auttaako malli meitä kiinnittämään huomiota oleellisiin kohtiin. Ja tässä vesiputousmalli on huono: se mahdollistaa jatkamisen tyytyväisenä eteenpäin aivan väärään suuntaan.

Oli miten oli, ketteriä menetelmiä ei ehkä kannattaisi enää markkinoida sillä, miten vesiputousmalli ei vastaa todellisuutta. Se olkinukke alkaa olla poltettu loppuun. Parempi puhua niiden hyödyistä sen sijaan.

Aiheesta enemmän myös täällä.

Tämän artikkelin on kirjoittanut Otso Kivekäs ja sitä ovat sittemmin muokanneet muut Codenton työntekijät.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *