Showing posts with label James Bach. Show all posts
Showing posts with label James Bach. Show all posts

Tuesday, 16 August 2011

Miten saada lisää ääntä Suomen "testausskeneen"?

Haa! Taas kunnianhimoa pursuava otsake! =) Tänään selailin suomalaisia testausblogeja (ohjelmistotestaus.fi, Pro-Testing, Testausko Turhaa?, jne.) ja kuten eräässä kommentissani tuolle kokeneelle testaajalle (ja hänen kristallipallolleen) avauduin, rupesi korpeamaan se, että suomalaisessa testausskenessä ei kuulu tarpeeksi ääntä. Voipi olla, että olen väärässä paikassa väärään aikaan (eli Twitterissä ym. liian harvoin), mutta testausblogit kumisevat kommentittomuuttaan. Toki vakkarikommentoijia on ("ammattitestaaja", oopee, jne.), mutta kommentoinnista puuttuu haastaminen. Yleensä kommentointi on joko "hei, hyvä teksti" tai "joo, ajattelin samaa ja tulin tulokseen X".


Jos joku aktiivisesti lukee Bachin tai Boltonin blogeja, niin siellä on joskus hyvinkin äärimmäistä haastamista. Teesit jyrätään ja kirjoittaja puolustaa niitä. Sami Söderblom pistikin meikäläiselle hyvin kapulaa rattaisiin, mutta jotenkin juttu kuivui kokoon vaikka langanpätkiä jäikin ilman tarttujaa. Pelkäävätkö ihmiset mielipiteitään?

Minä, blogaajana ja kommentoijana, en ole kovinkaan kaunisteleva: pyrin tuomaan esiin ne ristiriidat, mitä minun korvaani (silmääni) kalskahtaa. Harvemmin haluan pahoittaa kenenkään mielen, mutta astumalla varpaille, haastamalla, kyseenalaistamalla saan ihmisistä enemmän irti! Ihmiset tekevät työnsä paremmin ja ajattelevat asoita syvemmältä ja laajemmalta, kun tietävät irtoinaisiin lankoihin tartuttavan. Toki suodatan pahimmat pois, mutta kovia (engl. harsh) sanoja saattaa jäädä tekstiin. Usein olen samaa mieltä kirjoittajan/puhujan kanssa, mutta olen periaatteesta eri mieltä ja tuon vastakkaiset näkökulmat esiin.

Testausala on huikea ja rikas ala! Ihmiset ovat poikkeuksetta lahjakkaita ja äärimmäisen älykkäitä. Onko linja kuitenkin se, että on parempi pitää mielipiteensä itsellään kuin tuoda ne julki ja tulla ehkä jopa lytätyksi? Eikö ala tulisi huomattavasti paremmaksi, jos jokaista ajatuksensa julkituovaa kunnioitettaisiin keskustelemalla/väittelemällä hänen esilletuomastaan aiheesta? Vai tulisiko? Tuntisimmeko me olomme epämukavaksi, kun joutuisimme puolustamaan sanomisiamme/tekemisiämme? Eikös jokaisen testaajan perustaitoihin kuulu kyky pystyä todistamaan oman työnsä tulokset?

No miten sitä ääntä saataisiin lisää? Keskustelemalla! Kommentoimalla ja keskustelemalla! Vaikka kaiken maailman seminaareja ja kokoontumisia järjestetään, niin niissä keskustelu on usein yksipuolista ja/tai haastamista ei juurikaan ole. Itse en työni puolesta pysty osallistumaan kuin murto-osaan näistä julkisista tapaamisista, mutta käytän ääntäni verkossa (onko tämä ääntä, kun tämä on tekstiä)! Pystytkö... ei... Uskallatko avata äänesi ja kantaa kortesi kekoon testauksen äänen kasvattamiseksi? ;)

Wednesday, 10 August 2011

Best Practices (NOT!)

Jostakin syystä eksyin taas kerran JMB:n blogille ja tarrauduin maturiteettimallien arvosteluun. Siellä oli linkki No Best Practices -tekstiin. Olen tässä kesän mittaan miettinyt miten testausorganisaatiotamme pitäisi uudistaa, jotta se saadaan tehokkaaksi koko yrityksen läpi. Pähkäilyn tuloksena oli mm. testausprosessin uudistaminen, roolien selkeyttäminen, testaustaidon parantaminen sekä näkyvyyden kasvattaminen. Näiden mahdollistamiseksi tarvataan kutienkin ryhmä, joka hallitsee testauksen nyanssit ja eri organisaatiotahojen tarpeet testaukselle.

