Kestävä ohjelmistokehitys

 
marko_saaresto_koodaripula-1.jpg
 
 

Ohjelmistoalan ammattilaisen maailma on täynnä legacyn muokkaamista – ja se saattaa turhauttaa. Keskeisin motiivi toimivien ohjelmistojen muuttamiselle on se, että maailman niiden ympärillä muuttuu. Raketin Marko pohtii kestävän ohjelmistokehityksen haasteita ite wikin haastattelussa – lue koko juttu alta, alkuperäinen ilmestyi täällä. 

Vaivaako Suomea koodaripula vai pula työssään viihtyvistä koodareista?

Rakettitieteen perustajiin kuuluva Marko Saaresto ei näe ohjelmistoalan palkkakehityksessä mitään kovin poikkeavaa verrattuna muihin teknologia-aloihin.

Hän lähtisi etsimään koodaripulan syitä pohtimalla sitä, miksi niin moni ohjelmistoalan ammattilainen on valmis eläköitymään alalta jo työuransa puolivälissä.

"Erityisesti monet ohjelmistoalalla pidempään työskennelleet konkarit kokevat työnsä liian rutinoituneeksi ja näköalattomaksi. Jos ihminen kokee kahdenkymmenen vuoden jälkeen, että on antanut kaikkensa alalle ja lähtee muualle, menetetään valtava määrä kokemusta."

Saaresto on työskennellyt ohjelmistoalalla reilut parikymmentä vuotta. Niiden aikana hän on huomannut, että valtaosa ohjelmistokehittäjien työstä koostuu jo olemassa olevien järjestelmien jatkokehityksestä tai ylläpidosta.

Se turhauttaa monia.

"Ohjelmistoalan ammattilaisen maailma on täynnä legacya eli jonkun muun tekemiä ohjelmistoja. Legacy on saanut jo kirosanan maineen, sillä monissa ohjelmistokehittäjissä aiheuttaa turhautumista yrittää päästä softan aiempien koodaajien päiden sisälle ja pähkäillä, miksi ohjelmisto on rakennettu tietyllä tavalla. Näitä koodeja pitäisi sitten muunnella paremmaksi niitä rikkomatta."

Joskus urallaan bugin koodanneet tietävät, että tämä on helpommin sanottu kuin tehty.

Maailma ohjelmistojen ympärillä muuttuu

Olemassa olevien ohjelmistojen muuntelusta on tullut arkipäivää, kun eri alojen liiketoimintaprosesseja on alettu automatisoida ja ohjelmistojen on pysyttävä muutoksen mukana. Toki poikkeuksiakin on.

"Suurin osa pitkään muuttumattomina pysyneistä ohjelmistoista on piilossa. Ne ikään kuin toimittavat konepellin alla mukisematta tehtävänsä. Törmäsin jokin aika sitten 16 vuotta vanhaan ohjelmistoon, joka toimi juuri riittävästi, ettei kukaan jaksanut nähdä vaivaa sen kehittämiseen."

Mutta lopulta sekin oli uusittava.

Valtaosaa ohjelmistoista ei yksinkertaisesti kannata ajaa käyttöikänsä loppuun muuttamattomana.

"Keskeisin motiivi toimivien ohjelmistojen muuttamiselle on se, että maailman niiden ympärillä muuttuu. Nykyisin kaikkialla pitää käyttää esimerkiksi salattuja http-yhteyksiä. Ennen softaa tehtiin konesaliin, jossa se ei ollut yhteydessä kuin omaan lähiverkkoon. Pilviaikana ei ole enää olemassa luotettavia nurkkia, joissa voidaan ajaa ilman suojauksia, vaan vaatimukset ovat kasvaneet."

Uudet teknologiat mahdollistavat sen, että ohjelmistojen muuntelu on kiinni vain tekijöiden halusta toteuttaa muutokset.

"Nykypäivänä on mahdollista tehdä päivityksiä, jotka olivat ennen mahdottomia. Niistä aiheutuvat kustannukset ovat usein pienet verrattuna tilanteeseen, jossa lähdetään tekemään kokonaan uutta", Saaresto sanoo.

Muutostyön vaikeusasteeseen vaikuttaa muun muassa järjestelmien muunneltavuus. Joskus toimivia muutoksia päästään tekemään heti kättelyssä, ja toisinaan aikaa uhkaa kulua tarpeettoman kauan.

Luonnollisesti myös kehittäjän kyky hypätä muiden kehittäjien koodin ja sitä kautta päiden sisään vaikuttaa kehitysnopeuteen.

"Pahimmassa kohtaamassani tapauksessa asiakas pelkäsi, että menisi neljä kuukautta ennen kuin muutoksia päästään tekemään. Hän olikin ensin pohtinut, kannattaako ulkopuolista tekijää ottaa ollenkaan mukaan. Todellisuus oli lopulta parin viikon luokkaa, joka sekin on pitkä aika", Saaresto kertoo.

Matematiikkaa ihannoiva koulutus luo turhia illuusioita

Saareston mielestä yksi syy ohjelmistoalan ammattilaisten työssä kokemaan tyytymättömyyteen löytyy alan koulutuksessa.

