lauantai 10. lokakuuta 2015

Koodikoulussa Eficodella

Vietimme parituntisen Eficoden koodikoulussa tyttäreni kanssa. Nämä sessiot ovat tosi suosittuja, kaikki koodikoulut ovat aina loppuun buukattuja hyvin pian ilmoittautumisen aukeamisen jälkeen ja meillä kävi tuuri että olin eilen peruutuspaikkailmoituksen saapuessa heti postieni äärellä. 

Vaikka tyttöni ei sitä koodikoulussa ääneen sanonutkaan, tämä oli meille jo kuudes sessio. Niinpä sessioita alkaa vähitellen katsomaan vertailumielessä. Ja minä vedän sessioita itsekin #LearnWithLlew -tyyliin. 

Eficoden koodikoulu

Koodikouluun jokainen saapuu mukanaan oma kone ja oma aikuinen. Vastaanottajia talon puolestakin oli reilusti, jokaisella askeleella ohjaten että löysimme oikeaan paikkaan. Varsinaista kurssia piti (mies)koodarikaksikko, joka jo sai minut toivomaan että olisivat mallintaneet tässä kohden tasaisempaa sukupuolijakaumaa. 

Koodiopet kertoivat alkuun vähän yksinkertaisesti ohjelmoinnista (annetaan käskyjä tietokoneelle) ja avasivat yhden pöytäkoneen sisuskalut lasten tarkasteluun. Ja sitten lähdettiin omien aikuisten avulla valinnaisesti johonkin kolmesta vaihtoehdosta: Turtle Roy, LightBot tai Code.org:n Angry Birds -sokkelo.

Tyttöni jaksoi tehdä kuusi ensimmäistä Angry Birds -sokkeloa, kun kyseinen peli oli jo "tylsä". Koitimme LightBotia, joka ei sitten toiminut koneellamme. Näinpä päädyimme Turtle Roy:n pariin, joka lopulta miellytti kaikkein eniten.
 
Turtle Royssa parasta oli että sai kirjoittaa. Vaikka käskyt ovatkin englannista lyhennettyjä, pienen lunttilapun kanssa ne tarttuivat nopeasti ja oli kivaa kun tuloksena tyhjä kangas täyttyi omilla kuvioilla. Tehtiin ohjeista suoraan toistolla ja sekvensseillä neliö, muunneltiin neliöstä kolmio ja ympyrä. Ja rakennettiin sitten se tehtävänannon mukainen talon kuva komento kerrallaan. Aliohjelmien kanssa ehdittiin vasta aloitella, kun jo aika loppuikin. 

Eficode antoi lopuksi pikkukoodareille diplomit suorituksesta, joka oli ilmeisen tärkeä juttu. 

Vertailua sessioiden välillä

Olemme olleet nyt tosiaan erilaisissa sessioissa niin että tämä oli meille kuudes sessio ohjelmoinnin esittelystä ja ensikokemuksista. 

Kolme sessioista on ollut minun vetämiäni tyttöni esikouluryhmälle. 

Ensimmäisessä setissä teimme code.org:n koodituntia pariohjelmointina. Vaihdoimme neljän minuutin kellolla kumpi oli "ajattelija" ja kumpi "kirjoittaja", ja koneella ajattelu oli tosiaan Strong-style Pairing -periaatteen mukaisesti kiellettyä. Dynamiikka toimi ihan mahtavasti ja 6-vuotiaista oli toisilleen paljon apua, 14 lasta meni hyvin kahden koodiopen voimin ja tuloksena syntyi upeita Frozen Elsa & Anna -lumihiutaleita. 

Toisessa setissä teimme unplugged (tietokoneeton tekeminen) kuppirobotin ohjelmointia, ja hyvin opittiin laskemaan että montako siirtoa mihinkin kuvioon saatiin ja paperille syntyi upeita ohjelmia. Testasimme ohjelmia ryhmästä toiseen, ja aina välillä testatessa selvisi että robotti ei teekään ihan mitä ajatteli, jos askel tai vaikka alkutilanne ei olekaan sitä mitä koodatessa kuvitteli. Sain opetettua hiukan ajatuksia testauksesta ja oletuksista. Tätäkin tehtiin pariohjelmointina.

Kolmannessa setissä teimme oman äänisatukirjan. Suurin osa ajasta kului kuvia piirtäessä, jotka sitten skannattiin ja joiden päälle rakennettiin kerrontaa ja leikattiin yhteen omat äänet. Ohjelmointia sessiossa ei suoranaisesti tehty kun tarina ei ollut haarautuvat.