Näin syntyi idea testausarkkitehdista ja testaus steering groupista. Meillä organisaatiossa on olemassa steering grouppeja jos jonkinmoisia ja niiden pääasiallinen sisältö on suurinpiirtein
jakaa "best practicet" eli parhaat käytännöt koskien koodia, työkaluja, ympäristöjä ja palveluita.
Hip-kivaa! Parhaita käytäntöjä! Ja kun kaikki noudattavat parhaita käytäntöjä ei mikään voi mennä vikaan! Eihän! Eihän?

Itse pyrin kohti jatkuvaa kehitystä testauksen suhteen. Lisäksi on hienoinen kontekstitestausintoilija ja sitä kautta mielelläni kuuntelen JMB:n oppeja. Jokainen toimintamalli ja käytäntö on siis aina kiinnitetty kontekstiin ja aikaan. Kun molemmat muuttuvat, voidaanko sanoa että jokin ratkaisumalli on paras? Onko olemassa toista mallia joka on parempi kuin "paras käytäntö"? Voiko silloin sanoa, että on olemassa paras käytäntö?

Onko niin, että ihmiset laiskuudessaan ja aikataulupaineessa nojaavat näihin käytänteisiin? Joku saattaa käyttää tiettyä mallia jatkuvasti omassa työssään ja jättää huomiotta tehokkaammat, järkevämmät mallit. Joku kaavoihinkangistunut nojaa vain ".Net Best Practises" -ohjenuoraan ja tekee samanlaista koodia koko elämänsä. Sitten on niitä, jotka tekevät huikeaa innovaatiota, rikkovat rajoja ja haastavat auktoriteetteja! Nämä "betterpraktisistit" ovat mielestäni se voima joka vie eri aloja eteenpäin: he eivät jää vatvomaan "parhaita käytäntöjä" vaan he puskevat eteenpäin ja vievät oman työnsä uudelle tasolle! Muut matkivat ja tekevät hänen malleistaan "parhaita", jolloin innovaattori jatkaa työtään ja etenee taas korkeammalle.

Kumpi sinä olet: Best Practice -mies (/-nainen) vai Better Practice -tyyppi?

Wednesday, 25 August 2010

Saarnamies Marjamäki

Lueskelin omia blogimerkintöjäni tässä heräsin miettimään omaa kirjoittamistani. Kirjoituksissani on selvästi ajatusta ja oivalluksia - osa niistä muiden oivalluksista johdettuja, mutta silti. Kuitenkin osa tekstistäni on huttua - siitä puuttuu punainen lanka. Olen aloitteleva blogaaja, joten se ei varmasti ole mikään suuri epäkohta tässä, mutta lukiessani enemmän ja enemmän muiden testausblogeja huomaan toisten kirjoittavan pitkiä ja selkeitä kokonaisuuksi, siinä missä omani ovat lyhyitä ja katkonaisia.

Olen löytänyt siis kehittymisen mahdollisuuden omista virheistäni, joita en edes tiennyt niiden tekohetkellä tekeväni. Joku voi olla eri mieltä siitä, onko kirjoitustyylini sinänsä virheellinen, mutta ehkä "puutteellinen" on se sana, joka kuvaa sitä parhaiten. Ehkä tämän kirjoituksen syntymiseen johti James Bachin teksti kyseenalaistamisesta (johon olen aiemmin viitannutkin). Olen siis löytänyt kyseenalaisen toimintamallin ja se kaipaa parantamista.

Miten siis parannan asiaa, joka ei oikeastaan ole virheellinen - tai ainakaan haitallinen? Miten motivoitua asian korjaamiseen, minkä korjaus ei sinänsä ole tarpeellinen.

-

Kun testaaja tutkii sovellusta (eli siis tutkiva testaaja), hän löytää siitä vikoja. Hän löytää myös poikkeamia. Vika tässä blogin tapauksessa olisi ehkä aiheen vierestä kirjoittaminen ja/tai kirjoitusvirheet. Mahdollisesti asiavirheet.

Kirjoitusvirheet tässä tapauksessa ovat pienimmän vakavuuden virheitä, joiden korjaus ainoastaan parantaa kosmeettista ulkoasua. Ne vaikeuttavat blogin "käytettävyyttä", kun käyttäjä (l. lukija) joutuu jatkuvasti miettimään onko jokin kirotusvirhe vai tarkoituksella väärin (tai jopa eri sana). Korjaus on helppoa tässä tapauksessa, joten matalasta vakavuudesta huolimatta korjaus on syytä tehdä jos vian huomaa.

