Me emme tee virheitä. Elämässäkään.
Katselin viikonloppuna vanhoja Kummeleita. Musacornerissa vieraina olivat progemuusikot Jussi Pattitussi ja Kikka Korea. He eivät tee lainkaan virheitä. Elämässäkään.
Ilmeisesti ammatistani johtuen ajatukset joutuivat sivuraiteille ja Kummelielämys oli pilalla. Keskustelen paljon ohjelmistokehittäjien kanssa ja toisinaan törmään muusikkoduon ajatusmalliin ihan oikeasti. Testausta ei tarvita, sillä tavoitteena on tehdä riittävän virheetöntä jälkeä jo koodatessa. Eli leipoa laatu sisään jo alkumetreillä.
Minusta laadun tavoittelu on aina hyvä idea. Usein vain unohtuu, että laatu on aina ihmisistä lähtöisin ja laadukkaiden lopputulosten tuottamiseen ihminen tarvitsee aina oppimisen. Täytyy oppia jo tehdyistä virheistä ja täytyy oppia välttämään uusia virheitä.
Vasta yksi jatkuvan oppimisen seurauksista on, että koodaaja tekee vähemmän virheitä.
Mielestäni bugittoman koodin tuottaminen on kuitenkin utopia. Lähelle voi toki päästä, jos pystyy investoimaan jumalaisiin koodaajiin, joilla on eliniän verran kokemusta juuri tästä kehitysympäristöstä, työn alla olevasta tuotteesta ja tuotteen liiketoiminta-alueesta. Käytännössä siis ihmisiä, jotka ovat jo oppineet kaiken, mitä opittavissa on. Sellainen investointi vain tulee helposti hirveän kalliiksi.
Mikäli käsissä sattuu olemaan sopivasti rahaa ja oikeita ihmisiä, niin laadun leipominen tuotekehitykseen voi onnistua. Täytyy vain osata vastata kysymykseen “Miten?”. Miten tuotekehitystiimin oppimiskäyrästä saadaan jyrkästi nouseva? Vastaus on itse asiassa melko yksinkertainen.
Ainoa tapa nopeaan oppimiseen on nopea palaute.
Todellisuudessa suurin ongelma matkalla kohti virheettömämpää maailmaa on ego. Vaatii nimittäin ihan älyttömästi pokkaa myöntää: Bugien päätymistä lopputuloksiin ei pysty mitenkään välttämään, jos rahaa ja aikaa on rajallisesti.
Kun tuon tosiasian on pystynyt kohtaamaan, niin loppumatka onkin helppo. Tarvitsee vain löytää sopivimmat välineet ja menetelmät nopean palautteen toteuttamiselle. Muusikkoduon tapauksessa suoritukset katsottiin videolta hidastettuna ja otettiin opiksi.
Ohjelmistokehityksessä voi hyödyntää esimerkiksi koodin katselmointi- ja tarkastusmenetelmiä, yksikkötestausta sekä jatkuvaa bugien metsästystä välittömästi tuotekehityksen tukena. Äkkiä näissä kaikissa palautemekanismeissa onkin kysymys testauksesta.
Tulosta syntyy, kun hyväksyt tosiasiat: Tee rohkeasti virheitä, huolehdi niiden nappaamisesta ajoissa ja varmista niistä oppiminen.
Bugien metsästäminen ei-testausmielessä onkin kutkuttava ajatus: Soitat musiikkia bändissä ja koko homma rokkaa. Kaikilla on hyvä meininki! Basisti (Kyllä, basisti! Basisti on bändin sielu! Ja kyllä, olen basisti.) kuulee riitasoinnun, joka ei pitäisi olla siellä. ”Mikä toi oli? Kuka soitti sen?” Havainto johtaa oraakkeliin, että kaikki ei olekaan kohdallaan. Sitten analysoidaan vasten erilaisia musiikillisia oraakkeleita ja päätellään, kuka soitti väärin, oliko se väärin, ja mikä on mahdollisesti oikein. Ja sitten opitaan.
Tekstistä sen verran, että en tällä kertaa tartu yksityiskohtiin, kuten ”Mielestäni bugittoman koodin tuottaminen on kuitenkin utopia.” ja mikä on bugi oikeasti? Haluan sanoa, että mitä enemmän pyritään täydellisyyteen, sitä helpommin suljemme silmämme virheiltä, jotka saattavat osoittaa meidän olevan erehtyväisiä. Paras keino onkin tunnustaa, että teemme virheitä.
Ainoastaan yhtä virhettä ei saa tehdä: olla oppimatta!
– Peksi
Ohjelmistokehitys ja testaus siinä erottamattomasti mukana ovat kuin suuri AA-kerho. Projektit pitäisi ehdottomasti aloittaa aina ensin myöntämällä faktat eli ”me koodaamme virheitä, paljon” ja ”me emme löydä kaikkia virheitä”. Kun tosiasiat on myönnetty, niin koko ilmapiiri on heti kevyempi ja avoimempi. Se vain on niin, että kun faktat on sanottu ääneen, niin asioille voidaan oikeasti jotain tehdä ja aloittaa prosessi kohti parempaa.
Minä voi aloittaa: Hei, minä olen Espe ja en löydä kaikkia virheitä vaikka käytän nimimerkkiä Ammattitestaaja. Tänäänkin sormieni lävitse on luikahtanut läjä bugeja joita en ole saanut kiinni. Parannan kuitenkin tapani ja testaan kaikki uudestaan ja ehkäpäs hieman eri metodeilla.
Voltairen sanoin: ”Le mieux est l’ennemi du bien”. (eli Paras on hyvän pahin vihollinen)
Ehkäpä Pattitussi ja Koreakin olisivat julkaisseet muutaman kovan albumin enemmän, jos eivät olisi niin kovin tavoitelleet täydellisyyttä? Vaikka pakko sanoo et on toi biisi kyl aika hieno.
Hieno kiteytys Anssi. Lisäksi epätäydellisyys on inhimillistä. Se herättää myös luottamusta ja tekee asioista yksilöllisiä. Mieleeni tuli välittömästi Seth Godinin teksti Effortless:
http://sethgodin.typepad.com/seths_blog/2012/11/effortless.html
Samaan hengenvetoon täytyy lisätä tähän vielä vastaus kysymykseen: Miksi huono kuva on niin hyvä?
http://pollitasta.fi/2012/11/07/miksi-huono-kuva-on-niin-hyva/