Näyttää siltä, että käytät Internet Explorer -selainta. Selain ei valitettavasti ole tuettu. Suosittelemme käyttämään modernia selainta kuten Chrome, Firefox, Safari tai Edge.

Tekoäly ohjelmoinnin apurina: “Väsymätön apuri vauhdittaa työtä, vaikka osaavan koodarin korvikkeeksi siitä ei ole”

Julkaistu aiheella Teknologia

Kirjoittaja

Artikkeli

3. helmikuuta 2025 · 4 min lukuaika

Moderniin ohjelmointiin nopealla sykkeellä sisällytetyt tekoälyavustajat voivat parhaimmillaan jouhevoittaa koodausta ja tarjota ohjelmoijalle sparrausapua vaikka kellon ympäri. Tekoäly ei kuitenkaan ole oikotie nopeampaan ja halvempaan liiketoimintaan, sillä sisälukutaito ja rautainen osaaminen ovat yhä menestyksekkään ohjelmistokehittämisen edellytyksiä.

Kehittyvien tekoälymallien kokeilu aloitettiin Nitorilla käytännössä heti niiden tultua saataville. Ohjelmointiin perinteisesti kuuluneiden hakukoneiden hyödyntämisen ja teknisen dokumentaation perkaamisen sijaan tekoälyavustajien on todettu tarjoavan salamannopeaa ja väsymätöntä apua, jota on saatavilla aina silloin, kun asiantuntija sitä kaipaa.

Tekoäly on oiva keskustelukumppani, sparraaja ja koodinpätkiä viimeistelevä apukäsi, mutta osaavan ohjelmoijan korvaajaksi siitä ei ole.

Tämän tietää hyvin Nitorilla ohjelmistokehittäjänä työskentelevä Eero Rantala. Kokeneen koodarin näkökulmasta esimerkiksi IntelliJ IDEA -kehitysympäristöön hiljattain lisätty AI Assistant -lisäominaisuus sujuvoittaa toimintaa:

”Tällä hetkellä tekoälyn suurin hyöty on se, että se tekee ohjelmointiin liittyvien yksityiskohtien selvittämisestä välittömämpää. Kun on tarpeen käydä läpi valtavia datamassoja ja selkokielistää tietoa, tekoäly on tehokas avustaja”, Rantala kiteyttää.

Itsevarmuutta uhkuvat kielimallit luovat vaarallisia mielikuvia

Kehittyneiden kielimallien ansiosta AI-assistenttien kanssa on mahdollista käydä luontevaa keskustelua vaikkapa tietyn ohjelmointikielen lainalaisuuksista, mutta soljuvan keskustelun varjopuolena on kielimallien luoma illuusio erehtymättömyydestä. Tekoälyt saattavat esitellä virheellisiä ratkaisuja ja johtopäätöksiä, joiden haastaminen vaatii kokemusta, kontekstin ymmärtämistä ja ammattitaitoa.

”Mieleeni muistuu hiljattainen esimerkkitapaus, jossa tekoäly ehdotti tiettyyn kirjastoon liittyvää metodia. Kun olin implementoinut ratkaisun osaksi koodia ja kollega katselmoi työni, hän ihmetteli, miksen ollut käyttänyt uudempaa funktiota. Kun totesin tekoälylle, että tämä oli ehdottanut vanhentunutta ja deprekoitua funktiota, AI-assistentti vastasi, että näin tosiaan on, käytä uudempaa tapaa”, Rantala jatkaa.

Tekoälyn hyödyntämisessä täytyy siis olla tarkkana, jotta sen vedenpitävinä esittelemät, joskin aukkoja sisältävät ratkaisut eivät päädy tuotantoon. Vaikka tekoälyn generoima koodi olisi 98-prosenttisesti oikein, on jäljelle jäävä kahden prosentin virhemarginaali useimmissa tapauksissa silti liikaa.

Saatavilla olevan koulutusdatan määrä ja laatu on myös tärkeä ottaa huomioon, kun yrityksessä harkitaan tekoälyn hyödyntämistä osana ohjelmointityötä. Jos ohjelmointi sälytetään liian suurelta osin tekoälyn kontolle, riskinä on, että tulevaisuudessa tekoälymalleille ei ole enää saatavilla ajankohtaista, päivitettyä ja osaavissa käsissä validoitua dataa, jolloin mallit rapautuvat tai jopa täysin romahtavat.

Tulevaisuuden kannalta elintärkeä kysymys on se, että jos kaikki siirtyvät käyttämään tekoälymalleja, niin kuka niitä enää opettaa?

Tekoälyn hyödyntämiseen liittyy vielä paljon tutkimusmatkailua

”Joissain yrityksissä saatetaan jo olla siinä uskossa, että suuri osa koodista generoidaan nykyään tekoälyllä, mutta se on väärä olettamus. Asiakkaiden on tärkeä ymmärtää, että tekoälyn implementointiin kuuluu vielä paljon pioneerityötä ja tutkimusmatkailua”, toteaa Mika Majakorpi, Nitorin Chief Technologist.

