Skip to main content
Keksit
Käytämme evästeitä analytiikkaan, markkinointiin ja sen kohdentamiseen. Voit lukea selosteen täältä.
27.11.2025 | Teknologia

Tekoäly ohjelmistokehityksen uutena supertyökaluna

Tekoälyhuuma on järisyttänyt maailmaa jo muutaman vuoden ajan. Teknologian maturiteetin kasvaessa, pystymme vuosi vuodelta erottamaan paremmin sen hyödylliset käyttökohteet hyödyttömistä. Käydään tässä blogissa läpi tekoälyn käyttöä ohjelmistokehityksen uutena supertyökaluna, sekä hyvässä, että pahassa.

Tekoäly ohjelmistokehityksen uutena supertyökaluna

Ohjelmistoalalla ennustetaan jopa, että ihmiset tullaan korvaamaan keinotekoisilla kehittäjillä ja tätä yritetäänkin jo muutamissa tunnetuissa yrityksissä [3, 7, 9]. Vaikka junioritasolla työpaikkoja on jo vähennetty [1, 4, 5, 6], itse en usko, että kokeneempiä kehittäjiä voidaan vielä korvata lähitulevaisuudessa. Näen kuitenkin, että työkaluina kielimallit tuovat kehittäjälle paljon etuja työnteossa niihin nähden, jotka eivät näitä hyödynnä ollenkaan. Yritänkin tässä blogissa käydä läpi omiin kokemuksiini perustuen, millä tavoin voit ohjelmistokehittäjänä hyödyntää tekoälyä työssäsi ja mitä asioita kannattaa varoa.

Agenttityökalut

Agenttityökalut ovat tällä hetkellä kiistatta voimakkain trendi ohjelmistokehityksen tekoälytyökalujen piirissä [11]. Isoin lupaus näissä on itsenäisyys: agentit voivat yksinään toteuttaa niille annettuja tehtäviä. Parhaimmillaan agentin hyödyntäminen voi tuntua kuin yhden junnutason tiimiläisen lisäämiseltä projektiin.

Esimerkkejä eri agenttityökaluista työkaluista ovat mm. Opencode, Claude Code, Warp, Aider, Google Antigravity, Cursor, Claude Sonnet, OpenAI Codex ja Zed.

Eräässä tutkimuksessa "agenttista koodamista" (agentic coding) pidetään hyvänä seuraavanlaisissa tilanteissa [11]:

  • Refaktorointi: agenttityökalut voivat analysoida koko koodikantaa ja tunnistaa vanhentuneita käytäntöjä ja epäedullisia ratkaisuja.
  • Rutiinitehtävät: automaattiset riippuvuuksien päivitykset, formatointi, testien ja CI/CD-putken ylläpito lukeutuvat näihin.
  • Bugifixit: agenttityökalut voivat korjata testien pohjalta bugeja ja ylläpitä changelog-tiedostoja automaattisesti.

Agenttityökalujen heikkouksiksi mainitaan:

  • Osaamisen surkastuminen: mitä enemmän ohjelmoija nojaa tekoälytyökaluihin, sitä vähemmän hänen pitää itse ratkaista ongelmia, mitkä ylläpitäisivät hänen ammatillisia taitojaan.
  • Regressiot: agenttityökalut muokkaavat koodia ja luovat uutta logiikkaa itsenäisesti. Jos agentti tuottaa vahingossa rikkinäistä koodia, ihmisten saattaa olla vaikeampi löytää ongelman juurta, sillä kukaan ei ole kirjoittanut koodia itse.
  • Turvallisuus: agenttityökaluilla on pääsy lähdekoodiin ja tietoturvakriittisiin järjestelmiin. Tämä mahdollistaa hakkereille uusia väyliä hyökkäysten suorittamiseen.

Vibe-koodaus

Vibe-koodaus (vibe coding) on X:ssä Andrej Karpathyn popularisoima termi, jossa ohjelmoija ei ohjelmoi itse, vaan ohjeistaa tekoälyä tekemään kaiken kirjoittamisen hänen puolestaan [10]. Vibakoodaus voidaan katsoa agenttityökalujen käytöksi tietyissä tilanteissa, tosin siinä on myös joitakin selviä eroja [11]: lähtökohtaisesti vibakoodatessa tekoälyn ei tarvitse toimia itsenäisesti, vaan ohjelmoijan ja kielimallin välillä käydään jatkuvaa dialogia. Tutkimuksissa vibakoodausta on luonnehdittu erityisen käteväksi uusien ideoiden kokeilussa, prototyyppejä kehittäessä ja uusien teknologioiden opettelussa.