Kaksi muuta sessiota, joissa olemme olleet ovat olleet Linda Liukkaan järjestämiä. Pääsimme osallistumaan Hello Ruby -materiaalien leikkitestaukseen osallistuen Rubyn synttärijuhliin (ja tästä edelleen muistetaan mitä eroa on RAMilla ja ROMilla, ja kuinka ohjelmointi on sitä että minä päätän mitä tehdään). Ja aikaisemmin osallistuimme Hello Ruby -sessioon, jossa tarkasteltiin että  missä kaikkialla tietokoneita on, mitä tietokone on syönyt Raspberry Pi:n avulla sekä rakennettiin oma tietokone askartelemalla.

Kysäisin tytöltäni että mikäs sessio on ollut paras. Kuulemma se jossa ei tehty vain harjoitusta, vaan luotiin jotain oikeasti omaa. Ja code.org:n juttuja oli vaan kivempi tehdä kun niitä sai tehdä kaverin kanssa. Äiti ei ole yhtä hyvä, vaikka sillä olisi kuinka monta vastausta valmiina.

Session jäljiltä olen yhä enemmän sitä mieltä että tytöille ohjelmoinnin opettamisessa pariohjelmointi on erityisen tärkeää. Tyttöjä oli tässäkin sessiossa vain muutama, joten taidanpa itse vetää muutaman koodikoulun, jossa kiintiöitetään tyttöjä. Ja tytöillekin opetus pitää tehdä parina: mies-nais -parina. Koska koodaus tulevaisuudessa on tasa-arvoisin tehtävistä asioista, ja kiero jakauma nykyisin alalla on historiaa siihen mennessä kun ekaluokkalaiseni pääsee työtehtäviään valitsemaan. Eikös niin?


perjantai 9. lokakuuta 2015

Voisiko työ muokkautua ihmisen mukaan?

Kirjoitin tänään työpäivän kesken paperilapulle twitterin inspiroimana seuraavan lauseen, jonka joku sanoi.
Luo työpaikkoja, jotka sopivat ihmisille; älä etsi ihmisiä, jotka sopivat työpaikkaan. 
Monesti kun etsimme sitä uutta duunikaveria, mielessämme on joukko kriteereitä, joita kaverin tulee täyttää. Ehkä moni ominaisuus on tiivistelmä omista ajattelemistamme hyvistä ominaisuuksistamme. Ehkä etsimme sitä mille oman onnistumisemme kohdistamme.  Ehkä kyseessä on ominaisuus, joka meiltä kaikilta puuttuu. Ja oli kyseessä mikä tahansa ominaisuus, olemme aina jotenkin kovin varmoja että tunnistamme sen ominaisuuden kun sen näemme ihmisessä haastattelutilanteessa. Tai ainakin tiedämme mitä olemme etsimässä.

Testauskentällä hakemuksista voi tosiaan päätellä ettei kukaan etsi minua. Ja silti tiedän hyvinkin tarkkaan että moni tarvitsisi minua, ei vain osaa hakea oikeilla sanoilla. Joillain organisaatioilla on kaltaisiani testaajia, ja ehdotus on että opettelepa pythonia, tai korvaamme sinut jollakulla toisella. Siinäpä mainio esimerkki siitä kuinka ensisijaisesti ihmisen pitää mahtua työpaikkaan eikä haluta / osata rakentaa työpaikkaa, joka sopisi ko. ihmiselle. Sillä mitä elämältään haluaa on väliä. Jos asioita tekee kun käskettiin, sydän ei ole mukana. Ja jos sydän ei ole mukana, kannattaa etsiä jotain missä se on mukana eikä kiduttaa itseään. Maailma kun on mahdollisuuksia täynnä.

Yritän aktiivisesti uskoa siihen, että ohjelmistokehityksen maailmassa ihmiset, joiden kanssa olemme töitä päätyneet tekemään ovat älykkäitä ihmisiä. Ihmisiä, joilla on kyky kasvaa monenlaisiin suuntiin. Suuntaa rajaavat enemmän intressit (mihin haluamme aikaamme käyttää kun se on niin rajallista) kuin taidot. Tahdolla oppii mitä vain, eikä tässä enimmäkseen kuitenkaan ihan rakettitieteen kanssa olla tekemisissä. Ja rakettitiedettäkin tekee ihmiset.

Kannattaisi ehkä katsella vähän että millaisia erilaisia ihmisiä ohjelmistokehitysmaailmassa on tarjolla ennen kuin päättää että tarvitsee taas yhden "superautomatisoijan". Ohjelmoijan profiilin tiimeihin jättämä aukko kun useimmiten ei ole automaation muotoinen, vaan näyttää enemmän kaikelta siltä mitä automaatio-ajattelun väliin jää.

Opin vuosi sitten termin "job crafting". Ideana on että kun meille annetaan työpaikka ja rajattu rooli, muokkaamme työn rajoja erilaisin tavoin itsemme näköisiksi. Mietin vaan että mitä voisikaan saavuttaa jos kevyen venyttämisen sijaan voisimme oikeasti etsiä miten panostaa parhaiten intressiemme puitteissa?




tiistai 29. syyskuuta 2015

