Ohjelmoijan uraputki

30.11.2018

Koodari Jr.

Tullessani TyövuoroVelhoon töihin vuonna 2010, olin monessa suhteessa vielä aikamoinen keltanokka. Osa ohjelmoinnissa käyttämistämme tekniikoista oli minulle paljolti vieraita, eikä työelämäkään ollut minulle käytäntöineen ja pelisääntöineen mikään rutiininomainen pelikenttä.

Olin taloon tullessani Velhon toinen ohjelmoija, ja ylipäätään yrityksen kolmas palkattu työntekijä. Näin ollen hyvät toiminta- ja työskentelytavat useammalle ohjelmoijalle olivat myös työnantajan puolelta uusi asia, ja ensimmäiset kuukaudet olivatkin puolin ja toisin monessa suhteessa uuden opettelua. TyövuoroVelholla ei ollut esimerkiksi käytössä versionhallintaa, koska – ohjelmoijien lukumäärän ollessa vain yksi – sitä ei yksinkertaisesti oltu aiemmin tarvittu.

Onneksi ohjelmointitaito on käsitteenä suhteellisen universaali asia. Tämä tarkoittaa sitä, että erilaiset ohjelmointikielet ovat vain työkaluja, joilla omaa pohjatietoa ja -taitoa sovelletaan käytäntöön. Jos ohjelmoija on opetellut ohjelmoimaan jollakin kielellä, ei hän koskaan lähde täysin nollilta uutta kieltä opetellessaan. Toki kielillä on välillä suuriakin eroja, mutta käytetyimmät ohjelmointikielet ovat enemmän samanlaisia kuin erilaisia, ja kaikkia päteviä ohjelmoijia yhdistää tietynlainen analyyttinen ajattelu ja abstraktien kokonaisuuksien hahmottamiskyky.

Voisiko yritys siis palkata ohjelmoijan, joka ei ole koskaan käyttänyt yrityksen tuotteissa käytettyä kieltä? Kyllä voisi. Vaikkapa kymmenen vuotta saman kielen parissa ohjelmoijana toiminut henkilö oppii uuden kielen nopeasti, eikä perustekemisen aloittamiseen mene pitkään. Vain ne ohjelmointikielen niksit ja kikat – se viimeinen 10 % – tulee kokemuksen ja työvuosien kautta. Tästä syystä minut uskallettiin aikoinaan palkata, vaikkei minulla ollut TyövuoroVelhossa suuressa roolissa olevasta JavaScript-kielestä juurikaan kokemusta.

Koodari Sr.

Nyt kahdeksan vuotta on kulunut, yrityksen henkilöstön määrä on noussut kuudesta 20:een, ja minun jälkeeni on palkattu jo puolen tusinaa uutta ohjelmoijaa. Vaikka joukossa on niin kokeneempaa kaartia kuin suoraan koulun penkiltä napattua tulokastakin, heitä kaikkia on yhdistänyt se, ettei kellään ollut alkutilanteessa palvelun kehittämiseen tarvittava paletti täydellisesti hanskassa. Joku ei ollut liiemmin harrastanut web-ohjelmointia, toiselle saattoivat tietokantakyselyt olla hieman hakusessa. Kaikille oli kuitenkin yhteistä myös se, että jokainen oppi kaiken tarvittavan itse ohjelmointityötä tehdessään, eli työ tosiaankin neuvoi tekijäänsä.

Neuvoja on kysytty myös minulta. Olin itse alkuaikoina kova kyselijä (ja olen jossain määrin edelleen), ja olenkin jokaiselle uudelle työntekijälle tähdentänyt samaa: Kysykää, kysykää, kysykää. Kysymällä oppii. Kun kysyn joltakulta neuvoa, se tarkoittaa aina sitä, että opin jotain. Samoin, kun minulta kysytään, kysyjä oppii. Jos vastaaja ei tiedä vastausta, useimmiten asia tutkitaan yhdessä, ja näin molemmat oppivat.

Itsessäni huomaan vuosien aikana tapahtuneen kehityksen parhaiten, kun mietin, millainen olin ohjelmoijana TyövuoroVelhoon tullessani. Muutos ei ole tapahtunut kerralla, vaan asteittain. Olen oppinut tekemään uusia asioita, pystyn tekemään jo osaamani asiat paremmin ja olen havainnut uudet toimintamallit paremmiksi kuin aiemmin käyttämäni. Tänä päivänä kirjoittamani koodi on aivan erinäköistä kuin kahdeksan vuoden takaiset tuotokseni: Se on selkeämpää, jäsennellympää ja siitä saavat myös muut paremmin selvää. Teen myös edellä mainitsemallani JavaScriptillä asioita, joiden en TyövuoroVelhoon tullessani tiennyt edes olevan mahdollisia.

Oma tyylini ohjelmoida muuttuu aina, kun löydän toimintamallin, joka on edellistä parempi. Tätä ei kuitenkaan tapahdu kovin herkästi, joten kun se tapahtuu, siihen on aina painavat perustelut. Koska kokemusperäistä tietoa kannattaa jakaa, yritän jalkauttaa hyvät toimintamallit myös muiden ohjelmoijien käyttöön. Tässä toimii työkaluna yrityksen käyttöön kirjoittamani tyyliopas, joka toimii referenssinä koodin kirjoittamiseen. Oppaaseen olen kerännyt hyviksi havaitsemani asiat sekä huomioinut kehitystiimin yhteisten keskustelujen tulokset.

Tässäkö tämä oli?

Vaikka minusta ovatkin pahimmat rosot jo tasoittuneet, kehitykselle on vielä tilaa. Ohjelmoinnin osa-alueista etenkin web-ohjelmointi kehittyy melkoisen nopeasti. Selaimista tulee nopealla tahdilla uusia versioita, ohjelmointikielet kultivoituvat ja koodikirjastot päivittyvät tai niitä tulee kokonaan uusia. Kirjastojen kanssa olemmekin huomanneet maltin olevan valttia, emmekä ryntää suuna päänä ottamaan kaikkia uusimpia tekniikoita käyttöön. Usein niiden elinkaari on vuosi–pari, jonka jälkeen tuleekin jo kokonaan uusi, parempi kirjasto, jolla asiat voi tehdä vielä helpommin. Vasta, kun joku tekniikka on sementoitunut ja levittäytynyt laajalle, tulee sen käyttöönotto ajankohtaiseksi.

Web-sovellusten tekemisessä ei todennäköisesti tule lähitulevaisuudessa näkymään kovinkaan suuria mullistuksia. Asiat voi aina tehdä hieman paremmin ja hieman nopeammin, mutta kehitysympäristönä nykyiset Internet-selaimet tulevat pysymään samankaltaisina. Suurimmat haasteet web-sovelluksia tarjoaville yrityksille tuovatkin nyt jo lähes jokaisen taskusta löytyvät älypuhelimet, joiden myötä sovellusten käyttö ei ole edes tietokoneeseen sidottua. Siinäpä on minullekin kokonaan uusi temmellyskenttä.


Antti Seppä

Ohjelmoijana Antti Seppä kuuluu TyövuoroVelhon tuotekehitystiimin kokeneempaan kaartiin. Työssään hän pyrkii aina etenemään käytettävyys edellä, sillä se on aina pois asiakastuen kuormasta. Hänen työtehtävänsä koostuvat sopivassa suhteessa vanhojen ominaisuuksien parantelusta ja uusien luomisesta.