Työmatkakoodaus - harrasteprojektien pelastus


"Jokela? Hetkinen, missäs se sijaitseekaan?" Tämä on tyypillinen kysymys, kun kerron työkavereilleni käyväni töissä hiukan kauempaa. Täytyy kestää iäisyys tulla moisesta perähikiästä Helsinkiin, ja vielä joka arkipäivä! Sepä se, mutta nyt kerronkin, miksi se on hieno asia.


Tiedämme kaikki, että pienemmällä prioriteetilla olevat projektit tuppaavat alkuinnostuksen jälkeen jäämään yhä harvenevien koodauskertojen vuoksi taka-alalle. Kun koodiin ei koske, se alkaa viiletä, ja uudelleen paneutuminen vaatiikin jo lyhkäisen mikrolämmityksen. Tämän vuoksi projekti alkaa yhä kylmetä, ja pian se siirtyykin jääkaappiin, pakastimeen, ja lopuksi ikiroutaan, josta ei lämminsydämisinkään koodari sitä enää sulata.


Ainoa oikea jäänestoaine on usein toistuva, säännöllinen naputtelu. Ja mikä olisikaan tähän prosessiin parempi implementaatio kuin joka arkipäivä kahdesti toistuva työmatkakoodaus!


Palataanpa reilu vuosi taaksepäin. Asuin tuolloin Helsingissä ja kävin töissä Helsingissä. Työmatka oli ajallisesti vain hiukan lyhempi kuin nykyään, mutta muuten toivoton: vaihtoja junasta metroon ja metrosta bussiin. Podcastit olivat ainoa pelastus, mutta ei Sarasvuon monologejakaan jaksa liian montaa kuunnella. Mikä tilanne on nyt susirajan takana asuessani? Kahden minuutin pyöräily asemalle, 37 minuuttia tiukkaa koodia tasaisessa junakyydissä, ja pari minuuttia kävelyä työpaikalle.


Matka menee kuin siivillä: hetkisen naputtelun jälkeen joudun jo harmittelemaan kun juna tulee perille ja kiinnostava koodinpyöritys jää kesken. Mutta ei huolta, seuraava työmatka koittaa pian! Jos juna myöhästelee, kuulen ympäriltäni tuskastuneita huokailuja, mutta itse myhäilen tyytyväisenä, saanhan ehkä featuren valmiiksi sittenkin jo tällä matkalla! Kun saavun varsinaiselle työpaikalleni, aivoni on jo lämmitelty ohjelmointivaihteelle, ja Gitin kolkuttelu voikin alkaa saman tien.


Voisi kuvitella, että junamatkasta tuhraantuu arvokkaita minuutteja kaikenlaiseen virittelyyn matkan alkaessa ja päättyessä. Mitä vielä! Kun tulen junaan, valitsen sen tutun optimaalisen ikkunapaikan, avaan koneen kannen, painan kännykästä hotspotin päälle ikkunalaudalle, ja IDE:ä ei edes tarvitse laittaa tulille - koodi odottaa heti kutsuvana nenäni edessä samassa kohtaa johon viimeksi jäin. Kun juna nytkähtää liikkeelle, on koodiviidakossa jo täysi kuhina päällä. Tasan 37 minuuttia myöhemmin kuuluu naps, kun sorvin kansi kolahtaa kiinni ja kävelen miltei odottamatta junan ovista ulos kohti rämää polkupyörääni.


Kun junassa välillä nostan katseeni kinkkisen bugin alhosta ja vilkaisen ulkomaailmaan, huomaan että kanssamatkustajanikaan tyhjän panttina ole. Lähes kaikilla on kätösissään kiiltävät älypuhelimet, joista luetaan, kuinka fasetuttu on päättänyt tiukan habatreenin ja on nyt suihkunraikkaana, tai kuinka "BB-Kimmon kääpiösnautserin ulkoilutus päättyi yllättävästi - lue lisää". No, toki näilläkin on paikkansa, ja muitakin vaihtoehtoja on. Enkä sano, että kytyiset harrastetunkkaukset olisivat arvokkaampia kuin edellä mainitut, mutta ylipäänsä jokin tavoitteellinen tekeminen saattaa olla kymmentä sekuntia pidemmällä tähtäimellä palkitsevampaa.


Jos työmatkani olisi vaikka vain viisi minuuttia, enkö voisi naputella samat koodit kotona? No, katsopa peiliin ja kysy käsi sydämellä, tulisiko tehtyä joka päivä. Vastaus: Ei. Vaihtoehtoisia askareita tulisi kummasti mieleen pitkä lista. Taitaisi olla aika epätoivoista myös yrittää kertoa puolisolle kotona, että "Koodasin juuri kahdeksan tuntia töissä, ja jatkan vielä tässä kotona puoli tuntia, hoidatko lasta".


Mielestäni eräs työmatkakoodauksen merkittävimmistä hyödyistä on se, kuinka alitajunnan saa valjastettua ongelmanratkaisuun. Kun kohtaat menomatkalla hankalan pähkinän, voit hetken miettimisen jälkeen siirtyä eri tehtävään, ja jättää ongelman ratkomisen alitajunnalle. Voi hyvinkin olla, että paluumatkalla ratkaisu on kirkkaana mielessä, tai viimeistään aamulla, aivojen raksutettua unessa töitä. Tällaisia etuja ei saisi, jos tekemisen ajoittaisi yhdeksi viikottaiseksi köntäksi. Kun lyhyet pätkät toistuvat usein, projektin tilanne ja koodi pysyy hyvin muistissa. Siihen on helppo palata.


Aivan kuin jokikin koostuu pienistä puroista, softakin koostuu koodinpätkistä. Kun päivät, viikot, kuukaudet kuluvat, huomaat yhtäkkiä katselevasi junakoodista kehrättyä, eksoottista softailmentymää. Commit-historia on pitkä kuin Tokmannin ämpärijono ja todistaa pitkäjänteisestä työstä, joka on kertynyt kuin huomaamatta.


Tänä syksynä olen paria poikkeusta lukuunottamatta koodannut joka ikisen työmatkan. Ainakin tähänastiseen työmatkakoodaukseeni olen kovin tyytyväinen; olen saanut edistettyä monia projekteja, pienoisena esimerkkinä eräs Wunderdogin koodauspähkinöistä. Jos koodausideat loppuvat, voin ottaa työn alle jotakin muuta pitkäjänteistä, vaikkapa Dostojevskin tuotannon. Vältynpähän ainakin päämäärättömältä kännykän näperrykseltä, jota jo muuten harrastan aivan riittävästi. Siispä: muuta sinäkin kauemmas!


P.S. Uusin Wunderpähkinä on julkaistu hiljattain! Olisiko sen ratkominen ensimmäinen #työmatkakoodaus sinulle?