Tässä blogissa Digialla devaajana työskentelevä Mikko Ahola jakaa pohdintojaan nopean ja ketterän sovelluskehityksen syövereistä, ja kuinka ”oikea koodaaminen” täydentyy vähäkoodisilla eli low-code-työkaluilla ja metodeilla.
Minusta ei tule isona low-code-kehittäjää, vaan tavoitteisiini kuuluvat työtehtävät, joissa tekninen osaamiseni ja taustani tulevat täysin hyödynnettyä. Olen kuusi vuotta opiskellut tietotekniikkaa yliopistossa, ja ohjelmoinnin, ohjelmistotekniikan, IT-arkkitehtuurien ja – kyllä – psykologian opintoni ovat loppusuoralla. Minusta tulee full stack -kehittäjä, joka tekee oikeaa koodia. Low-codestahan puhutaan ”kansalaiskehittämisenä, jota jokainen riviopettaja ja prosessinomistaja voi alkaa itse harjoittaa”. Tuollainen työnkuva ei varmaankaan mitenkään palvele minua kehittäjänä, enkä todellakaan aio tuhlata opintojani tempautumalla mukaan johonkin noin triviaaliin.
Vai pitäisikö ehkä sittenkin?
Muutama kesä sitten hain kesätöihin Jyväskylän yliopistolle low-code-kehittäjäksi. Myönnän, että työpaikka oli ehkä enemmänkin mallia ”olin nuori ja tarvitsin rahaa” kuin se haaveilemani unelmaduuni valtavassa teknologiayrityksessä. Tuohon aikaan low-code ei vielä ollut kummoinenkaan ilmiö Suomessa, ja mietinkin itsekseni, saakohan sillä mitään aikaiseksi. Kun yliopistolla työskennellyt tuttuni kuitenkin suostui suosittelijaksi ja työhaastattelukin meni putkeen, ryhdyin innoissani tarjottuihin hommiin. Pääsinhän kuitenkin edes jossain muodossa tekemään omaa unelmatyötäni eli sovelluskehitystä.
Ohjelmointia opiskelleelle low-code-alusta ja sen työkalut tuntuivat aluksi tosi kankeilta, rumannäköisiltä ja jäykän rakenteellisilta. En siis pitänyt käsiini saamaani alustaa kovinkaan houkuttelevana. Alustan tarjoama valtava määrä toiminnallisuuksia teki myös kehittäjän käyttöliittymästä vähintäänkin haastavan käyttää. Lisäksi minun oli erittäin vaikeaa uskoa, että alustalla todellakin olisi kaikki tarvittava valmiina ja sillä voisi rakentaa (melkein) kaiken, mitä kuvitella saattaa.
Vähitellen aloin kuitenkin huomata, että oppimani ”perinteisen koodaamisen” periaatteet ja parhaat käytänteet ovat low-codessakin mukana. Näitä periaatteita ovat esimerkiksi ylläpidettävyys, uudelleen käytettävyys ja helppo muokattavuus. Ja paitsi että nämä ovat mukana, jotkut low-code-alustat suorastaan pakottavat niihin.
Tästä pääsenkin siihen, mikä omasta mielestäni on low-code-kehittäjän työnkuvan suola: se vie ammatillista osaamista eteenpäin eri tavalla kuin perinteinen koodaaminen. Tarjolla on – osaavissa käsissä – paljon apuja laadukkaaseen ohjelmistokehitykseen. Vaikka alusta auttaa paljon, vastuu ohjelmiston ylläpidettävyydestä jää kuitenkin kehittäjälle. Ilman tarvittavia ammatillisia taitoja saatat myös low-codella vahingossa onnistua luomaan erittäin vaikeasti ylläpidettäviä ohjelmistoja. Low-code-tekemisessä keskiössä ovatkin kehittäjän taidot liittyen ohjelmiston ylläpidettävyyteen sekä sen suunnittelun ja määrittelyn laatuun – ei niinkään koodikielen syntaksi.
Jonkin aikaa low-codella työskenneltyäni huomasin myös, että tiettyjä juttuja kuten tiedon tallentamista tai hakemista tai muita samantyyppisiä toimintalogiikoita voi low-codella tehdä äärimmäisen nopeasti, ja toimintojen tekeminen on alustoilla visualisoitu todella hyvin ja selkeästi. Välillä jopa huomasin tekemisen olevan niin vauhdikasta, ettei ajatus pysynytkään perässä. Virheitä siis syntyi, mutta toisaalta myös korjaaminen on helppoa ja nopeaa. Juuri tässä piilee low-coden loistopotentiaali ”fail fast” -tyyppiseen tekemiseen: se mahdollistaa nopeat kokeilut, koska kaikki tekeminen – mukaan lukien virheiden – on nopeaa, mutta myös korjaaminen ja suunnan muuttaminen käy käden käänteessä.
Nyt, kaksi vuotta ja monta low-code-kokemusta viisaampana ottaisin mieluusti monia low-code-alustojen ominaisuuksia mukaani myös perinteisen koodaamisen maailmaan.
Vähitellen olen siis alkanut tulla toimeen myös ammatillisen low-code-minäni kanssa. Sen ei tarvitse kilpailla eikä ottaa mitään pois siltä, että minusta todellakin vielä tulee se ammatikseen näppistä hakkaava kova ja ”kaikkivoipainen” koodari. Nykyaikaiset low-code-alustat kuten Microsoft Power Platform mahdollistavat saumattoman siirtymisen low-code-välineistä ns. pro-code-työkaluihin, eli perinteiseen koodaamiseen. Niiden avulla voin luultavasti jatkossakin tehdä low-codella työssäni ne osiot, jotka muutenkin olisivat rutiininomaisempia eivätkä tarjoaisi ammatillisesti kovin tajuntaa laajentavia onnistumisen elämyksiä.
Digian kaltaisen, monipuolisia haasteita tarjoavan työnantajan palveluksessa low-code siis parhaimmillaan säästää aikaani sille, mikä sovelluskehittäjän työssä on oikeasti kiinnostavaa, eli asiakkaideni monimutkaisten ja ainutkertaisten teknisten ongelmien ratkaisemiselle. Ehkäpä pääsen vielä hyödyntämään niitä psykologian opintojanikin, jos rutiinikoodaamisen väistyessä aikaa jääkin keskusteluihin asiakkaiden asiantuntijoiden kanssa, ja pääsen yhdessä heidän kanssaan tunnistamaan ongelmia, joihin digitalisaatio voisi tarjota ratkaisuja.