Asiavirhe on korkeamman vakavuuden virhe. Se saattaa johtaa lukijaa harhaan, joka ei ole tämän blogin tarkoitus. Lisäksi se vähentää kirjoittajan nauttimaa luottamusta, joten hänen totena julkaisemiaan tekstejä ei pidetä totena vaan virheellisenä. Asiayhteyksien tarkistus on siis erittäin tärkeää! Korkea vakavuus! Korjaus näissä tapauksissa on siis uusi versio tekstistä tai tekstin hyllytys. Jos sovelluksesta löytyy sellainen vika, joka estää sovelluksen käytön siihen tarkoituseen mihin se on suunniteltu, se poistetaan käytöstä ja siihen tehdään tarvittavat korjaukset, jotta se toimisi halutulla (oletetulla) tavalla.

Poikkeama on tässä tapauksessa poikkeama todellisesta tai oletetusta totuudesta. Jos jokin asia ei vastaa lukijan ennakko-odotuksia, hän pitää sitä poikkeamana. Poikkeama ei sinänsä ole virhe, se on tavalla toteutettu eri tavalla kuin käyttäjä olettaa. Jos joku julkaisee tekstiä, joka on valtavirrasta poikkeavaa hänen täytyy pystyä perustelemaan valintansa käyttäjää tyydyttävällä tavalla (jolloin siitä tulee ominaisuus tekstille) tai poikkeama muuttuu virheelliseksi (eli viaksi tekstissä). Sama pätee sovelluksiin, joissa jokin ominaisuus tehdään määrittelyiden (ennakkoasenteiden, -oletusten, -odotusten) vastaisesti.

Tästä johdettuna: Onko aiemmat blogimerkintäni siis viallisia? Tekeekö (turhaan viljelty) saarnaamista muistuttava blogaaminen tekstistä viallista, virheellistä vai poikkeavaa? Ennakkoasenne omalla kohdallani on se, että se on sekä viallista että poikkeavaa. Katsotaan pitääkö se paikkansa...

Tarkoitukseni alunperin tekstissä "Kuinka haastattelen uutta testaajaa?" oli laittaa ajatuksia ylös ja luoda suuntaviivoja itselleni ja muille asiasta kiinnostuneille, jotka painivat saman asian kanssa. Teksti on puutteellinen moneltakin osaa, johtuen näkökulman puutteesta. Viittaukset olemassaoleviin teksteihin ja niiden vertaaminen omaan todellisuuteeni olisivat lisänneet tekstin syvyyttä. Esimerkiksi Software Testing Clubin hassu kirja "The Ridiculously Simple Guide Building A Test Team" olisi ollut hyvä vertailumateriaali... Hävettää tunnustaa, että tein varmasti suurimman osan kirjassa mainituista "hyviksi todetuista" asioista ja kysyin aivan vääriä asioita. (Tästä viisastuneena saatan kirjoittaa ko. blogimerkinnän uudelleen ennen seuraavan testaajan haastattelua.)

"Suorituskykytestaus integraatioprojektissa" tarkoitus oli luoda selkeä runko suorituskykytestaukselle alueella, jossa en ennen ole ollut. Blogaus tutkikin tätä asiaa teknisestä näkökulmasta ja voi jopa toimia referenssimateriaalina asiasta kiinnostuneille. Tästä johtuen blogaus oli mielestäni varsin onnistunut yksilö. Se pohjautui olemassaolevaan suorituskykytestausmalliin. Tämän olisi kuitenkin voinut mainita tekstissä eikä pitää koko roskaa omana ideana.

Jottä tämä blogaus ei muutu puolustelevaksi, tahdon pitää sen kriittisellä linjalla. Kuten tuossa ilmaisin, nämä olivat siis oletuksia ja toteutumia. Toteutumat olivat jokseenkin poikkeavia oletuksistani, mutta joissakin tapauksissa (kuten "Suorituskykytestaus integraatioprojektissa") poikkeamat olivat pieniä. Vaikkakaan ne eivät olleet hyvin perusteltuja, ne olivat sellaisia ettei niiden korjaamiselle ole suurta tarvetta. Sen sijaan "Testauksen Jin ja Jang!" epäonnistuu täyttämään odotukseni. Kuten tekstissä sanon "Ajatukseni alkoivat rullata kuin hullu tuolloin -", joka on oli sillä hetkellä totta, tuo päässäni kehittynyt punainen lanka ei välittynyt tekstiin. Jälkikäteen arvioiden tekstistä voisi suodattaa sen saarnaosuuden ja keskittyä olennaisiin ja faktoihin. Olisinko pystynyt esittämään omia kokemuksiani tai viitata muiden kokemuksiin aiheesta? Olisiko tästä materiaalista saatu kasattua hyvä ja ytimekäs, muiden ajatuksia "hullun lailla" kiihottava blogaus? Tekstistä puuttuu kosketus todellisuuteen, joka estää tekstin ottamisen todesta. Tämä vaatii siis uudelleenkirjoittamista sekä blogauksen vikojen että poikkeamien takia.

