Tekoäly mullistaa ohjelmistokehitystä – 5 konkreettista esimerkkiä

Tekoälymurroksesta puhutaan paljon, mutta konkreettinen puhe muutosalueista on usein kateissa. Olen käyttänyt AI:ta aktiivisesti ja pyrkinyt käytännön kautta ymmärtämään nykyisen AI:n kyvykkyyden ja merkityksen. Samalla olen pohtinut, mitkä asiat muuttuvat yrityksissä konkreettisesti. Näitä aiheita käsittelen tässä blogitekstissä.

Tekoälyn aiheuttaman muutoksen ytimessä ovat asiat, joita se osaa tehdä.

  • Palastelee asiat pienemmiksi ongelmiksi. Ohjelmistokehityksessä tämä tarkoittaa esimerkiksi vaatimuksen pilkkomista kehitystehtäviksi. Perinteisesti tätä ovat tehneet tuotehallinnan asiantuntijat.
  • Esittää nopean ensimmäisen ratkaisun ja tuottaa erilaisia variaatioita. UX- ja UI-suunnittelu ovat olleet perinteisesti käsityötä. Lopulta UX-työ kuitenkin perustuu yleisiin periaatteisiin tai yrityksen UX-valintoihin. Näiden pohjalta tekoäly voi tuottaa nopeasti käyttöliittymiä, joita voidaan varioida nopeassa tahdissa kohti lopullista käyttöliittymää.
  • Tuottaa koodia, eli muuttaa tekstinä kuvatun vaatimuksen koodiksi. Ennen tämä tapahtui kirjain kirjaimelta, kenties rivin tai funktion nimen automaattisesti täydentäen. Tekoäly synnyttää koodia vaatimuksesta useisiin tiedostoihin ilman, että ihminen kirjoittaa yhtäkään koodiriviä.
  • Tuottaa testitapauksia ja testausautomaatiota. Kun toteutus on valmis, siihen on hyvä tuottaa perustestitapaukset tekoälyn avulla. Ihmisen rooli on pohtia testattavat rajatapaukset ja testauksen laajuus.

Ihminen on ollut nykyisen ohjelmistokehityksen prosessien ytimessä. Ihmiset haluavat kuulua tiimeihin ja toimivat tehokkaasti, kun kokevat tekevänsä päätöksiä ja olevansa autonomisia.  Tekemisen aikarajat ja mittaaminen pakottavat meitä tehokkaammiksi. AI-apuria puolestaan ei tarvitse motivoida autonomiaa tarjoamalla – kun ihminen ei ole enää tekoälyn myötä kehityksen pullonkaula, voidaan ohjelmistokehitys organisoida optimiksi.

 

5 tapaa, joilla tekoäly muuttaa ohjelmistokehitystä

  1. Kehityssykli nopeutuu valtavasti

Nykyisellään esimerkiksi normaali scrum-sykli on kaksi viikkoa. Aika jakautuu tiimin kannalta kehitykseen tutustumiseen, kehittämiseen sekä loppukiriin. Tekoäly ei vaadi aikaa orientoitumiseen vaan suoltaa koodia heti. Lopputuloksena kehityssykli ensin lyhenee, ja lopulta voidaan päätyä esimerkiksi kahden vuorokauden sykleihin.

  1. Kehityksen pullonkaula siirtyy koodin tuottamisesta vaatimuksien määrittelyyn ja ratkaisun validointiin

Koodin tuottaminen on ihmiselle hidasta ja vaatii osaamista sekä laajaa ymmärrystä. AI tulee tuottamaan koodia suuria määriä vaatimuksien pohjalta, ja myös perusautomaatiotestit syntyvät AI:lta nopeasti.  Tuotekehityksen ongelmana ei ole enää ohjelmointikoodin tarkan syntaksin ja puolipisteiden paikka, vaan ratkaistavan ongelman kuvaaminen ja tavoiteltavan ratkaisun toimivuuden varmistaminen.

  1. Asiakas-/vaatimustiimi on kehityksen ytimessä