Vibe-koodauksessa on potentiaalisesti isoja ongelmia riippuen siitä, miten ohjelmoija toimii:

  • Chattiaplikaation sisällä käytetyllä kielimallilla ei ole koko lähdekoodin kontekstia. Ratkaisut eivät siis aina ota huomioon kaikkia muuttujia.
  • Kielimallit ovat mustia laatikoita: kehittäjän on vaikea tietää, miten ja miksi tekoäly päätyi lopulliseen ratkaisuun.
  • Vibe-koodamisen nopea tahti luo teknistä velkaa yhtä nopeasti. Näin ollen vibe-koodaja voi olla nopeasti pulassa, jos ohjelmiston pitäisi viedä tuotantokäyttöön.

Omassa käytössäni vibe-koodauksentyylinen kehitys on ollut erityisen kätevää ideoiden paloitteluun, lyhyiden pätkien generoimiseen ja ratkaisujen ehdottamiseen.

Test-driven development apuun?

Testipohjainen kehitys (TDD, Test driven development) saattaisi olla kiinnostava ratkaisu vibakoodauksen moniin onglemiin, ainakin koodin epäluotettavuuden kannalta. Jos koodikantaan kirjoitetaan kattavat testit, ei koodin laadulla ole välttämättä niinkään väliä kunhan kaikki toimii testien tarkistamien sääntöjen mukaan (toiminnallisuuden ja tehokkuuden suhteen). Tämä tietenkin vaatii sen, että ohjelmoija osaa kirjoittaa täysin kattavat testit jokaiselle toiminnallisuudelle ja että hänellä on ylipäätänsä aikaa tähän.

Koodin katselmointi (code review)

Koodin katselmointi (code review) on mielestäni vähemmän huomioitu, mutta erittäin tehokas tapa käyttää agenttityökaluja. Omissa projekteissani olen huomannut, kuinka hyvin esimerkiksi GitHub Copilot pystyy huomaamaan pieniä virheitä PR:ien yhteydessä: kerran se onnistui löytämään uuden bugin suositun kirjaston lähdekoodista, joka oli projektissa mukana! Co-pilot huomaa kommentteihin ja koodiin liittyvät kielioppi- ja syntaksivirheet myös varsin tehokkaasti.

Kääntöpuolena on, että ainakin GitHub Copilot hallusinoi huomattavan osan huomautuksista, eikä aina ymmärrä täysin koodin tarkoitusta. Eli sokeasti tähänkään ei kannata luottaa!

Ehdotuspohjaiset tekoälytyökalut editorissa

Editoriin, kuten VSCode tai Vim, integroidut kielimallit ovat olleet oman kokemukseni mukaan parhaimpia lyhyiden koodinpätkien "boilerpleittamiseen" autocomplete-tyylisten ehdotusten muodossa. Tällöin on erityisen tärkeää generoida juurikin vain lyhyitä koodipätkiä, joiden toiminnan voit ymmärtää muutamassa sekunnissa. Muuten voidaan luisua helposti vibakoodauksen puolelle, jolloin koodin laatu voi kärsiä huomattavasti.

Kielimallien välillä on paljon eroa

Olen omassa käytössäni huomannut, että agenttityökalun pohjalla toimivan kielimallin valinnalla on hyvin suuri merkitys sen käytöstä saadun kokemuksen suhteen. Esimerkiksi GPT-4:n oli hyvin vaikea seurata arkkitehtuurisia standardeja, joita olin määritellyt projektille: rajapinnat rakennettiin miten sattuu ja tiedostoja luotiin vääriin paikkoihin. GPT-5.1 codex max (kirjoitushetkellä OpenAI:n paras kielimalli koodaamiseen) ei tehnyt samoja virheitä, ja onnistui seuraamaan ohjeita hyvin.

On siis suositeltavaa, että ohjelmoija käyttää aina viimeisimpiä koodamiseen suunniteltuja malleja monimutkaisemmissa tehtävissä. Kielimalleja vertailevan listan löytää esimerkiksi täältä.

Paikallinen vai palveluntarjoajan malli?

Ihmiset helposti unohtavat paikalliset mallit: niitä pidetään tyhminä ja hyödyttöminä verrattuna isoihin kielimallipalvelujen tarjoamiin ratkaisuihin [8]. Syitä tälle käsiteltiin edellisessä kappaleessa. Paikallisilla malleilla on kuitenkin myös käyttötarkoituksensa: tärkeintä on tietää, mihin mikäkin malli pystyy. Tällöin paikallinenkin tekoälyapuri muuttuu hyödylliseksi. Esimerkiksi yksinkertaiset datanlaputustehtävät voivat olla tällaisia. Kollegani taas käytti lokaalia mallia pienten simpplien ominaisuuksien tekemiseen samalla, kun hän keskittyi tärkeämpiin tehtäviin. Malli oli hidas, mutta tällä ei sinänsä ollut väliä, sillä työ tapahtui omassa git-haarassa samaan aikaan muun työn ohessa.

