Blogi | Cinia

Tekoälyn hyödyntäminen ohjelmistokehityksessä: 4 tehokasta tapaa kehittää taitojaan

Kirjoittanut Cinia Oy | 5.6.2023 8:11

Large Language Model (LLM) -mallit, kuten GitHubin Copilot tai ChatGPT kykenevät generoimaan ohjelmakoodia automaattisesti. Juuri nyt koko ala seuraa mielenkiinnolla, mitä se käytännössä tarkoittaa kehittäjän työn kannalta.

Miten tietoturva tulisi huomioida, kun käyttää AI-työkaluja ohjelmistokehitystyössä? Lue myös artikkelisarjan toinen osa.

 

1. Ota olemassaoleva koodi nopeammin haltuun


“Juuri nyt pilotoimme eri keinoja hyödyntää tekoälytyökaluja projektityöskentelyssä”, kertoo ratkaisuarkkitehti Henrik Collin Cinialta. “Eräs selkeä kohta, jossa AI auttaa huomattavan paljon, on olemassaolevan koodin haltuunotto.”

Kuvitellaan tilanne, jossa tiimin jäsenet vaihtuvat ja uusien kehittäjien on otettava sovelluksen teknologiat ja ratkaisut vastuulleen. Tai murroskohta, jossa pitkäikäisen sovelluksen ylläpito ja kehitys siirtyy ohjelmistokumppanilta toiselle. Aiemmin kehittäjät olisivat kaivaneet tietoa esiin dokumentaatioita tai best practices -esimerkkejä selaamalla. LLM-mallille voi sen sijaan esittää täsmäkysymyksiä. 

Kyse on tiedonhaun evoluutiosta, huomauttaa Niklas Collin, joka työskentelee Cinialla johtavana konsulttina:

“Googlen hakukoneen yleistyminen poisti tarpeen selailla 800-sivuista paperista ohjekirjaa. Nyt LLM-malli yhdistelee puolestasi hakutuloksia ja esittää niiden perusteella arvauksen sopivasta vastauksesta.”

Asiakkaan koodia käsitellessä erityishuomio kiinnittyy tietoturvaan. Olitko juuri käyttämässä sovellusta, joka sieppaa antamasi datan sisuksiinsa, vai hyödyntääkö sovellus ulkopuolista opetusdataa? Valitse työkalu tilanteen mukaan.

 

2. Luo proof of concept -kokeiluja, joihin osaamisesi ei muutoin riittäisi

Tekoälymallit ovat tällä hetkellä vahvimmillaan pienissä, mahdollisimman tarkasti rajatuissa pyynnöissä. Taitavaa dialogia käymällä voit kuitenkin luoda kokonaisia uusia ohjelmia. Toimintaperiaate on lopulta todella yksinkertainen. Lukemattomat kirjastot tarjoavat tänä päivänä valmiita elementtejä, joiden etsimistä ja yhdistelemistä hyvä työkalu vain nopeuttaa.

Työ tehostuu etenkin silloin, kun otat pohjaksi oman osaamisesi ja laajennat sitä tuntemattomalle maaperälle, esimerkiksi näin:

  • Fronttikoodari haluaa luoda rautalankamallin backend-ratkaisusta ja pyytää AI-assistentin kirjoittamaan palvelinkoodia puolestaan. 
  • Designer-taustainen tekijä luo omin voimin prototyypin web-sovellusideastaan, vaikka tuntisi koodin kirjoittamisen periaatteet vain alustavasti.
  • Kokeneelta backend-tekijältä pyydetään proof of concept -versiota myös käyttöliittymätasosta – mikäpä siinä, kokeillaan!

Juuri nyt uusia AI-sovelluksia julkaistaan tulvimalla ja ne hakevat paikkaansa markkinoilla. Tekoälyn kanssa työskentely on jatkuvaa arviointia siitä, ovatko sen antamat vastaukset relevantteja vai harhaanjohtavia. Mitään ei saa päästää tuotantoon ilman huolellista validointia.

Tulevaisuudessa, kun juuri ohjelmistokehitystyöhön parhaiten sopivat työkalut on tunnistettu, AI-sovellukset todennäköisesti integroidaan kiinteäksi osaksi kehittäjien päivittäistä tekemistä.

 

3. Nopeuta uusien kielien oppimista