-

Miten siis motivoitua asian korjaamiseen, minkä korjaus ei sinänsä ole tarpeellinen. Itsensä kehittäminen! Jos on mahdollisuus kehittää itseään, niin se tulee ilman muuta tehdä. Koskaan ei tiedä, mihin omien puutteellisuuksiensa tarkastelu voi johtaa.

Sen sijaan että tämäkin blogaus muuttuu saarnaamiseksi itsensä kehittämisen puolesta, haluan painottaa sitä, että kaikki viat, virheet ja poikkeamat tulee tunnistaa ja tutkia. Niiden korjaus saattaa tapahtua itsestään tutkimalla ja etsimällä niitä. Tämä saattaa olla kuin aavikon tutkimista: tutkiminen johtaa hiekassa olevan poikkeaman (pyramidin kärjen) löytämiseen, joka tutkimisen (kaivamisen) jälkeen paljastuu maailman mahtavimmaksi hautamonumentiksi jumalaisine aarteineen.

Monday, 9 August 2010

Oppiminen on kaksisuuntainen tie

Yritykseemme on saatu taistelun jälkeen toinen testaaja (jee!) ja sain kunnian olla hänen kouluttajansa testauksen ihmeelliseen maailmaan. Hän mielestäni (yhden päivän kokemuksella) lahjakas kaveri, joka ei haasteita pelkää. Oikea asenne testaajalle!

Koulutuksen lomassa tuli puheeksi testaustermit, jotka olivat hänelle hieman epäselvät. Ja ovathan ne kaikille. Miten voit järkevästi kääntää suomeksi testaustermejä, jotka ovat epäselkeitä ja organisaatiokohtaisia (parhaimmillaan) englanniksikin. Ja vaikka sana olisikin hallussa, niin tarkoittaako se yrityksessä sitä mitä kirjassa tai kurssilla?

James Bach sanoo blogissaan, että testaus ei ole sitä, että opetellaan täyttämään valmiiksi luotuja kaavakkeita ja suunnitelmapohjia ja hoetaan valmiiksi opeteltuja testaussana litanioita. Hän kehottaa kehittämään itseään aina paremmaksi testausalalla ja viettämään aikaa niiden kanssa, jotka tuntevat samoin. Jos useammat ajattelisivat näin, niin näiden oppivien testaajien määrä ylittäisi näiden "kaavaketestaajien" määrän, ja näin "oppimishaluiset tulevat perimään maailman".

Testausmaailmaan pääsy on jokseenkin helppoa ja jokainen voi sanoa testanneensta jotakin elämänsä aikana - joko systemaattisesti tai AdHoc - mutta jokainen on testannut jotakin joskus. Se mikä erottaa testaajan tavallisesta ihmisestä, on se että testaaja pyrkii systemaattisesti etsimään virheitä ja kehittämään testauskykyään jokaisen testin yhteydessä.

Se mikä Bachin mukaan erotta hyvän testaajan testaajasta on se, että hyvä testaaja jakaa mielipiteitään ja haastaa toisia testaajia.

Kuinka siis saan parhaan mahdollisen tuloksen tästä testausharjoittelijasta ilman, että hänestä muodostuu geneerinen kaavaketestaaja? Menin jo (mielestäni) tekemään yhden virheen: annoin hänelle esimerkkidokumentin. Todellisuudessa tämä kaveri ei täyttänytkään testaussuunnitelmaa suoraan olemassaolevaan dokumenttiin vaan oikeasti käytti mielikuvotustaan ja taitojaan, jotta saisi testitapauksista ja suunnitelmasta järkevän. Jatkossa minun täytyy antaa hänelle vapaat kädet ja hän saa tarvittaessa pyytää apua, mutta kokeilla myös omia siipiään. Näin syntyy mehukkaita ideoita ja oivalluksia, joita kokenut testaaja ei välttämättä osaa löytää.

Kaikesta huolimatta, tulen kuitenkin kokeneempana testaajana haastamaan ja kyseenalaistamaan hänen tekemisiään, jotta hän oppii tekemästään ja minä opin samalla. Oppiminen on siis kaksisuuntainen tie, jossa sekä opettaja että oppilas oppivat. Kun vain nyt muistaisi pysyä tuolla tiellä, niin tämänkin yrityksen testaus alkaisi näyttää valoisammalta! =)