Projekti on kuin sää, ohjelmisto kuin ilmasto – Ohjelmistoprojekti kohti kestävää kehitystä?

06.06.2024

Ajankohtainen kuuma aihe on hiilineutraalisuus, hiilijalanjäljen pienentäminen, sen vaikutus kaikkeen elämiseen ja olemiseen, ennen kaikkea tulevaisuuteen. Kertakulutuskulttuurista siirtyminen takaisin vanhan ajan kestokulutuskulttuuriin on kasvattamassa suosiotaan, mutta miten se on toteutettavissa ohjelmistoprojekteissa?

Sanasta kulutustavara assosioituu helposti ensimmäisenä mieleen jokin konkreettinen tuote, joka on todennettavissa lähes jokaisella aistillamme. Myös palvelut ovat kulutushyödykkeitä, joihin tietotekniikan tuottamat ohjelmistot lukeutuvat. Mitä nopeammin tuotetaan suuria määriä kulutustavaraa lyhyellä elinkaarella kuluttajille, sitä enemmän se tuo tuottajalle tuloja, mutta kuluttajalle hyötyjen lisäksi kustannuksia. Sivutuotteena kasvatamme tarkoituksetonta, ei-toivottua hiilijalanjälkeä.

Ketterästi kohti kestävää kehitystä – vai ohikiitävää hetkeä?

Ketterät menetelmät kannustavat kestävään toimintatapaan.
Hankkeen omistajien, kehittäjien ja ohjelmiston käyttäjien tulisi
pystyä ylläpitämään työtahtinsa hamaan tulevaisuuteen.

(Agile manifesto 2001)

Agile manifestin 12 periaatteen filosofian toteuttamiseen on tarjolla useita eri viitekehyksiä, prosesseja ja työkaluja tehostamaan ohjelmistokehitystyötä, mutta tutkimuksen valossa on edelleen vuodesta 2000 lähtien toistuvasti noussut esille samat haastavaksi koetut osa-alueet: vaatimusten määrittely ja vaatimusten jäljitettävyys. Näiden osa-alueiden ympärille kietoutuu muun muassa projektin seuranta, laadunvarmistus, muutostenhallinta, ylläpito ja kustannukset, joilla yhteen kootusti on suora vaikutus projektin onnistumiseen. Onko projekti onnistunut vai epäonnistunut, sillä on kauaskantoiset vaikutukset.

Ohjelmistoprojektin pääroolissa ovat vaatimukset, joihin kulminoituu varsinainen konkreettinen tekeminen. Vaatimuksilla on fyysinen tai digitaalinen sijainti, jossa niitä kirjataan ja hallitaan. Toteutuakseen ne edellyttävät erinäisiä tapahtumia ja toimintoja, joiden taustatekijöinä ovat sidosryhmät. Tutkimustulosten perusteella työn tekemisen viitekehys asettaa tietynlaisia ominaisuusvaatimuksia sitä toteuttaville henkilöille ja tiimeille kuten: oppimiskyky, adaptoitumiskyky, paineensietokyky, sosiaalisuus, dynaamisuus, joustavuus, sitoutuvuus, itsereflektio ja motivaatio.

Ketterän kehityksen Scrum-viitekehyksen heuristinen piirre pyrkii helpottamaan tiimin tekemistä ja sopeutumista hektisesti muuttuvassa kehittämisen ilmapiirissä. Scrumin ominaispiirteenä ovat työn 1-4 viikon jaksotukset, joita toistetaan kunnes ohjelmisto saavuttaa tuotantoon viennin edellyttämät hyväksymiskriteerit. Ohjelmisto siirtyy tässä vaiheessa jatkuvan kehityksen tiimiin, perien mahdollisesti prioriteetiltaan vähäisiksi jääneitä vaatimuksia ja kylkiäisiksi ohjelmistovirheistä laadittuja havaintoja, jotka voisivat edelleen laatua alentavasti näkyä loppukäyttäjille.

Opinnäytetyön tuloksissa havaittiin, että tuotantoon viennin jälkeinen siirtymävaihe on kriittinen ja voi aiheuttaa tietokatkon eli läpinäkyvyys aiempaan tekemiseen katkeaa. Ohjelmistolla vaatimuksineen on elinkaari, mutta se kokee kaarensa keskivaiheessa laskutaitetta siirrettäessä ohjelmistoa kuin kasvia kukkaruukusta toiseen, minkä aikana sille tärkeää kasvualustaa, tietoa, voi kadota. Kukkaruukku vertaiskuvastaa tässä tapauksessa ohjelmiston siirtymistä projektitiimistä ylläpitotiimiin, mahdollisesti samalla tai myöhemmin digitaalisesta sijainnistaan aivan uuteen sijaintiin. Jatkuvuus katkeaa ja sillä on heikentäviä vaikutuksia ohjelmiston laatuun sekä kasvattaa kustannuksia.