Nitorilla tiedetään, että puhtaasti tekoälyn luomaan koodiin ei voi luottaa sokeasti, eikä tekoälyn hyödyntäminen välttämättä takaa projektille pienempää hintalappua. Se on käytön myötä kehittyvä työkalu, mutta itse työ vaatii vakaat ja osaavat kädet.

”Oma näppituntumani on, että mitä yleisemmin käytetty ja pitkäikäinen koodikieli on kyseessä, sitä parempaa koodia tekoäly pystyy generoimaan. Olen viime aikoina koodannut paljon Clojurea, jolle on olemassa vähemmän koulutukseen käypää tietomassaa kuin vaikkapa Javalle. Käytännössä tämä näkyy siten, että tekoälyn hyödyt ovat suhteessa vähäisemmät”, Rantala jatkaa.

Tekoäly ynnäilee todennäköisyyksiä ja saattaa satunnaisesti myös generoida koodiin ylimääräisiä rivejä, jotka perustuvat tekoälyille ominaiseen hallusinointiin. Tällöin on tärkeää, että yritykseltä löytyy vahvaa ymmärrystä ja osaamista siitä, mitä koodilla tarkalleen tavoitellaan ja millaista reittiä päämäärää kohti kuljetaan.
Koodaamisen vanha viisaus on, että debuggaaminen on vaikeampaa kuin uuden koodin kirjoittaminen. Virheiden korjaaminen perustuu siihen, että ohjelmoija ymmärtää, mitä koodin on tarkoitus saada aikaan. Jos koodi on kokonaan tekoälyn generoima eikä ohjelmoijalla ole omakätistä tuntumaa sen toimintalogiikasta, koodin sisältämiä virheitä on vaikea, ellei jopa mahdoton korjata.

Laadukkaan koodin takaa tavoitteiden ymmärrys

Somessa ja keskustelupalstoilla nousee aika ajoin esiin tuttu kauhukuva siitä, että kehittyvä tekoäly syö ohjelmoijilta työpaikat. Väite ei saa Rantalan ja Majakorven kannatusta.

”Vaikka koodaus joskus tulevaisuudessa siirtyisikin siihen, että kaikki vain kirjoittaisivat AI-prompteja, olisi paras promptaaja aina ansioitunut koodaaja. Siihen rajapintaan tullaan aina tarvitsemaan ihminen, joka osaa ymmärtää tahtotilan Jira-tiketin taustalla, osaa yhdistää sen liiketoimintahankkeeseen sekä ymmärtää, mikä koodin rooli on yhtälössä”, Rantala kiteyttää.

“Ytimeltään kyse on menestyksekkään liiketoiminnan ja osaavan ohjelmoinnin kahdesta nyrkkisäännöstä: tehdään oikeita asioita ja tehdään asiat oikein. Etenkin ensiksi mainittu tulee aina vaatimaan laajempaa osaamista ja inhimillistä sisälukutaitoa”, Majakorpi jatkaa.

Nitorin asiantuntijoiden arvion mukaan tekoälyn tuomat hyödyt esimerkiksi työtehoon jäävät toistaiseksi suurin piirtein 10 prosenttiin – työajasta kiistaton valtaosa kuluu yhä ihmisten keskinäisen ymmärryksen hakemiseen.

“Käytännössä asiakkaalla on esimerkiksi bisneskeissi, johon halutaan juuri tietynlainen ominaisuus. Sen jalkauttaminen toiminnaksi vaatii kykyä sisäistää itse tarve sekä sitä ympäröivä konteksti. Kun nämä asiat saadaan kirkastettua, varsinainen koodaaminen on useimmiten nopeaa ja suoraviivaista toimintaa”, Rantala selventää.
Tekoäly voi tehostaa, selkeyttää ja vauhdittaa tätä toimintaa, muttei korvata sen taustalla olevaa ajatustyötä. Rantalan näkökulmasta tekoälyassistenttien hyödyntäminen voidaankin kiteyttää omaksutun tiedon ja sen soveltamisen pesäeroon.

“Muistan kun nuorempana tutustuin koodaukseen. Olin elätellyt tietynlaista harhakuvitelmaa siitä, että koodikielen syntaksien ymmärrys on se suurin taito koodauksen taustalla. Mutta koodihan on kieli siinä missä mikä tahansa muukin. Se, että osaa kirjoittaa, ei tee kenestäkään kirjailijaa. Ohjelmoijan ammattitaidon syvä pääty on sitä, että kykenee hyödyntää koodikieltä ikään kuin tarinankertojan työkaluna ja taivuttaa sen mahdollisuudet haluttuun liiketoiminnalliseen määränpäähän”.

Nitorilla luodaan ohjelmistoratkaisuja, joiden kehityksessä mietitään koko elinkaari arkkitehtuurista ylläpitoon. Lue lisää palveluistamme!

Kirjoittaja