Laatufantasia pilaa parhaankin projektin
“Hyvä idea!” tuumasi Päivi Projektipäällikkö. Tuotekehityksen budjettihan on ilman muuta järkevää jakaa siten että testaus ostetaan palveluna sitten kun sitä tarvitaan. Tehdään ensin testauskierros ensimmäiselle release kandidaatille. Tulosten perusteella korjataan virheet ja toisella kierroksella veridioidaan, että kaikki meni putkeen. Kaksi kierrosta riittää!
Päivin tyylillä toimii hämmästyttävän moni softaprojekteja ja -tuotteita tekevä yritys. Lähestyminenhän on ihan huippujärkevä niin kauan kun
- Uusia testejä/käyttötapauksia ei enää tule,
- Tuote ei muutu millään tavalla muuten kuin bugikorjausten osalta ja
- Bugikorjaukset eivät koskaan riko muita toiminnallisuuksia
Tällaisissa projekteissa käy lähes poikkeuksetta niin että aikataulu kusee testauksen astuessa kuvaan. Alkuperäiset odotukset nimittäin ovat hyvin epärealistiset. Virheitä löytyy aina odottamattoman suuri määrä jo ensimmäisellä kierroksella. Deadlinet paukkuvat, koska korjaaminen vie odottamattoman paljon aikaa. Yleensä ensimmäisellä kierroksella kuvaan astuvat myös testit joille lyödään “cannot run” -leima. Tämä johtuu siitä että osa virheistä estää niiden takaa löytyvän toiminnallisuuden luotettavan testaamisen.
Verifiointikierroksella löytyy jälleen lisää virheitä pelkästään jo sen takia että tuote on tullut tutummaksi testaajille. Lisäksi todennäköisyys sille, että koodaajat saavat virheettömästi korjattua kaikki oleelliset ongelmat, on oikeasti häviävän pieni. Päivin tyylillä myös yksi testauksen keskeisimmistä vahvuuksista jää saavuttamatta koko tiimillä. Se on oppiminen.
Älä siis pilaa hyvää projektia epärealistisilla laatufantasioilla.
Päivi Projektipäällikkö edustaa niin sanottua old schoolia softakehityksessä. Ja mikäpäs se siinä sillä valmistuuhan se ohjelmisto noinkin… aikanaan.
Uudet tuulet ovat kuitenkin jo puhallelleet jonkin aikaa ja nykyään voi havaita kohtuullisen yleisesti projekteissa, että devaajat sanovat suoraan, että he tarvitsevat testauksen mukaan tuotekehitykseen heti ensimmäisestä päivästä lähtien. Tuetteen kehittämisen alkuosassa ei tietenkään tarvita testikeissejä vaan testaus tukee tuotekehitystä tutkivalla menetelmällä ja antaa raporttinsa suullisesti ja suunnittelee yhdessä devaajien kanssa, että miten joitain asioita voisi parantaa jotta ne olisivat käytettäviä loppuasiakkaan silmissä. Ja tämä on vain yksi esimerkki testauksen roolista tuotekehityksessä.
Kaikkein kovimmat koodarit – mitä minä olen nähnyt – eivät suostu laittamaan rikkaa ristiin ennen kuin testaus on tiiviisti mukana. Kokeneet ammattilaiset tietävät, että on aivan turha alkaa edes tekemään mitään tosissaan jos perusasiat – kuten testaus – ovat rempallaan. Miten ihmeessä edes kehität mitään jos et saa järkevää palautetta siitä, että vastaako tuotos sovittua ja voiko sitä ihminen käyttää.
Maailma muuttuu ja softankehitys ei tee tähän poikkeusta. Loppukäyttäjät vaativat oikeutetusti toimivia systeemejä jotka ovat käytettäviä. Yllättävän pitkä pätkä ollaan menty niin, että ohjelmistot ja muut tietotekniset käyttöliittymät ovat voineet olla täysin bugisia ja vaatineet insinöörin koulutuksen jotta niistä on saanut jotain irti. Muu teollisuus kuten vaikkapas autoteollisuus ei voisi kuvitellakkaan tekevänsä bugisia ja vaikeasti käytettäviä tuotteita. Toki poikkeus vahvistaa säännön, mutta pointtini tais tulla selville 😉