Kokemuksia tekoälyn vauhdittamasta ohjelmistokehitysprojektista

Tekoäly on noussut nopeasti merkittäväksi työkaluksi ohjelmistokehityksessä. Yhä useammat kehittäjät hyödyntävät tekoälypohjaisia ratkaisuja esimerkiksi koodin kirjoittamisessa, tiedon etsinnässä, virheiden korjauksessa ja ideoiden laatimisessa. Tämä artikkeli kertoo miten tekoälyä käytännössä hyödynnettiin osana YAMK-opiskelija Petri Tuomion opinnäytteeseen kuulunutta ohjelmistokehitysprojektia.

TEKSTI | Petri Tuomio, Tero Ulvinen
Artikkelin pysyvä osoite http://urn.fi/URN:NBN:fi-fe2025022413536
Miehen sivuprofiili, mietteliään näköinen, päällä erilaisia ikoneita, kuvastaa tekoälyä.

Tekoäly uudistaa ohjelmistokehitystä

Ohjelmistokehitys on viime vuosien aikana kokenut merkittävän murroksen tekoälyn kehittymisen myötä. Esimerkiksi OpenAI:n luomat kielimallit ovat herättäneet laajaa kiinnostusta kehittäjien keskuudessa. Kielimalleja voidaankin hyödyntää esimerkiksi koodiavustajina, ketterinä ongelmanratkaisijoina, testitapausten rakentajina sekä toimintojen ideoinnissa.

Tässä artikkelissa tarkastelemme konkreettista tapausesimerkkiä ja kokemuksia siitä, miten tekoälyä hyödynnettiin ohjelmistoprojektissa joka oli osa Petri Tuomion YAMK-opinnäytetyötä “Reaaliaikainen lokiformaatin muunnos ja edelleenvälitys Docker-kontilla” (Tuomio, 2025).

Projektin tausta ja tavoitteet

Digitalisoituneessa maailmassa lokien hallinta ja tietojen standardoitu tallentaminen ovat välttämättömiä IT-ympäristöjen tehokkaalle hallinnalle. Eri sovellukset ja järjestelmät tuottavat valtavia määriä lokitietoja, jotka on usein muokattava standardoituun muotoon, jotta niiden analysointi ja käyttö olisivat mahdollisimman tehokkaita.

Projektin tavoitteena oli rakentaa Docker-ympäristöön Python-kielinen muunnosohjelma, joka ottaa vastaan GELF-muotoisia lokiviestejä JSON-rakenteena ja muuntaa viestit RFC5424-standardin mukaiseen syslog-formaattiin välittäen ne eteenpäin UDP-protokollalla.

GELF on erityisesti Graylog-ympäristöön suunniteltu lokiformaatti, joka mahdollistaa rakenteisen ja laajennettavan lokitiedon välittämisen (GELF, n.d). Syslog on puolestaan laajalti käytetty lokiviestien välitystapa, jota monet järjestelmät ja sovellukset tukevat. Alkuperäisen RFC3164-standardin korvasi RFC5424 vuonna 2009 (RFC5424, The Syslog Protocol, 2009). Uudempi standardi määrittelee syslog-viestin rakenteen ja metadatan tarkemmin kuin edeltäjänsä.

Docker-pohjaisuus auttaa organisaatioita valitsemaan muunnokseen käytettävän isäntäympäristön vapaasti. Koska kontit ovat alustariippumattomia, sama ratkaisu voidaan ajaa niin paikallisessa palvelinympäristössä kuin erilaisissa pilvipalveluissa. Tämä tekee järjestelmästä helpon siirtää ja skaalata, vähentäen samalla ylläpitoon liittyviä haasteita.

Toteutusprosessissa keskeisenä apuna toimi ChatGPT, joka on tekoälypohjainen apuväline (Introducing ChatGPT, 2022). Tekoälyn käyttö nopeutti kehitystyötä, tarjoten ratkaisuja ongelmiin ja mahdollisti uusien teknologioiden oppimisen ja hallinnoinnin tehokkaasti.

Tekoälyn rooli kehitysprosessissa

ChatGPT oli keskeinen työkalu projektin kaikissa vaiheissa, tarjoten tukea niin suunnittelussa, koodauksessa kuin ongelmanratkaisussakin. Projektin alkuvaiheessa ChatGPT auttoi hahmottamaan kokonaiskuvaa ja pilkkomaan kerroksittaisen kehitystyöprojektin pienemmiksi, hallittaviksi osiksi. Esimerkiksi GELF-viestien rakenteen ja RFC5424-standardin vaatimusten tutkiminen sujui tehokkaasti tekoälyn avulla. Se tarjosi myös konkreettisia esimerkkejä Dockerista ja Docker-kuvien rakentamisesta, jotka nopeuttivat projektisuunnitelman laatimista.

ChatGPT toimi myös koodiavustajana ja auttoi kirjoittamaan Python-koodia GELF-viestien lukemiseen ja jäsentelemiseen. Lisäksi se tuotti malliesimerkkejä RFC5424-standardin mukaisten syslog-viestien muodostamiseen.