Millainen on projektin manifesti?

Huonosti suunniteltua tai huonosti tehtyä ei saa testaamatta korjattua, mutta hyvin suunnitellun ja huolellisesti tehdyn pystyy pilaamaan testaamalla sen heikosti.

(Kasurinen 2013, 133)

Vaatimustenhallintaprosessin kehitysketjun viimeisenä on laadunvarmistus eli testaus, joka varmentaa hyväksymiskriteerien täyttyneen ja saattaa tilaajalle viimeisimmän tiedon ohjelmiston kypsyydestä tuotantoon. Tämä edellyttää vaatimusten jäljitettävyyttä sekä menneisyyteen, nykyhetkeen, että tulevaisuuteen, mitä on testattu ja mitä on vielä testaamatta. Tutkimustuloksissa ilmeni, että vaatimusten jäljitettävyys vaikeutuu, jos digitaalisen työkalun käyttö on jäänyt puutteelliseksi, siirtymävaihe kehitystiimistä ylläpitotiimiin katkaisee jäljitettävyysketjua tai jos vaatimusten sijainti siirretään uuteen ympäristöön.

Jäljitettävyys edellyttää, että projektin alussa vaatimusten sijainti eli digitaalinen työkalu on konfiguroitu riittävällä tasolla kattamaan raporteille tarvittavat tiedot ja sitouttamaan tiimi toimimaan yhteisissä pelisäännöissä. ”Hyvin suunniteltu on puoliksi tehty” pätee myös tämän asian yhteydessä. Jos tietojen kirjaamista muutetaan kesken projektin, sillä on suora vaikutus raporttien tulkittavuuteen ja luotettavuuteen.

Vaatimusten jäljitettävyys edellyttää, että jokaiseen vaatimukseen linkitetään testitapaus ja jokainen vaatimus kirjataan vain kerran jäljitettävyyttä edellyttävillä tiedoilla. Tämä edesauttaa vaatimusten, kuin myös testitapausten uudelleen käyttöä, joka on ajan säästämisen lisäksi kustannustehokasta: Vaatimukset ovat helposti jäljitettävissä ja testitapauksien lisäksi uudelleen käytettävissä tulevissakin projekteissa, joka nopeuttaa suunnittelutyötä.

Tutkimustyössä ilmeni, että toimeksiantajan vaatimusten hallinnan digitaalinen työkalu on jäänyt vähemmälle huomiolle. Sen olemassaoloa sivutaan tutkimuksessa työkalun ominaisuuksilla, mutta tärkein asia, työkalun elinkaaren hallinta, on vaarassa unohtua. Olisiko projektien syytä huomioida kaiken muun suunnittelun lisäksi se aihio, jossa kaikki toiminta tapahtuu? Kestävän kehityksen kannalta tulisi huomioida digitaalisen työkalun olemassaolo ja sen elinkaari yhdessä projektin ja kehitettävän ohjelmiston elinkaaren yhteydessä. Vaikka projektin kesto on lyhyt suhteessa ohjelmiston elinikään, tulisi huomioida kasvualusta, jossa kaikki arvokas työ on suoritettu ja hyödyntää siitä aiheutuneiden kustannusten hedelmää myös tuleviin projekteihin?

Ketterät menetelmät kannustavat kestävään toimintatapaan, sanotaan Agilen manifestissa. Sen voidaan ajatella kattavan myös tehdyn työn hedelmää ja kehittämisen digitaalista työkaluja.

Lähteet

Agile manifesto 2001. Julistuksen takana olevat periaatteet. Viitattu 25.5.2024. https://agilemanifesto.org/iso/fi/principles.html

Heikkilä, A. 2024. Vaatimushallinnan kehittäminen ohjelmistoprojekteissa : testauksen näkökulma – Theseus. Turun ammattikorkeakoulun opinnäytetyö.

Kasurinen, J. 2013. Ohjelmistotestauksen käsikirja. 1. painos. Jyväskylä: Docento