
Vincit kertoo asiakasprojektista, jossa tekoälyä ei käytetty vain kehittäjän apurina, vaan ohjelmistokehityksen varsinaisena työvoimana. Quattro Liningin PTS-Kompassi-palvelu rakennettiin kahdessa kuukaudessa mallilla, jossa tekoälyagentit vastasivat lähes kaikesta koodin ja dokumentaation kirjoittamisesta.
Palvelu liittyy viemärisaneerausten suunnitteluun. Se arvioi taloyhtiön viiden vuoden viemärikorjaukset ja laskee niille korjausvelkaprosentin lähes miljoonan kuvatun viemäriputkimetrin dataan perustuen. Vincitin asiakasvastaavan Juha Metsälän mukaan tekoälyä hyödynnettiin projektissa kaikissa keskeisissä työvaiheissa määrittelystä arkkitehtuuriin, käyttöliittymään, koodaukseen, testaukseen ja dokumentointiin.
- Tässä projektissa käytettiin tekoälyagentteja laajasti ohjelmistokehityksen eri vaiheissa. Tekoälyagentit vastasivat lähes kaikesta koodin ja dokumentaation kirjoittamisesta, Metsälä sanoo.
Käytännössä työ eteni niin, että ensin tekoälyagentteja käytettiin määrittelydokumentaation tuottamiseen. Sen jälkeen vaatimuksista tehtiin tekninen toteutussuunnitelma, jossa kuvattiin myös tarvittavat arkkitehtuurimuutokset. Ihmiskehittäjä luki ja hyväksyi suunnitelman ennen kuin se annettiin tekoälyagentille toteutettavaksi.
Vincitin kehittäjät käyttivät ohjelmistokehityksessä Cursoria. Lisäksi mukana oli tekoälypohjainen CodeRabbit-katselmointityökalu. Google Geminiä hyödynnettiin määrittelyiden tarkentamisessa, teknisessä suunnittelussa ja dokumentoinnissa. Agentit oli MCP-integraation avulla yhdistetty muun muassa Figmaan, tikettijärjestelmään, versionhallintaan ja CI/CD-alustaan.
Metsälän mukaan agenttien tehtäviin kuuluivat määrittelyjen tarkentaminen, teknisten suunnitelmien luonti, koodin tuottaminen, automaatiotestien kirjoittaminen, koodikatselmointi ja dokumentaation tuottaminen. Kyse ei kuitenkaan ollut täysin itsenäisestä ohjelmistotiimistä, vaan agenteille annettiin eri työvaiheissa erilaisia rooleja ja ohjeistuksia.
Nopeushyöty oli Vincitin mukaan selvä mutta ei maaginen. Metsälä puhuu kymmenien prosenttien tuottavuusparannuksesta. Eniten nopeutuivat koodin tuottaminen, automaatiotestien kirjoittaminen ja koodikatselmointi. Lisäksi tekoälyagentit tuottivat ajantasaista dokumentaatiota tehdyistä muutoksista, mikä paransi projektin jäljitettävyyttä ja kommunikaatiota.
Laatua varmistettiin TDD-mallilla, jossa toteutussuunnitelmien ensimmäiseksi tehtäväksi määriteltiin automaatiotestien luominen. Agentti pystyi ajamaan testit toteutuksen aikana ja tarkistamaan, että uusi toiminnallisuus vastasi suunnitelmaa. Projektissa luotiin sekä yksikkötestejä että end-to-end-testejä, joilla varmistettiin kokonaisuuden toiminta käyttöliittymätasolta alkaen.
Tietoturvan osalta projektissa käytettiin säännöllisesti erillistä tekoälyagenttia, joka analysoi koodin rakennetta ja pilviympäristöä. Sen tuottamien auditointiraporttien perusteella kehityslistalle nostettiin tietoturvaan liittyviä parannuksia.
Kaikkea tekoälyn tuottamaa koodia ei katselmoitu ihmisen toimesta, mutta kriittiset osat käytiin tarkemmin läpi. Monimutkaisissa muutoksissa mukana oli myös toinen ihmiskehittäjä. Metsälän mukaan keskeistä oli, ettei vastuu laadusta ja tietoturvasta siirtynyt tekoälylle.
- Järjestelmäkokonaisuuden laadun ja tietoturvan kannalta oli olennaista, ettei kehitystiimi siirtänyt vastuuta näistä asioista tekoälyagenteille. Vaikka agentit hoitivat lähes kaiken koodin kirjoittamisen, tiimi toi syvällisen ymmärryksen järjestelmän rakenteesta ja toiminnasta, Metsälä sanoo.
Vaikeasti ylläpidettävää AI-koodia pyrittiin välttämään pilkkomalla muutokset riittävän pieniin ja hyvin määriteltyihin osiin. Tällöin agentin oli helpompi suoriutua tehtävästä, ja ihmisen oli helpompi hahmottaa koodipohjaan tehdyt muutokset.
Hanke kertoo hyvin, mihin suuntaan ohjelmistokehitys on nopeasti muuttumassa. Tekoäly ei enää vain täydennä koodirivejä kehittäjän puolesta, vaan se voi osallistua koko kehitysputkeen määrittelystä testaukseen ja dokumentointiin. Ihmisen rooli siirtyy yhä enemmän suunnitteluun, ohjaamiseen, hyväksyntään ja vastuun kantamiseen.













