Monday, 23 May 2011

Tunteet pinnassa

Nyt on 23. Toukokuuta ja istun Hotelli Haagan huoneessa. Olen Michael Boltonin vetämällä Rabid Software Testing -kurssilla. Kurssi on huikea ja palaan siihen vielä kattavammin myöhemmin.

Antti Niittyviita Provelta kommentoi minulle kirjoittamistekniikastani hotellin aulassa. Hänen mielipteensä kirjoittamistyylistäni oli se, että annan kerralla liikaa... Hmmmm... On totta että kirjoitan tunteella ja tunnin, mutta tämänkertainen kirjoitelmani ei ole tunnin mittainen. Tunteet ovat siinä kuitenkin mukana.

Hah! Tunteet eivät kuulu projektimaailmaan! Meillä pitää olla faktoja eikä tunteita! Mittarit kertovat meillä tarvittavat asiat ja muu on turhaa nyyhkytystä! Vai onko?

Suomessa ei ole kovin paljoa puhuttu testauksesta tunteiden pohjalta, mutta Michaelin mukaan nopean ja tehokkaan tutkivan testauksen yksi kulmakivistä on tunteiden liittäminen testaukseen. Tunteet toimivat toiminnan laukasijana. Usein viitataan intuitioon, perstuntumaan, jne. tapauksissa, joissa meillä ei ole suoranaista faktaa tai mittareita kertomaan asioista. Mittarina toimii siis henkilö itse. Esimerkkinä Michael käytti autolla ajamista: "Jos mietit, että ajanko liian lujaa, ajat liian lujaa." Ihminen saa tuntemuksia erilaisten tapahtumien johdosta, esimerkiksi hämmennys testatessa tarkoittaa, että jokin testauksen kohde on hämmentävä. Tämä toimii mittarina sille, että kaikki ei välttämättä ole kohdallaan.

Tämä siis puhtaasti sitä, mitä kurssilla opetettiin... Miten tämä siis kääntyy esimerkiksi meidän yrityksemme testausprosessiin? Kun prosessi on määritelty sellaiseksi, että automaatio näyttelee (tai tulee näyttelemään) suurta osaa, täytyy testauksen hallinnan luovia itselleen väylä tuonne. BDD tyyppisen prosessin johtaminen tunteella ei välttämättä ole se, mitä johtoporras tai asiakas haluaa kuulla. Voidaanko tunteen pohjalta kuitenkin tehdä bisnespäätöksiä? Tarvitseeko kaikki päätökset tehdä mittareiden pohjalta?

Jos testaaja saa tunteen, että "tässä on jokin vialla", eikö se ole maailman paras mittari? Jos jokin toiminnallisuus herättää epäluuloa, eikös se ole vahvempi mittari kuin "3 minor defectiä, joista kaksi korjataan 9. sprintissä"? Jos testaaja tuntee turhautumista siitä, että ei löydä toiminnallisuudesta enempää vikoja, kertooko se enemmän kuin "S-käyrän taittuminen toiminnallisuuden vikakertymää tarkasteltaessa"?

Kuinka siis esittää liiketoiminnalle arvio järjestelmään liittyvistä riskeistä, jos ne pohjataan mittareihin? Voidaanko testausprosessiin liittää tutkivan testauksen tuoma reaktiokyvyn kasvattaminen sekä tunteiden "kuunteleminen", mutta säilyttää iteraatiomallin automatisoitu regressiotestaus? Testausprosessiin tulisi liittää vaihe, joka on rinnan muun testauksen kanssa, joka käsittelee testattavaa tuotetta tutkivan testauksen näkökantilta, mutta joka tapahtuu rinnan kaiken muun testauksen kanssa. Heuristiset menetelmät ja sessiopohjainen testauksen hallinta voivat vapauttaa resursseja kankeista manuaalisista testausprosesseista ilman että manuaalisesta testauksesta luovutaan (ja tätäkin ajatusta maailmalla viedään eteen- ja taaksepäin). Tämä prosessimalli mahdollistaisi automaation tuoman jatkuvan ja nopeatempoisen raportoinnin etujen liittämisen tutkivaan testaukseen ja älykkääseen päätöksentekoon.