Tekoälyllä tehty kuva kuvauksella: "Piirrä ohjelmistokehittäjä marionetiksi ja tekoäly pitää lankoja"-
Kuva 1. Kumpi polkee, kumpi ohjaa? (Kuva generoitu Grok 2 tekoälyllä)

Ongelmatilanteissa ChatGPT tarjosi nopeasti vastauksia ja vaihtoehtoisia ratkaisuja, jotka nopeuttivat kehitystä huomattavasti. Se esimerkiksi ehdotti toimivia tapoja kehitysympäristön Docker-ympäristön linkittämiseen Docker Hubissa sijainneeseen repositorioon ja auttoi analysoimaan virheviestejä. ChatGPT ei aina ollut erehtymätön, mutta virhetilanteen paljastuttua se ehdotti vaihtoehtoisia toteutustapoja.

”Tekoäly voi toimia työparina, joka vauhdittaa kehitysprosessia ja antaa uusia ideoita ratkaisuihin, joita ei välttämättä itse tulisi ajatelleeksi.” – Petri Tuomio

Hyödyt ja haasteet

ChatGPT:n käytön merkittävimmät hyödyt projektissa olivat:

  • ajan säästö: ongelmien ratkaisu vei huomattavasti vähemmän aikaa kuin perinteisiä lähteitä käyttämällä.
  • oppimiskokemus: tekoäly tarjosi selkeitä selityksiä uusista konsepteista ja teknologioista. Siltä oli mahdollista kysyä tarkennuksia, esimerkiksi miksi juuri valittu lähestymistapa oli valittu tai pyytää yksityiskohtaista selostusta koodin toiminnasta ja/tai riippuvuuksista.
  • Innovatiiviset ratkaisut: lisäksi ChatGPT ehdotti innovatiivisia ratkaisuja, joita ei välttämättä olisi itse tullut ajatelleeksi. Se pystyi myös tarjoamaan analyysiä ja parannusehdotuksia jo tuotettuun koodiin.

Haasteena oli varmistaa tekoälyavusteisesti tuotetun koodin oikeellisuus ja turvallisuus, sillä ChatGPT:n ehdotuksia ei voinut – eikä haluttu – käyttää suoraan ilman testausta ja arviointia. Testaus itsessään on välttämätön osa ohjelmistokehitystyötä, joten tekoälyllä generoidun koodin käyttö ei tuonut huomattavasti ylimääräistä kuormitusta, mutta oli tärkeää myös varmistaa ChatGPT:n ymmärtäneen oikein mitä siltä oli pyydetty. Oleellista oli myös hallita tekijänoikeus ja tietoturvakysymykset.

Johtopäätökset ja jatkonäkymät

Projektin tavoitteet saavutettiin onnistuneesti. Docker-kuva toimi odotetusti muuntaen GELF-viestit RFC5424-standardin mukaisiksi syslog-viesteiksi. ChatGPT:n rooli projektissa oli merkittävä, ja sen käyttö osoittautui arvokkaaksi työkaluvalinnaksi.

Tekoäly, kuten ChatGPT, on mullistamassa ohjelmistokehitystä tarjoamalla tehokkaan työkalun ongelmanratkaisuun, koodin optimointiin ja kokonaisvaltaiseen tukeen kehitysprosessissa. Kuvattu projekti on omalta osaltaan osoittanut, miten tekoäly voi toimia luovana ja teknisenä kumppanina, nopeuttaen kehitystä ja auttaen tiedonhankinnassa perinteisiä hakukoneita helpommalla tavalla. Lisäksi tekoälyn käyttö avaa uusia mahdollisuuksia sillä tekoäly tukee kehittäjiä tuottamalla uusia ideoita, selventämällä pyydettäessä käsitteitä ja tarjoamalla vaihtoehtoisia ratkaisuja.

Tulevaisuudessa tekoälyn rooli ohjelmistokehityksessä todennäköisesti laajenee. Vastaavat mallit voivat tarjota entistä hienostuneempia ratkaisuja koodin generointiin, virheiden korjaamiseen sekä arkkitehtuurisuunnitteluun. Samalla myös kehittäjien on huolehdittava tietoturvasta ja laadunvarmistuksesta – tekoäly on tehokas työkalu, mutta ei vielä inhimillisen asiantuntemuksen korvaaja.

Lähteet
  • GELF (n.d). Graylog. Saatavilla 26.01.2025 https://go2docs.graylog.org/current/getting_in_log_data/gelf.html

  • Introducing ChatGPT (2022). OpenAI. Saatavilla 26.01.2025 https://openai.com/index/chatgpt/

  • Tuomio, P. (2025). Reaaliaikainen lokiformaatin muunnos ja edelleenvälitys Docker-kontilla. Vaasan ammattikorkeakoulu. http://www.theseus.fi/handle/10024/878200

  • RFC5424, The Syslog Protocol (2009). Ietf.org. Saatavilla 26.01.2025 https://datatracker.ietf.org/doc/html/rfc5424

Aiheeseen liittyvää