Tiedäthän mitä olet rekrytoimassa?

Minulla on maailman mahtavin työ testaajana. Saan toimia organisaatiossa, joka ymmärtää antaa ihmisilleen vapausasteita toiminnan kehittämiseen kaikella sillä luovuudella, mitä innostuneeseen ihmiseen mahtuu. Innostukseni ei ole laantumassa, 20 vuoden kokemuksella oppimisen ja aikaansaamisen liekki vain kasvaa. Ohjelmistojen laatuun ja testaukseen liittyvät tehtävät ovat tärkeitä, monipuolisia ja töissä saa tehdä asioita yhdessä toisenlaisten ihmisten kanssa yhteiseen hiileen puhaltaen.

Yksi asia minua tässä modernissa maailmassa vain surettaa. Ja se tiivistyy lähes kaikissa tämän päivän työnhakuilmoituksissa, joissa "päätyösi on testauksen automatisointi".

(Ilmoitustrendiin hyvä poikkeus Provelta, mutta he erikoistuvatkin oikeasti auttamaan organisaatioiden laatu- ja testausasioita onnistumaan ja tietävät mitä tekevät.)

Miksi tämä on ongelma tiivistyy hyvin Lanette Creamerin tuoreessa kirjoituksessa siitä miksei enemmän ihmisiä hae juuri sinun avaamaasi positioon. Rajasit juuri, tarkoituksella tai ilman, minun kaltaiseni asiantuntijan ulos.


Minun kaltaiseni testausasiantuntija tekee töitä kädet savessa löytäen tekemätöntä työtä, jota jotkut virheiksikin kutsuvat. Tekemätöntä työtä löytyy jo silloin kun ominaisuus on vasta pilke silmäkulmassa, ja kun sen tekee ajoissa toimii ohjelmistokehityksestä toimittaminen huomattavasti jouhevammin. Tekemätöntä työtä löytyy kun yhdessä rakennetaan porukalla, kun joku osaa katsoa asiaa käyttökokemuksen, arvon ja monipuolisten näkökulmien kautta niin että virheet eivät pääse koodiin saakka. Tekemätöntä työtä löytyy myös kun kriittisesti katsotaan että mitä tuli tehtyä, miten se toimii ja istuu jatkuvan oppimisen kautta muuttuvaan ymmärrykseen maailmasta teknologia huomioiden.

Minun kaltaisellani testausasiantuntijalla on vahva testauspohja, jonka päälle joskus rakentaa automaatiota. Mutta yleensä kaltaiseni asiantuntija tasapainottelee ajankäytön kanssa mahdollistaessaan loppukäyttäjälle ja muille sidosryhmille paremman laatukokemuksen eikä kiinnitä huomiotaan ensisijaisesti automaatioon.

Minun kaltaisellani testausasiantuntijalla on vielä erityispiirre tuon testiautomaation tekemisen suhteen. Ohjelmointitaitoisena yksilönä voisin valita mieluummin olevani yksi kehittäjistä ja jakaa sen automaatiovastuun niiden muiden kehittäjien kanssa. Voisin ottaa kehittäjän palkan ja arvostuksen ilman yleensä kokemaani taistelua ymmärryksestä, erityisosaamisen ja palkkahierarkiasijainnin osalta.

Minä olen tehnyt valinnan olla testaaja/testauspäällikkö/testausasiantuntija. Ja kun testaan aivojeni avulla, sosiaaliset taitoni auttavat minua hyödyntämään mahtavia kehittäjäkolleegoita aina kun olen nk. "pakettiauton lainaamisen tarpeessa" testausta automatisoimassa. Silloin kun olen kehittäjä, valmistelen mieluummin taustalla sitä maailmaa muuttavaa sovellusta, joka tekee minusta startup-yrittäjän, jos testauksen vetovoima omalta kohdaltani koskaan himmenisi. Kaikkeen kun ei kerralla yksi ihminen ehdi.

Kun hait kaveria, jonka ensisijainen toimenkuva on testauksen automatisointi, toivottavasti tiesit että et etsi kaltaistani testausasiantuntijaa. Etsit jotakuta, joka on lähtenyt kehittämään testauksen taitojansa toiseen, tärkeään suuntaan. Etsit jotakuta, joka tuottaa erilaiset tulokset kuin minun kaltaiseni testausasiantuntija. Tai sitten etsit todella kokenutta gurua, joka haluaa ja on ehtinyt opetella molemmat puolet.

Tiedäthän mitä olet rekrytoimassa? Testaus paranee automaatio edellä vain jos automaation taustalla on vahva testauksen osaaminen. Ja monessa tiimissä aukko on siinä testauksen osaamisessa ja tiimit ovat täynnä kehittäjiä joiden erikoisosaaminen on automaatiossa. Testaus on yksi ohjelmistokehityksen sovellusalue.





Lukijat

Osallistujat