Mutta Antin mielipidettä kunnioittaakseni aion pitäytyä nyt lyhyessä pohdiskelussa ja vielä tämän viikon aikana aion avata sanaisaa arkkuani toisen merkinnän puitteissa. Siihen asti... tunteella mukana.

16 comments:

  1. Bolton vertasi testausta ja autolla ajoa useaan otteeseen tuon kurssituksensa aikana.

    Asiaahan voi ajatella pelkääjän paikalla istuvan näkökulmasta. Näet jatkuvasti kaiken mitä liikenteessä tapahtuu. Tunnet onko nopeus liian kova tai ehkä liian hidas. Tunnet onko kyyti kuoppaista tai nykivää. Tunnet onko kuskin jarrutus tai kiihdytys liian voimakas. Näet onko edellä ajava liian lähellä.

    Kaikki tämä vain tilanteen seuraamisesta ja analysoinnista. Tuntemisesta.

    Pelkääjä, samoin kuin testaaja, eivät voi vaikuttaa matkantekoon oikeastaan muulla tavalla kuin kommunikoimalla kuskin kanssa oikealla tavalla. Ei niin, että kuski suuttuu ja lopettaa kuuntelemisen. Siinä tarvitaan politiikkaa ja ystävällisyyttä.

    Sitten faktojen kimppuun. Ajatelkaapa, jos kuski kyttäisi pelkästään mittareita. Nopeutta, kierroslukua, kulutusta ja gps-koordinaatteja. Kauanko siinä pysyttäisiin tiellä?

    Niinpä.

    Minusta on täyttä höpöhöpöä väittää, että softaprojektit perustuvat rakoihin faktoihin, mittareihin ja numeroihin.

    ReplyDelete
  2. Oliko tässä esimerksissä asiakas pelkääjä? ;) No oletetaan, että asiakas on pelkääjä. Eli pelkääjä tekee havaintoja kaikesta mitä ympärillä tapahtuu, joskus havainnoiden jopa asioita joita kuljettaja ei aisti. Jos pelkääjä tuijottaa pelkästään auton mittareita (joita huippuautoissa voi olla nopeus-, kierrosluku-, bensa-, moottirinlämpö-, jne mittarit) sekä kojelaudassa ajoittain vilkkuvia valoja, pystyykö pelkääjä tekemään päätöksiä niiden perusteella? Vaistomaisesti hän tekee tunteiden pohjalta päätöksiä, vaikka olisi alussa päättänyt että "satasen nopeuden jälkeen hiljennämme" ja "vilkuttaessa vasemmalle, käännymme vasemmalle". Kaikkia muuttujia ei voida tuntea eikä kaikkia tapahtumia voi mitata mittareilla. Päätökset tulee siis tehdä tilanteesta riippuvien tekijöiden sinulle kertoman informaation pohjalta ynnä mittareista saatu mahdollinen apu (mikäli tiettyjä asioita mitataan). "Apua! Aja hiljempaa! Tiellä on hirvi, edessä mutka ja luistonesto on hajonnut!" "Pysäytä! Vaikka ajat kolmeakymppiä kuudenkympin alueella, moottorista tulee savua, vaikka kojelaudassa ei palakaan valo!"

    Sivusin toisessa foorumissa kommentoidessani asiaa älykkyydestä (en voi julkaista kommenttia tässä tietosuojasyistä), mutta se oli keskustelua aiemmasta blogitekstistäni älykkäästä testauksesta. Mielestäni mittareiden tuijottaminen orjallisesti ei ole älykästä. Jos testauksen tarkoitus on tuottaa mittareita, minkä perusteella asiakas tekee päätöksensä, katoaako asiakkaalta äly tehdä omia päätöksiä? Käytännössähän testausmittari tekee päätöksen, asiakas vain sanoo sen ääneen. Osaako mittarit ottaa huomioon kaikki muuttujat, mitä projektissa on? Onko 10000 testikeissiä parempi kuin 100? Entä jos kaikki paitsi yksi keissi on vihreä? (Se sattuu olemaan se keissi, että järjestelmä käynnistyy... muut ovat jo käynnissäolevan järjestelmän testejä..)

    Jos tunteita ei kuunnella, niin voiko päätöksiä edes tehdä?

    ReplyDelete
  3. Moro Pekka,

    Minä ehkä ajattelisin testaajaa pelkääjän paikalla istuvaksi havainnoijaksi. Hän ei pysty vaikuttamaan matkantekoon oikein millään konkreettisella tavalla paitsi kommunikoimalla havaintojaan ja myymällä ideoitaan sille kuskille. Kuski lienee sitten se tuotteen omistaja tai koodaaja tai projektipäällikkö.

    ReplyDelete
  4. Terve Peksi,

    Peter Drucker (KVG) kirjoitti aikanaan:

    "What gets measured, gets managed."

    Yksittäisten testaajien voi olla paha alkaa väittämään vastoin vuosikymmeniä/-satoja vanhoja johtamisoppeja. Sehän on aivan tasan niin, ettei mittaamatonta voi hallita. Miten muuten voi olla varma edistymisestä, saavutetusta menestyksestä?

    Mittaamisen hallitseminen pelkillä testitapauksilla on vain yksi keino, ja kuten sanottu, ei välttämättä kovin hyvä sellainen. Sen sijaan isomman asian palasteleminen hallittaviin kokonaisuuksiin, näiden priorisointi ja mittaaminen on loogisen ajattelun peruspilareita. Näiden palasten ei tarvitse olla ohjeita siihen miten asioita pitää tehdä odotettuine lopputuloksineen vaan vain pelkkiä palapelin palasia ilman krumeluureja (ks. auto, jossa moottori, jossa mäntä, jossa rengas, joka rikki). Palastelun voi tehdä eri tavoilla (hierakia, matriisit, kombinaatiot, ketjut, tilamallit, jne.) enkä näitä ala tässä kommenttikentässä käymään läpi. Mutta kuten tuossa yllä mainitsin, mittaamisen tavoitteeksi on hyvä ottaa menestys ja sen seuraaminen sekä osoittaminen muille.

    Mittareita ei voi hylätä vain sillä verukkeella, ettei hallitse niitä.

    ReplyDelete
  5. Moro Sami!

    Olet mainio kommentoija, koska jätät jälkeesi niin miellyttäviä langanpätkiä, joihin voi tarttua! XD

    "Yksittäisten testaajien voi olla paha alkaa väittämään vastoin vuosikymmeniä/-satoja vanhoja johtamisoppeja." Ja mielestäni jokaisen testaajan tehtävä on kyseenalaistaa ne johtamisopit ja miettiä, miten pystyisin paremmin siirtymään kohtitätä tässä kysesisessä tapauksessa olevaa päämäärää. Ilman muuta täytyy ottaa oppia viisaammilta, mutta joskus sinä olet jollekulle se "viisaampi", joten mielummin he oppivat silloin minun nimeäni kantavia asioita eikä "KVG-tyypin" asioita! ;)

    Asiasta toiseen: olet kuitenkin ihan asialinjalla. Tottahan toki meidän täytyy pystyä johtamaan ja tottakai meidän täytyy pystyä mittaamaan. Haluan lekan kanssa kyseenalaistaa sitä, että tehdään johtopäätöksiä PELKISTÄ numeroista. Jokaiseen numeroon liittyy tarina, miten se on syntynyt, joten tekisin siis mielummin johtamisliikkeitä näiden "tarinoiden" mukaan.

    "-- mittaamisen tavoitteeksi on hyvä ottaa menestys ja sen seuraaminen sekä osoittaminen muille." Niinpä. Miksi siis mitataan asioita sen takia, että ne abstraktit luvut toimivat automaattisina päätöksentekovälineinä? Tyhmentääkö ihminen itsensä mittamalla pilkuntarkasti? Tietokoneet tottakai toimivat (usein) absoluuttisella datalla, mutta me ihmiset olemme kuitenkin ajattelevia olentoja ja pystymme käsittämään myös konkretiaa.

    Mielestäni mitataan vain niitä asioita, joiden mittaaminen on perusteltua ja jonka numeraalista etenemistä seurataan niiden numeroiden takia. Ja ei, mittareita ei pidäkään hylätä sillä verukkeella, että niitä ei hallitse. Ne voidaan hylätä siksi, että mittarin tuottama data on irrelevanttia, jolloin "tarina kertoo enemmän kuin tuhat numeroa". (Ah tätä sivistyssanojen kehtoa!)

    ReplyDelete
  6. Minua ei saa sanoa "viisaammaksi", jos en tiedä kuka Peter Drucker on... ;)

    Mittaaminen on sanan varsinaisessa merkityksessä suhteiden ja määrien määrittämistä. Ja tämähän hoidetaan pääosin numeroiden avulla. "Tänään juoksin 10km, kun eilen meni 9km." "Tällä kierroksella sovitusta toimituksesta oli rikki 10%, kun edellisellä kierroksella luku oli 9%." Ja niin edelleen. Jopa tunteet voidaan sovittaa riskiluokitusasteikolle ja mitata niiden intensiteettiä ja fokusta eri osa-alueille, ja edelleen vaihtelua tarkasteluväleillä. Hyvin tieteellistä toimintaa, jonka hallitseva on se, jota rahapussin päällä istuva kuuntelee.

    Tunteiden vallassa voidaan tehdä havaintoja, mutta päätökset pitää tehdä kylmiin faktoihin perustuen ja näitä edustavat numerot.

    ReplyDelete
  7. Onko siis järkevää mitata "--juoksin 10km, kun eilen meni 9km--", jos se päätöksenteon väline on esim. "juoksin eilen tunnin ja tänään 45 minuuttia"? Tässä pitäisi taas siis miettiä, mitä mitataan ja miksi.

    Tämä on niin hyvä keskustelu, että kirjoitan tämän varmaankin uudeksi postiksi tuonnempana. Kiinnostaa nimittäin juurikin se, miksi meillä on mittareita ja mitä kivoja mittareita olisi hyvä olla. Eikös melkein jokainen testauspäällikkö mieti, että mitä mitataan?

    ReplyDelete
  8. Tämä kirjoitus oli jälleen niin rautainen, että nyt meni Pekan blogi bookmarkkeihin niin että heilahti!

    Minä teen töitä tunnepohjalta.. koko ajan. Se on helppoa kun sen oppii ja tunteiden tarkkailussa piilee massiivinen voima. Suomalaisittain ehkä paras termi kuvaamaan tapahtumaa on juuri tuo perstuntuma. Minä testaan perstuntumalla. Kun olen työn lumoissa, saan mitä ihmeellisimpiä ajatuksia ja sitten vain tarkkailen, että mikä niistä tuntuu hyvältä ja mikä ei ja sen mukaan mennään. Lopputulos on mykistävä sekä minulle itselleni että myös työn tilaajalle eli asiakkaalle. Olen jo jonkin aikaa sanonut, että testaus on taidelaji ja tunteita seuraamalla niitä masterpiecejä sitten syntyy.

    ReplyDelete
  9. "Onko siis järkevää mitata "--juoksin 10km, kun eilen meni 9km--", jos se päätöksenteon väline on esim. "juoksin eilen tunnin ja tänään 45 minuuttia"? Tässä pitäisi taas siis miettiä, mitä mitataan ja miksi."

    Eihän tuo ole tosiaan järkevää. Emme välttämättä pääse ihan tasavertaiseen keskuteluun, jos oletat etten hallitse mittareita edes sen vertaa, etten mittaisi etäisyyksiä samalla aikamäärällä... ;)

    Anyway, toisessa kirjoituksessa toitotin paljon tuloksista. Tunteella testaaminen toimii erittäin hyvin ja sitä pitääkin suosia, mutta kun mennään testauksen hallintaan ja siihen tuloksen tuottamiseen, on meillä oltava selkeät mittarit. Millä ihmeellä muuten voit kertoa teetko tulosta eli asioita huonommin vai paremmin? Kaksi tarkastelupistettä ja näiden välinen erotus vertailukelpoisilla mittaustuloksilla; Meneekö miinukselle vai plussalle?

    Miten tunnistat masterpiecen, jos et vertaa sitä johonkin? Miten erotat mustan, jos ei ole valkoista? Hyvä ja paha?

    Nyt tehdään niin, että te kerrotte niistä tuloksista, joihin olette päässeet antamalla tunteiden viedä ja minä kerron vastaavasti niistä, mihin olen päässyt mittaamalla. Sopiiko?

    ReplyDelete
  10. Jos siteeraa itseään, niin joko on hieman pöhkö (luulen niin) tai rakastaa omaa ääntää (luulen myös niin): "Tämä on niin hyvä keskustelu, että kirjoitan tämän varmaankin uudeksi postiksi tuonnempana." ;)

    ReplyDelete
  11. Minulle perstuntumalla testaaminen tarkoittaa seuraavaa: viime vuosina olen enemmälti osallistunut projekteihin jossa minun päätehtäväni on ollut tutkiminen. Hieman vähempi olen ollut tekemisissä testispektien tai testitapausten kanssa viime vuosina ja näin olen päässyt kehittämään tunteilla testaamista - tämä on siis se miten minä asian koen.

    Usein löydän itseni tilanteesta, että minulla on lukuisia eri mahdollisuuksia lähestyä epäiltyä virhettä mistä toistoon tarvittavat vaiheet ovat vielä tuntemattomat. Mitä teen? Selvää on, että kenenkään aika ei riitä siihen, että käyn järjestyksessä kaikki mahdollisuudet läpi. Minun ainoa mahdollisuuteni on vetää perstuntumalla. Kokemus auttaa minua rentoutumaan ja niimpä tunnustelen, että miltä eri vaihtoehdot tuntuvat. Jos joku ajatus tuntuu tyhmältä, hyppään seuraavaan ajatukseen kunnes törmään ajatukseen joka tuntuu hyvältä. Tunnistan kyllä tunteen. Kun olen tyytyväinen ideaani, niin alan toteuttamaan sitä ja tutkin errorin ideani mukaisesta lähestymiskulmasta.

    Ymmärrän hyvin, että kun tehdään vaikkapas riliisitestejä testispeksin mukaan, niin siinä on usein määritelty stepit hyvinkin tarkkaan ja perstuntumaa ei tuolloin niinkään tarvita mutta ei se silloinkaan täysin hyödytön ole. Voi joskus kokeilla esimerkiksi semmoista, että kirjoittaa stepit hieman väljiksi ja antaa testaajalle mahdollisuuden päästä tiettyyn lopputulokseen itse valitsemaa reittiä käyttäen. Esimerkiksi tyyliin: luo järjestelmässä tietue x (kuten parhaaksi näet), tietue x luotu = passed.

    ReplyDelete
  12. Istun parhaillaan samaisella kurssilla ja pahiten tässä tunneasiassa hiertää se, että jos otetaan käsittelyyn koko ajattelun kirjo on tunne vain yksi osa sitä. Tämä tuli herra Boltonillekin yllätyksenä, kun väläytin hänelle piirtämääni Heuristic Test Strategy Model -mindmapia, jonka osana oli Six Thinking Hats -menetelmä.

    Em. menetelmä jakaantuu kuuteen eri tilaan (copy-paste Wikipediasta):

    - Information: (White) - considering purely what information is available, what are the facts?
    - Emotions (Red) - instinctive gut reaction or statements of emotional feeling (but not any justification)
    - Bad points judgment (Black) - logic applied to identifying flaws or barriers, seeking mismatch
    - Good points judgment (Yellow) - logic applied to identifying benefits, seeking harmony
    - Creativity (Green) - statements of provocation and investigation, seeing where a thought goes
    - Thinking (Blue) - thinking about thinking

    Näitä voidaan soveltaa myös rinnakkain eli ajattelija voi hyppiä kohdasta toiseen lennosta, alitajuntaisestikin (ks. parallel thinking).

    Eli tottakai tunnekin on aina mukana ajattelussa, muttei suinkaan yksin.

    ReplyDelete
  13. Tunne kertoo minulle kulloisenkin ajatuksen olennaisuuden suhteessa siihen mitä olen tekemässä. Jokainen ajatus tuntuu joltakin ja tätä tarkoitan tunteella testaamisessa tai yleistettynä tunteella tekemisessä.

    Toki moni kokee tunteet ja ajatukset hyvinkin moninaisesti, mutta yllä siis se miten minä asian koen. Lisäksi tässä on myös se positiivinen puoli, että se kaikkein tavallisinkin työpäivä on mukava ;)

    ReplyDelete
  14. Tuo hattu-teoria on melko jännittävä:

    Valkoinen hattu on melko itsestään selvä se peruskaura, mihin testausta pohjataan. Joskus infoa ja sitä faktaa on ainoastaan palasina ja loput on pääteltävä itse.

    Punainen hattu on tässä mielestäni hieman sekava. Vaistomainen reaktio tai tunteiden ilmaisu... Oli suora lainaus tai ei, niin mielestäni tämä ei ole sitä mitä ylipäänsä tunteisiin uskomisella tarkoitetaan. Tuosta hatuista saa sen kuvan, että "jos testus itkettää, niin itke". Tunteella testaus tarkoittaa juurikin sitä, mitä Ammattitestaaja viljelee - minustä tuntuu, että tällä hetkellä on parempi unohtaa skriptattu testaus ja tehdä sellainen päätös uudesta suunnasta, jolla löydetään oikeasti tärkeitä bugeja.

    Eli musta hattu on siis käytännössä myös riippuvainen tunteista, kuten myös keltaisen hatun kanssa. Ja pisteenä I:n päälle vihreä hattu on yksi tunteiden ilmaus.

    Sininen hattu tarkoittanee siis järjellä ajateltavia asioita, joihin ei ilmeisesti tunteet liity ollenkaan.

    Mielstäni siis näiden kuuden hatun osalta ainakin puolet (ellei 3,5 / 6) on tunteilla ohjattavia toimintoja. Onko siis niin, että vaikka me kuinka haluamme tehdä jostakin asiasta "järkevää", niin se on väistämättä "tunteellista"? Tarkoittaako se siis, että tunne on silti kaikista voimakkain ohjain vaikka luulemme järjen vievän meitä eteenpäin?

    ReplyDelete
  15. Tottakai kaikkeen toimintaamme vaikuttavat tunteet, koska olemmehan psykofyysisiä olentoja, mutta mitä tuolla hattuteorialla haetaan on ajattelun palasteleminen eri osa-alueisiin, jossa tunteilla on oma tasavertainen tonttinsa.

    Seuraava artikkeli kertoo asian paremmin kuin itse koskaan pystyisin:

    http://users.jyu.fi/~lrl/kurssit/virtopp2002/hats.html

    ReplyDelete
  16. @Sami: Kiitos! Luen tuon heti kun saan tästä kiireestä itseäni irtautettua.

    ReplyDelete