Paikallisissa malleissa on myös selviä etuja palveltuihin malleihin: hinta ja yksityisyys. Jos nämä ovat tärkeitä, paikallinen malli on luultavasti paras vaihtoehto.

Toisin kuin moni saattaa luulla, on olemassa myös paikallisia malleja, joiden tehokkuus lähestyy palveluna tarjottuja isompia malleja. Esimerkki tästä on MiniMax M2. Varsinkin jos malli on koulutettu juuri haluamaasi tehtävää varten, ei se välttämättä ole paljon huonompi kuin isompi malli pilvessä. Ihan peruskoneella näitä ei kuitenkaan pyöritetä, ja 400 tuhannen tokenin konteksti-ikkunaa varten tarvitaan jo neljä 96 gigan muistin grafiikkasuoritinta.

Yhteenveto

Vaikka tekoäly ei luultavasti korvaa vielä kaikkia ohjelmistokehittäjiä, jäät mielestäni muista jälkeen, jos et osaa hyödyntää kielimalleja omassa työssäsi käytölle sopivissa tilanteissa. Erityisesti hanttihommien automatisointi ja nopea prototyyppien rakentaminen tekoälyn avustuksella nopeuttaa kehitystyötä huomattavasti. Kehittäjien on myös varottava liiallista tekoälyyn nojautumista, jotta omat taidot pysyvät tallella ja teknistä velkaa ei kasaudu projektien aikana.

Lähteet

[1] “Will AI Replace Programmers and Software Engineers?,” GeeksforGeeks. Accessed: Nov. 21, 2025. [Online]. Available: https://www.geeksforgeeks.org/artificial-intelligence/will-ai-replace-programmers-and-software-engineers/

[2] “Agentic Coding Principles & Practices,” agentic-coding. Accessed: Nov. 21, 2025. [Online]. Available: https://agentic-coding.github.io/

[3] G. Marks, “Business Tech News: Zuckerberg Says AI Will Replace Mid-Level Engineers Soon,” Forbes. Accessed: Nov. 21, 2025. [Online]. Available: https://www.forbes.com/sites/quickerbettertech/2025/01/26/business-tech-news-zuckerberg-says-ai-will-replace-mid-level-engineers-soon/

[4] E. Brynjolfsson, B. Chandar, and R. Chen, “Canaries in the Coal Mine? Six Facts about the Recent Employment Effects of Artificial Intelligence”.

[5] S. M. Hosseini Maasoum and G. Lichtinger, “Generative AI as Seniority-Biased Technological Change: Evidence from U.S. Résumé and Job Posting Data,” Aug. 31, 2025, Social Science Research Network, Rochester, NY: 5425555. doi: 10.2139/ssrn.5425555.

[6] B. Marr, “Myth Or Reality: Will AI Replace Computer Programmers?,” Forbes. Accessed: Nov. 21, 2025. [Online]. Available: https://www.forbes.com/sites/bernardmarr/2025/08/04/myth-or-reality-will-ai-replace-computer-programmers/

[7] “No company for coders. Salesforce won’t hire engineers, thanks to AI gains,” The Economic Times, Jan. 14, 2025. Accessed: Nov. 21, 2025. [Online]. Available: https://economictimes.indiatimes.com/tech/information-tech/no-company-for-coders-salesforce-wont-hire-engineers-thanks-to-ai-gains/articleshow/117096726.cms

[8] Theo - t3․gg, PewDiePie is right about AI, (Nov. 11, 2025). Accessed: Nov. 21, 2025. [Online Video]. Available: https://www.youtube.com/watch?v=qCPGzV5GfRU

[9] A. Esther, “Salesforce CEO Marc Benioff Says AI Replacing Engineers, Signals ‘White-Collar Recession,’” TechStory. Accessed: Nov. 21, 2025. [Online]. Available: https://techstory.in/salesforce-ceo-marc-benioff-says-ai-replacing-engineers-signals-white-collar-recession/

[10] Andrej Karpathy [@karpathy], “There’s a new kind of coding I call ‘vibe coding’, where you fully give in to the vibes, embrace exponentials, and forget that the code even exists. It’s possible because the LLMs (e.g. Cursor Composer w Sonnet) are getting too good. Also I just talk to Composer with SuperWhisper,” Twitter. Accessed: Nov. 21, 2025. [Online]. Available: https://x.com/karpathy/status/1886192184808149383

[11] “Vibe Coding vs. Agentic Coding: Fundamentals and Practical Implications of Agentic AI.” Accessed: Nov. 20, 2025. [Online]. Available: https://arxiv.org/html/2505.19443v1

Juhana Kuparinen
Kirjoittanut Juhana Kuparinen

Piditkö tästä artikkelista? Anna sille taputus!