Virheiden synnystä ja ehkäisystä

Mistä bugit tulevat? Useimmille on selvää, että bugeja syntyy muuallakin kuin koodarin näppäimistöllä: vajaa tai vanhentunut speksi, väärinymmärrykset asiakkaan ja toteuttajan välillä, ennakoimattomat eri järjestelmän osien yhteentoimimattomuudet ovat esimerkkejä.

img_0186

Mutta suurelle osalle meistä on hieman vaikeampi mielen loikka ymmärtää, miten useimmilla virheillä ei ole vain yhtä syntysyytä.

Puutteellinen speksi ei ole ainoa syy miksi ominaisuus tulee väärin koodatuksi, muita mahdollisia syitä on kiire jonka vuoksi epäilyttävät kohdat jäävät varmistamatta, varsinkin kun kyseisestä asiasta kaiken tietävä asiantuntija eli oraakkeli on jostain syystä tavoittamattomissa juuri silloin kun vastauksia kaivattiin.

Viimeisin muutos ennen bugin ilmaantumista saattaa olla triviaali, mutta kaikkien muiden “melkein oikein” toimivien koodirivien jatkoksi asetettuna on juuri se kuuluisa kamelin selän katkaiseva korsi.

Korjattujen bugien ruumiinavaus eli post mortem voi olla hyödyllinen työtapa, kun selvitetään mitä osa-alueita ohjelmistotuotannon prosessissa olisi syytä parantaa. Koska resurssit ovat rajalliset, kaikkia mahdollisia korjaustoimenpiteitä ei tietenkään ehdi tai edes kannata yrittää korjata. Mutta jos löytyy osa-alue, joka toistuvasti on mukana bugeja synnyttämässä, sen parantamiseen kannattaa panostaa.

Ihminen puutteineen on aina osallisena siihen miksi bugi on päässyt syntymään. Yksin hän ei kuitenkaan juuri koskaan ole se perimmäinen syy virheeseen. Silloinkin kun yksittäinen ammattilainen on monen bugin synnyssä mukana, ei tilannetta ratkaise syyllistäminen.

Se, mitä hän tarvitsee, on apua.

Syyllistäminen ei saa aikaan kuin puolustusreaktioita ja stressiä. Virheiden kokonaiskuvan selvittäminen ja siihen liittyvien tekijöiden parantaminen viestii että ihmistenkin annetaan oppia virheistään.

Oikean palautteen saatuaan ihmiset ovat itsensäkorjaava systeemi. Niin bugien syntysijoillakin tulee lopulta hiljaisempaa.