"Ohjelmointiopetuksessa tehdään algoritmeja ja ratkotaan matemaattisia ongelmia. Liiketoimintasoftan puolella mielenkiintoiset algoritmit on kuitenkin pääosin jo luotu. Sellaisen ohjelmointikoodi on pääosin yksinkertaista, ja monelle saattaa tulla tunne, että joutuu tekemään helpompia asioita kuin osaisi."

Matemaattisia taitoja ihannoiva koulutus luo odotuksen työtehtävistä, jollaisia monen arjessa ei juuri ole olemassa.

"Eräs ystäväni kertoi, että hänellä ohjelmointikoulutuksen kynnykseksi meinasi muodostua edellytys pitkän matematiikan opinnoista, mikä on todellisuudessa tarpeeton vaatimus ohjelmoinnissa. Toisessa ääripäässä ovat ne matemaattisesti lahjakkaat ihmiset, jotka pystyisivät vaikka mihin, mutta eivät pääse tekemään kykyjensä mukaista työtä. Se, että saa työelämässä ratkaistavaksi jännän matematiikkapulman, on vain yksi rusina pullapitkossa, jonka joku onnekas nappaa kerran parissa vuodessa", Saaresto pohtii.

Ohjelmistokehittäjän luovuutta kannattaa ylläpitää

Marko Saaresto muistuttaa, että ohjelmistoalan ammattilaiset ovat heterogeeninen ihmisryhmä. Kaikki eivät saa ammatillista nautintoa samoista asioista.

"Jotkut nauttivat monimutkaisten järjestelmien tutkimisesta. He saavat oman endorfiinipiikkinsä, kun löytävät järjestelmästä ongelman ja ratkaisevat sen. Toiset taas haluavat aloittaa tyhjältä pöydältä ja luoda uutta. Jotkut puolestaan nauttivat eniten parannellessaan jo olemassa olevaa ohjelmistoa. Työntekijän käyttämät työkalut ja teknologiat eivät välttämättä kerro siitä, missä tehtävässä hän olisi onnellisimmillaan. Usein ihmiset kuitenkin kategorisoidaan niiden perusteella eri tehtäviin."

Koska järjestelmäkehitystä tehdään usein tiimeissä, pitää yksittäisen työntekijän sitoutua normeihin ja yleisiin ratkaisuihin, joka luonnollisesti rajoittaa henkilökohtaista luovuutta.

"On ihan hyvä, ettei jokainen ratkaisu ole erilainen vain puumerkin jättämisen nimissä. Ihmisten halu tehdä itsenäisiä päätöksiä saattaa kuitenkin purkautua vaikeaselkoisina omina ratkaisuina, jotka päätyvät perintöjärjestelmiin. Niitä katsellessa syntyy kysymys, oliko pakko tehdä omalla tyylillä, vaikka apteekin hyllyssä oli saatavilla toimiva ratkaisu. Itse olen selittänyt tätä sooloilua sillä, että nämä ihmiset ovat kaivanneet luovaa toimintaa. Tunne luovuuden rajoittamisesta on toki itsellenikin tuttu", Saaresto sanoo.

Luovuudelle on toki edelleen paikkansa ohjelmistokehityksessä, sillä se on ehtona uudistumiskyvylle. Myös vanhojen järjestelmien muokkaaminen vaatii ajattelun elastisuutta. Saaresto kehottaakin yrityksiä ylläpitämään työntekijöiden luovaa ajattelukykyä.

"Jollain firmoilla on tapana järjestää esimerkiksi hackatoneja, joissa tarjotaan mahdollisuus tehdä luovia juttuja ja rikkoa rutiineja."

Saaresto kuitenkin ymmärtää, miksi erityisesti isoissa organisaatioissa vuosia työskennelleet henkilöt saattavat kyseenalaistaa uransa jatkon.

"Työnantajien välillä on toki paljon eroja, mutta joissain organisaatiossa työntekijä on saattanut joutua ulkoistamaan oman kehityksensä yritykselle eikä esimerkiksi saa itse päättää, mitä koulutuksia käy. Tunne siitä, ettei pääse enää haluamallaan tavalla eteenpäin, on mielelle myrkkyä."

Saaresto ei ole itsekään välttynyt pohtimasta, tätäkö hän haluaa tehdä eläkeikään asti. Konsulttitöistä ja yrittäjyydestä on löytynyt polku, jota pitkin jatkaa eteenpäin.

"Tykkään tutustua uusiin ihmisiin ja projekteihin. Saan tyydytystä nähdessäni, miten oma työni on helpottanut jonkun toisen elämää tai liiketoimintaa."

Oli kyseessä sitten iso tai pieni yritys, työntekijöiden hyvinvointi ja tyytyväisyys näkyy Saareston mielestä automaattisesti myös lopputuotteessa.

"Jokainen järjestelmä muistuttaa sen tehnyttä organisaatiota. Jos sen ihmiset ovat uransa ja ammattinsa kanssa kestävällä pohjalla, seurauksena syntyy parempia ja elinkelpoisempia ohjelmistoja."

Lue myös:

Pallomeri vai parempi palkka?

Kiinnostaako ura rakettitieteilijänä?

P.S. Meillä  kehittäjä valitsee, mihin projektiin ryhtyy, ja se on myös asiakkaan etu. Työn kohdatessa oikean tekijänsä lopputulos on nättiä. Jos projektistasi puuttuu kokeneita käsipareja ja työssään viihtyviä koodareita, ota yhteyttä!