Nykyisellään asiakasvaatimukset kartoitetaan haastatteluin ja asiakkaiden toimintaa seuraamalla. Tuotehallinnan asiantuntijat tekevät tämän pohjalta luovaa työtä ja kehittävät käyttötapauksia ja käyttöliittymiä. Mitäpä jos kaikki tämä tehtäisiin vuorovaikutuksessa esimerkiksi käyttöliittymäehdotuksen ääressä? Keskustelun kautta asiantuntijat muokkaisivat yhdessä käyttöliittymää ja prosesseja kehittyvän prototyypin äärellä. Tiimin tehtävänä olisi vaatimusten kuvaamisen lisäksi myös verifiointi, eli tuotetun ratkaisun toiminnallisuuden varmistaminen. Toimintarytminä voisi olla esimerkiksi aamupäivällä uusien vaatimusten kehittäminen ja iltapäivällä toteutetun ratkaisun verifiointi.

  1. Arkkitehtuurit muuttuvat yhtenäisemmiksi

Monet arkkitehtuuriratkaisut perustuvat ihmisten mieltymyksiin tai osaamiseen. Tiimit kokevat omistajuutta ratkaisuun, kun saavat olla valitsemassa käytettäviä teknologioita ja ratkaisuja. Ihmisten sijaan AI-apuria ei kuitenkaan tarvitse motivoida autonomiaa tarjoamalla. Lopputuloksena syntyy teknologisesti yhtenäisempiä ratkaisuja. Looginen rakenteellisuus tulee olemaan tarpeen yhä AI:nkin aikana, joten täyteen monoliittiin emme ole menossa, mutta teknologinen hajanaisuus vähenee.

  1. Sovelluskonsultointi automatisoituu nopeasti

Valmisratkaisujen konfigurointi asiakasvaatimusten mukaisiksi on iso teollisuus. Siinä on kysymys asiakasvaatimusten ymmärtämisestä ja niiden perusteella oikean yhdistelmän valitsemisesta. Taustalla ovat vielä toimittajan tuntemat tehokkuuden parhaat käytännöt. AI:lle ongelma on kuitenkin varsin suoraviivainen. On mielenkiintoista nähdä, milloin kohtaamme ensimmäiset konfiguraatioapurit.

 

Mitä muutokset tarkoittavat liiketoiminnan kannalta?

Uusia entistä kyvykkäämpiä ratkaisuja syntyy vauhdilla. Legacy-ratkaisujen on vaikeaa vastata tähän kehitysnopeuteen. Haasteena ovat esimerkiksi nykyinen toiminnallisuusjoukko ja data – oikeastaan kukaan ei tiedä, miten asiakkaat käyttävät nykyistä ratkaisua. Tämä estää legacy-ratkaisun nopean kehittämisen.

Ohjelmistokehityksessä osaaminen muuttuu entistä tärkeämmäksi. Peruskoodin tuottaminen menettää arvoaan, ja kaikki manuaalisesti tehtävä tekeminen automatisoidaan. Erikoisasiantuntemus, kuten pilviteknologioiden osaaminen tai jonkin teollisuuden asiantuntemus, säilyvät yhä arvokkaina. Nyt tätä osaamista pystytään vivuttamaan entistä tehokkaammin AI-apureiden voimin.

Ratkaistavan ongelman tuntemus, hyvä yhteys asiakkaisiin sekä kyvykkyys myydä ja markkinoida tulevat olemaan entistä tärkeämpiä tulevaisuudessa. Tekniikka ratkaisee entistä nopeammin entistä laajempia ongelmia. Tämän kyvykkyyden kääntäminen asiakkaiden liiketoiminnan parantamiseksi ja tehostamiseksi on ydinkyky. Ainakin toistaiseksi ihmiset tekevät päätöksiä liiketoimintojen johdossa.

 

Elämme valtavan mielenkiintoista aikaa tekoälyn kehityksen kannalta!

 

Kirjoittaja: Heikki Tukiainen, Panostajan kehitysjohtaja