Kaikki oh­jel­mis­tot si­säl­tä­vät vir­hei­tä

Nasan Mars-luotain sukelsi vuonna 1999 Marsin ilmakehään liian matalalle ja kovaa ja murskautui. Luotain oli yhdeksän kuukautta viestinyt maahan metrimitoissa, mutta insinöörit maassa laskivat ja viestivät englantilaisissa tuumissa ja jaloissa.

Nasan Mars-luotain sukelsi vuonna 1999 Marsin ilmakehään liian matalalle ja kovaa ja murskautui. Luotain oli yhdeksän kuukautta viestinyt maahan metrimitoissa, mutta insinöörit maassa laskivat ja viestivät englantilaisissa tuumissa ja jaloissa. Matemaattinen sopimattomuus, jota varten ei ollut muunnosohjelmaa, aiheutti 125 miljoonan dollarin menetyksen.

FBI:n Virtual Case File (VFC) -järjestelmää eli rikostapausten jäljittämisjärjestelmää oli suunniteltu ja kirjoitettu monia vuosia. Vuonna 2003 aloitetuissa toimivan järjestelmän testauksissa havaittiin, kun ohjelmakoodia oli kirjoitettu jo 730 000 riviä, että sen tuottama virhemäärä oli kestämätön. Uusi järjestelmä piti tehdä aivan alusta.

Virheitä tehtiin niin suunnittelussa käytetyissä käsitteissä kuin itse järjestelmän toiminnoissa. Syypäitä olivat sekä kehittävän yhtiön (SAIC) epäpätevyys että FBI, joka keksi järjestelmään jatkuvasti uusia tehtäviä. Rakentamiseen hukkaantui 170 miljoonaa dollaria. Uuden järjestelmän, koodinimeltään "sentilel" (vartiomies) kehittämiseen FBI varasi keväällä 2006 425 miljoonaa dollaria.

Suomessa ulosottovirastot olivat vuonna 2004 itse saamassa maksuhäiriömerkinnän, kun uuden tietojärjestelmän sisäänajo ei onnistunut. Ulosottoviraston kautta kulkevat velkojien maksut olivat toista kuukautta myöhässä, erityisesti myöhästyivät elatusmaksut ja maksujen kuitit. Uuden järjestelmän käyttöönottoa nopeutettiin perusteellisen testauksen kustannuksella ja alkuperäisiin toimintamäärityksiin tehtiin kehityksen aikana runsaasti muutoksia. Vanhan tiedon siirto-ohjelmistoa ei testattu kunnolla, josta seurasi että osa vanhasta tiedosta käyttäytyi uudessa järjestelmässä oudosti.

Ohjelmien koko kasvaa ja koodirivimäärän lisääntyminen kasvattaa ohjelmavirheitä. Isot ohjelmistot sisältävät kymmenistä tuhansista jopa miljoonaan ohjelmariviä. Tarkimmankin testauksen jälkeen IT-kaupan hyllyjen paketit saattavat sisältää tuhansia ohjelmavirheitä, vaikka suurin osa niistä on merkityksettömiä.

Yhdysvaltain kansallisen teknologia- ja standardointi-instituutin arvion mukaan ohjelmistovirheiden kustannukset nousevat Yhdysvalloissa 60 miljardiin dollariin vuodessa. Gartner Group laskee pessimistisemmin kustannukset 200 miljardiin. Suomen oloihin vastaavia laskelmia ei ole sovellettu.

Yhdysvalloissa virhekustannuksista puolet maksoivat käyttäjät ja loppujen maksumiehinä olivat ohjelmien kehittäjät ja myyjät. Testaamisen tehostaminen uusilla menetelmillä saattaisi vähentää kustannuksia kolmasosan eli 22,5 miljardia, mutta sekään ei kykene poistamaan kaikkia ohjelmistovirheitä.

Ohjelmistoprojekteissa joudutaan varautumaan siihen, että testaus ja virheiden korjaus vie jo puolet ohjelmistokehitykseen varatuista resursseista. Joissakin kriittisissä sovelluksissa tämä osuus saattaa nousta 90 prosenttiin. Mercury Interactiven Suomen johtajan Mika Gerlanderin mukaan hyvällä testauksen suunnittelulla testauskustannus voidaan laskea 15 prosenttiin, kun virheet saadaan kiinni jo projektin aikaisessa vaiheessa. Kaikkein kalleinta on korjata virheitä, kun ohjelmisto on jo otettu tuotantokäyttöön.

Silti Mercury Interactiven mukaan peräti 98 prosenttia sovelluksista kärsii vakavista toimintaongelmista myös tuotantoon ottamisen jälkeen. Vasta puolen vuoden tuotantokäyttö löytää ohjelmien pahimmat viat.

Ilmoita asiavirheestä