GitHubin Copilotin nimi on mielestäni todella kuvaava. Tekoäly on parhaimmillaan assistentti, jonka avulla voit laajentaa omaa osaamistasi”, Niklas Collin sanoo. 

Lähivuosina tullaan näkemään suuri murros siinä, miten nopeasti kehittäjä pystyy ottamaan uusia ohjelmointikieliä haltuun. Juniorit voivat kiihdyttää koodiosaamistaan kokonaan uuden äärellä, seniorit liikkuvat sujuvammin syntaksista toiseen. Jos teen tietyn asian näin tutulla kielellä X, miten se kannattaisi tehdä kielellä Y?

Henrik Collin antaa konkreettisen vinkin tiedonhakuun:

“Et saa parhaita tuloksia, jos annat sovellukselle pätkän koodia ja pyydät kääntämään sen. Kuvaile sen sijaan konsepti ja kysy, mikä on vastaava konsepti toisella kielellä – jos vastaavaa konseptia ylipäänsä on. Tämä tarkoittaa myös sitä, että ohjelmistokehittäjien on tultava entistä taitavammiksi kysymysten kysymisessä.”

 

4. Pääse eteenpäin jumeista

“Kuvaan LLM-mallien kanssa työskentelyä eräänlaiseksi parikoodausmalliksi – ei kahden ihmisen, mutta yhden ja puolen. Joskus pelkkä toisen ihmisen kanssa jutteleminen auttaa pääsemään monimutkaisessa ongelmassa eteenpäin. AI-työkalulla voi olla vastaava rooli.  Jokainen, joka tekee jonkinlaista luovaa työtä, tunnistaa varmasti samanlaisen muutoksen”, Henrik Collin sanoo.

Tarjolla on loputtomasti ohjekirjoja, syntakseja, ja ristiin linkittyviä kuvauksia, mutta et löydä juuri sopivaa esimerkkiä siitä, miten joku olisi aiemmin ratkaissut juuri käsissäsi olevan yhdistelmän?

“Kun osaat kertoa lähtötiedot tekoälymallille, saat vastaukseksi vähintään vihjeitä siitä, mistä kulmasta dokumentaatioita kannattaa lähteä kahlaamaan. Tai voit pyytää kolme vaihtoehtoista tapaa ratkaista tietty ongelma, ja lähteä sitten kokeilemaan, mikä niistä olisi toimivin”, Henrik Collin neuvoo.

 

Varo vanhentunutta tietoa ja harhaanjohtavia arvauksia

Maaliskuussa 2023 australialainen pormestari joutui uhkaamaan Open AI -yhtiötä kunnianloukkaussyytteellä, koska ChatGPT-työkalu oli virheellisesti väittänyt hänen ottaneen lahjuksia. Todellisuudessa hän oli työssään päinvastoin torjunut lahjontaa, eikä missään vaiheessa ollut syytettynä. Tekoälymalli oli vain yhdistellyt tietoja toisiinsa ja tarjonnut lukijalle yhtenäisen tarinan.

“Vastaavaa voi hyvin tapahtua ohjelmoinnissa”, Niklas Collin muistuttaa. “Siksi on niin tärkeää, ettei LLM-malleja hyödynnä sokeasti.”

Mitä enemmän tekoälyä ymmärretään, sitä paremmin alkavat hahmottua myös sen ongelmat, Henrik Collin sanoo: “Ensinnäkin tieto voi olla vanhentunutta. Toiseksi, vastaukset voivat olla erittäin uskottavan näköisiä, mutta viedä silti täysin väärään suuntaan. On hyvä tunnistaa työkalun toimintaperiaate, eli millainen datamalli on pohjalla ja mistä opetusdata on peräisin.”

Paluu vanhaan ei ole vaihtoehto – niin paljon hyvää teknologian kehittyminen tuo mukanaan. Hype-vaiheen tasoittuessa tarvitaan vain uteliaan mielen lisäksi paljon keskustelua tietoturvasta ja softakehitystyön uusista käytännöistä.

“Yksikään tekoälysovellus ei anna lupaa laittaa lappuja silmille tai heittää aivoja narikkaan. Kun tämän tiedostaa, kannattaa mahdollisuuksia lähteä hyödyntämään saman tien”, Henrik ja Niklas Collin kannustavat.

 
Lue myös:

Valitse AI-työkalu oikein, jotta et aiheuta tietovuotoa

Product Owner eli tuoteomistaja ohjelmistoprojektissa: Mitä, miten ja miksi?