Investoiminen laadukkaasti kehitettyyn ja toimintavarmaan ohjelmistoon vähentää ohjelmistovirheistä aiheutuvia kustannuksia sen koko elinkaaren ajan. Paras tae, että ylläpitokulut pysyvät kurissa, on koodin sisäinen laatu. Jo viidellä vuosikymmenellä koodannut Bitwisen teknologiajohtaja Heikki Mäenpää tietää, mitä laadukkaan ja aikaa kestävän ohjelmiston kehittäminen vaatii.

Laadukas ohjelmisto on tulevaisuusinvestointi

Ohjelmistohankinta on tulevaisuusinvestointi, joka muodostaa liiketoiminnan pitkäaikaisen tukirangan. Siksi toimittajaa valitessa kannattaa pohtia useita kysymyksiä:

Mitä jos haluan vaihtaa tekijää projektin aikana? Päädynkö toimittajaloukkuun? Onko minulla kyvykkyyttä arvioida lopputuloksen laatua? Uskonko ulkopuolisia konsultteja? Mitkä ovat arvioidut ylläpito- ja lisätyökustannukset? Kuinka tärkeä asiakas olen ohjelmistotoimittajalle?

Viidellä vuosikymmenellä koodannut Bitwisen teknologiajohtaja Heikki Mäenpää tietää, mitä laadukkaan ohjelmiston kehittäminen vaatii.

Jokainen on varmasti joskus joutunut käyttämään huonosti toimivaa ohjelmistoa. Sen muistaa ja siitä tekee mieli valittaa muillekin. Mäenpään mukaan toimiva ohjelmisto taas on sellainen, ettei siihen kiinnitä huomiota: “Laadukas ohjelmisto on huomaamaton. Se toimii taustalla ennalta suunnitellusti tekemättä itsestään isompaa numeroa.”

Bitwise technical director

Ohjelmistokehityksessä laatuajattelun on kuljettava mukana projektin alkumetreiltä asti. “Laatu ei koskaan synny sattumalta, eikä sitä voi lisätä jälkikäteen. Viisaat valinnat näkyvät viimeistään ylläpitovaiheessa. Alun perin edullisesta ohjelmistosta saattaa tulla yllättävän kallis tai jopa tarpeeton, jos se ei myöhemmin taivu tarvittaviin muutoksiin”, Mäenpää kertoo.

Kehittämiskulujen sijaan ylläpitokustannukset ovatkin yleensä ohjelmiston elinkaaren merkittävin menoerä. Paras tae, että ylläpitokulut pysyvät kurissa, on koodin sisäinen laatu. “Ohjelmistossa näkyy aina tekijöidensä kädenjälki, vähintään pinnan alla. Siksi ei ole samantekevää, millainen tiimi sitä on tekemässä. Kehitystyötä ohjaa hallittu prosessi, jota kaikkien tekijöiden on noudatettava. Asiantuntijoiden tasosta ei kannata tinkiä”, Mäenpää toteaa.

Uusien toiminnallisuuksien kehittämisestä koituu aina lisäkuluja, mutta se, kuinka paljon, riippuu siitä, miten laadukkaasti ohjelmisto on alun perin suunniteltu. Mäenpään mukaan kestävästi kehitettyyn ohjelmistoon on helppoa tehdä tarpeen mukaan muutoksia, jotka pysyvät hallittuina ja rajattuina: “Laadukkaasti suunniteltu koodi on jaoteltu oikein, eikä palasten välillä ole tarpeettomia riippuvuuksia. Nippa nappa toimiva softa ja laadukas softa voivat päällepäin näyttää samalta, mutta ero niiden elinkaarikustannuksissa on valtava.”

Valitse ohjelmistotoimittaja huolellisesti – laatuun on sitouduttava työn jokaisella osa-alueella

Ohjelmistotoimittaja on syytä valita huolella. Toimittajan on sitouduttava laatuun työn jokaisella osa-alueella. Kehitysvaiheessa täytyy hallita vaatimukset, koodauskäytännöt, riippuvuudet, testattavuus ja jäljitettävyys aiheuttamatta kuitenkaan turhaa jäykkyyttä päivittäiseen työhön. “Kun tässä tasapainoilussa onnistutaan, myös projektin kaupallinen menestys mahdollistuu”, Mäenpää kertoo.

Ohjelmistoprojektin aikana asiakkaallakin on hyvä olla pitkäjänteisyyttä. Kun kehitystyö keskittyy “pellin alla” oleviin asioihin, ei projektin edistyminen välttämättä näy päällepäin. Tämä saattaa aiheuttaa kasvavaa epävarmuutta. Mäenpään mukaan sen vastalääkkeenä toimii toimittajan järkevä kommunikointi: “Ohjelmistotoimittajan täytyy osata kuvata tietyt asiat korkealla tasolla, ja ne pitää pystyä perustelemaan sortumatta munkkilatinaan. Jos tämä tuntuu ylivoimaiselta, voi olla syytä pysähtyä miettimään, miksi tätä oltiinkaan tekemässä.”

Yhtä tärkeää kuin tehdä hyvin on tehdä oikeita asioita. Mäenpää kertoo, että ohjelmistokehitysprosessi vaatii säännöllistä matalan kynnyksen kommunikaatiota: “Vain asiakas lopulta tietää, mitkä asiat ovat niitä oikeita, eikä hänkään todennäköisesti etukäteen. Siksi säännöllinen mikrokommunikointi sekä asiakkaan kanssa että kehitystiimin sisällä on ensiarvoisen tärkeää.” Näin hän summaa asian: “Näytä minulle ohjelmisto, joka on juuri kuten etukäteen speksattiinkin, niin minä näytän sinulle jo vanhentuneen ja käyttöönsä sopimattoman softan. Tai avaruussoftan.”