Vähintään kerran kvartaalissa käynnistyy jossain kanavassa keskustelu teknisistä haastatteluista. Osa keskustelijoista on jopa sitä mieltä, ettei teknistä haastattelua — siis osoitusta siitä että työnhakija osaa ohjelmoida — tarvita lainkaan. Voitko kuvitella sinfoniaorkesterin, joka palkkaisi huilistin ilman koesoittoa? Miksi sitten jotkut yritykset eivät järjestä teknistä testiä ohjelmistokehittäjille?
Toki teknisen haastattelunkin voi tehdä hyvin tai huonosti. Tosin enpä ole koskaan kuullut että kukaan Suomessa olisi joutunut liitutaululle toteuttamaan punamustan puun tasapainotusta.
Rekrytoinnin tärkein tehtävä on riskien poistaminen
Rekrytoinnin tavoite on toki uuden, sopivan työntekijän löytäminen. Työhakemusten, haastattelujen, kotitehtävien jne. tarkoitus on kuitenkin poistaa mahdollisimman paljon rekrytointiin liittyviä riskejä. Vaikka yritys on prosessinsa pääosin miettinyt omasta vinkkelistään, hyötyy myös työntekijä syvällisestä rekrytointikokemuksesta. Mitä useamman henkilön kandidaatti tapaa, mitä paremmin hän pääsee yritykseen tutustumaan ja ymmärtää hakemansa paikan odotustason, sitä vähemmän tuntemattomia seikkoja — siis riskejä — työpaikan vaihtoon liittyy.
Teknisen haastattelun pitää olla erittäin merkittävä osa rekrytointiprosessia. Itse jopa selvittäisin mahdollisimman aikaisessa vaiheessa, ovatko kaikki yrityksen työntekijät käyneet teknisessä haastattelussa — ja jättäisin hakematta jos näin ei ole.
On paljon tärkeämpää saada karsittua mahdollisimman moni heikko hakija kuin saada palkattua jokainen hyvä. Ylipäänsä ei haittaa, jos osa pätevistä hakijoista jostain syystä ei läpäise rekryseulaa. Vaikka tällöin yrityksen prosesseissa onkin viilattavaa, ei palkkaamatta jättämisestä suoranaisesti aiheudu mitään riskiä — jos yritys kuitenkin löytää sopivia tekijöitä. Suuri ongelma on jos epäsopiva henkilö tulee palkattua.
Alla yleisimpiä argumentteja, joita olen kuullut vastustamaan teknisten haastatteluiden järjestämistä:
Jos on 15 vuotta ohjelmistokehittäjän työkokemusta niin totta kai on hyvä siinä mitä tekee
Tämä on erittäin yleinen ja ymmärrettävä harhaluulo. Vaikka harva sitä uskaltaa ääneen sanoa, on maailma täynnä ohjelmistokehittäjänä työskenteleviä jotka eivät juuri osaa ohjelmoida.
Miten tämä on mahdollista? Surkea huilistihan heilahtaisi välittömästi kortistoon.
Huilistin ja koodaajan välillä on se merkittävä ero, että vaikka huilisti on osa suurta tiimiä (sinfoniaorkesteria), on hän kuitenkin sooloartisti. Soittotaidottomuus paljastuisi välittömästi yleisölle. Koodaaja taas on lähes aina osa pienempää tiimiä, mutta yksittäisen koodaajan “riitasoinnut” eivät välttämättä isommassa organisaatiossa kantaudu edes oman tiimin ulkopuolelle.
Lisäksi pitää muistaa, että meidän kaikkien arvostelukykyä vääristävät erilaiset vinoumat. Ekstrovertti seurahenkilö joka puhuu sujavasti monadeista ja jolla CV:ssä 20 vuotta kelluntaa hienoissa rooleissa saa helposti luotua itsestään osaavan vaikutelman, vaikka todellisuus olisikin muuta.
Älä luota edes siihen, että työntekijä on todistettavasti toteuttanut yksin laajankin järjestelmän. Olen nähnyt aivan uskomattomia valtavia spagettikoodivirityksiä ja ihmetellyt, miten ne ylipäänsä on saatu toimimaan.
Miksi ei hyödynnetä koeaikaa?
Tehdään työsopimus, odotetaan uuden työntekijän irtisanomisaika, annetaan hänelle työvälineet, työpiste ja firman lippalakki — sitten ensimmäisenä päivänä huomataan että kyseessähän on täysin toivoton tapaus ja puretaan heti työsopimus?
Yritykselle koituvien kulujen ja vaivan lisäksi tällainen menettely tuo Suomeen yhden työttömän lisää — pahimmassa tapauksessa työttömän jonka ammatillinen itsetunto on murskattu. Lisäksi sana kiirii nopeasti ja pian yrityksellä ei ole lainkaan työnhakijoita.
Koeaikapurku kertoo aina rekrytointiprosessin epäonnistumisesta. Kun purkua ylipäänsä joudutaan käyttämään (tai jos työntekijä itse tekee purun), pitää aina tehdä välittömästi itsereflektio — miksi tällainen katastrofi pääsi syntymään ja miten se tulevaisuudessa vältetään?
Työnhakija on pulassa kun joutuu tekemään vieraalla koneella / kielellä / käyttöjärjestelmällä / näppäimistöllä / kahvilla
Pyydä työnhakijaa ottamaan mukaan oma läppäri.
Teknisestä testistä ei tule mitään kun hakija jännittää niin paljon
Myös kokematonta haastattelijaa varmasti jännittää. Jännittäminen on inhimillistä, ja haastattelijan on helppo sitä vähentää olemalla ystävällinen ja luomalla paineeton ympäristö. Paineensietokykyähän ei useimmiten ole tarkoitus mitata.
Toisaalta, jos vaikkapa 10 % hakijoista menee totaalisesti jäähän haastattelussa vaikka mitä tekisi, ei mahda mitään. Aiemmin mainitsin että rekrytointiprosessin tehtävä on poistaa riskejä, ja tällöin haastattelutilanne toi esiin yhden mahdollisesti myöhemminkin esiin tulevan riskitekijän.
Eikö kannata vain teettää kotitehtävä ja keskustella siitä?
Haastattelijan tehtävä on hankkia mahdollisimman paljon tietoa työnhakijasta. Harva asia antaa enemmän tietoa kuin yhteinen ohjelmointihetki. Ei orkesterikaan tee valintaa pelkästään kotona tehdyn nauhoituksen pohjalta. Kun seuraat monitorin tai etäyhteyden yli “suoraa lähetystä” koodin käpistelystä saat usein jo ensimmäisen minuutin aikana hyvän käsityksen kandidaatin ohjelmointitaidoista.
GitHubissa on vaikuttava koodinäyte
Kannattaa olla terveen kyyninen — joskus on paljastunut että repon sisältö on kopioitu muualta tai koodaus on esimerkiksi tehty jollakin kurssilla ja työnhakijan osuus ollut minimaalinen. Valmis palvelu on kuitenkin mainio keskustelunaihe osaksi haastattelua; kannattaa kysyä esimerkiksi miten koodia voisi parantaa.
Mitä jos joku ei hae koska ei halua osallistua koodaustestiin?
Aiemmin perustelin että testi on myös työnhakijan etu. Ei kannata pahoittaa mieltään sellaisen työnhakijan menettämisestä joka ei uuden työpaikan vuoksi vaivaudu parin tunnin jutteluun.
Ylipäänsä harvat asiantuntijat haluavat päästä elämässään mahdollisimman helpolla. Muutenhan kukaan ei menisi opiskelemaan yliopistoon. Haastava tekninen koe toimii myös positiivisena markkinointina — huippuosaajat tietävät että pääsevät ympäristöön jossa kollegatkin ovat osaavia.
Työntekijä/kaveri/isä/asiakas/kissa suositteli kaveriaan
Ei minkäänlaista nepotismia! Kaikille sama prosessi.
Vältä kikkailua
Miten tekninen haastattelu sitten kannattaa järjestää? Jokaisen yrityksen tulee hakea itselleen parhaiten sopivaa tapaa, mutta hyvä lähtökohta on käyttää kahta tehtävää: alkuun lämmittely ja sen perään hieman haastavampi. Unohda kikkailut, ihmeelliset algoritmit, typerät knoppikysymykset, valkotaulukoodaus. Saat päätöksenteon tueksi parhaiten tietoa suoraviivaisella ja käytännönläheisellä tehtävällä.
Anna työnhakijan ratkaista tehtävä niin kuin hän normaalistikin tekisi — hakukoneen, Stackoverflown jne. hyödyntäminen luonnollisesti on sallittua ja suotavaakin. Vaikka itse muistaisit jokaisen JavaScript-metodin tarkan syntaksin ja paluuarvot tai Vue-komponentin boilerplate-koodin, älä edellytä sitä muilta.
Kannusta kandidaattia keskustelemaan ratkaisua työstäessään, mutta salli myös hiljainen, keskittyvä työskentelytapa.
KossuVissy-testi
FizzBuzz on suosittu lämmittelytesti teknisessä haastattelussa. Suomeksi sitä voisi kutsua vaikkapa nimellä KossuVissy:
- Kirjoita ohjelma, joka tulostaa luvut 1–100. Tulosta kolmella jaollisten kohdalla luvun sijasta sana “Kossu” ja viidellä jaollisten “Vissy”. Jos luku on jaollinen kolmella ja viidellä, tulosta KossuVissy.
Tämä siis vastaa samaa kuin pyytää huilistia soittamaan Ukko Nooan. Ja arvaa mitä? Uskomattoman monet itseään kokeneiksi ohjelmoijiksi kutsuvat kompastelevat tämän supertriviaalin tehtävän kanssa. Jos et usko minua, usko Jeff Atwoodia.
FizzBuzz alkaa olla aika tunnettu ja kulunut testi, joten kannattaa lämmittelyyn käyttää jotain vastaavaa, helppoa tehtävää. Tulet yllättymään miten monet siihenkin kompastuvat, eikä kyse ole jännittämisestä. Viimeistään nämä tapaukset saavat sinut vakuuttumaan teknisen haastattelun hyödyllisyydestä.
Haluatko saada lisää ideoita rekrytointiisi?
Eniten omaan ajatteluuni asiantuntijoiden rekrytoinnista on vaikuttanut Joel Spolskyn loistava kirjoitus. Joel on myös kirjoittanut aiheesta laajemman, mainion kirjan. Suosittelen lämpimästi tutustumaan!