Sovellusasiaa

Vibekoodasin sovelluksen – mihin tarvitsen enää sovelluskumppania?

"En oikein enää näe, mistä maksaisin ulkoiselle sovelluskehittäjälle. Sain tämän tehtyä itse."

Tässä tekstissä kerromme, milloin ohjelmistokumppania kannattaa harkita ja mitä hyötyä siitä on sovelluksen omistajalle

"En oikein enää näe, mistä maksaisin ulkoiselle sovelluskehitykselle. Sain tämän tehtyä itse."

Tämä on lause, jonka olemme kuulleet viime kuukausina useammin kuin kerran. Eikä ihme. Vibekoodaus on muuttanut ohjelmistokehitystä niin paljon, että ensimmäisen version rakentaminen on monessa tapauksessa aidosti mahdollista ilman varsinaista ohjelmistokehittäjää.

Kun asiakas näyttää itse rakentamansa sovelluksen, moni sovellus näyttää yllättävänkin hyvältä. Käyttöliittymä on siisti, käyttäjät pystyvät kirjautumaan sisään, tietokanta toimii. Vielä pari vuotta sitten samaan tilanteeseen pääseminen tarkoitti kuukausien kehitysprojektia.Ymmärrämme siis täysin, miksi moni yrittäjä tai yritys pohtii, onko sovelluskumppania enää edes tarpeen hyödyntää.

Jos tekoäly kirjoittaa koodin puolestani ja saan ominaisuudet toimimaan itse, mistä minä oikeastaan enää maksan? Onko sovellustalon rooli muuttunut tarpeettomaksi vai onko se vain muuttunut? Meidän mielestämme oikea vastaus on jälkimmäinen.

Koodia on nykyään halpa kirjoittaa, se on pelkästään hyvä asia

Jos pitäisi nimetä yksi asia, jonka tekoäly on muuttanut ohjelmistokehityksessä pysyvästi, se olisi kokeilemisen helppous. Vielä muutama vuosi sitten uuden idean testaaminen vaati käytännössä kehittäjän, budjetin ja melko paljon aikaa. Nyt yrittäjä voi rakentaa ensimmäisen version itse, näyttää sitä asiakkaille ja huomata jo muutamassa päivässä, onko ideassa oikeasti potentiaalia.

Meidän mielestämme tämä on erinomainen kehityssuunta. Kaikkia ideoita ei kannata lähteä rakentamaan kuukausien projektina, jos niiden toimivuutta voidaan testata muutamassa päivässä. Vibekoodaus on tehnyt prototyyppien rakentamisesta niin nopeaa, että yhä useampi yritys uskaltaa kokeilla uusia liiketoimintaideoita. Kun pöydällä ei ole pelkkä PowerPoint-esitys tai Figma wireframe, vaan oikeasti toimiva sovellus, on helpompi saada palautetta niiltäkin, jotka tarvitsevat jotain klikattavaa ymmärtääkseen, mikä kaikki on mahdollista.

Huomaamme tämän myös omassa työssämme. Aiemmin ensimmäisissä palavereissa käytettiin paljon aikaa siihen, että yritettiin hahmottaa asiakkaan ideaa. Nyt keskustelu alkaa usein aivan eri tasolta. Sovellus on jo olemassa, sitä on testattu ja asiakkaalla on ensimmäiset kokemukset siitä, mikä toimii ja mikä ei. Juuri tämän vuoksi emme näe vibekoodausta uhkana ohjelmistokehitykselle. Päinvastoin. Se on yksi parhaista työkaluista, joita ohjelmistokehitykseen on tullut pitkään aikaan.

Muista: Ensimmäinen versio ei ole valmis sovellus

Missä sitten on sovelluskumppanin arvo tällä AI-aikakaudella?

Kun ensimmäinen versio toimii ja se on saatu kasaan verrattaen nopeasti, on hyvin luonnollista ajatella, että suurin työ on jo tehty. On helppo ajatella, että tästä eteenpäin kyse on enää uusien ominaisuuksien lisäämisestä silloin, kun niitä tarvitaan.

Todellisuudessa ensimmäinen julkaisu on usein vasta lähtölaukaus. Julkaisun jälkeen sovellusta alkavat käyttävät ihmiset, jotka eivät tiedä, miten sovelluksen pitäisi toimia. He tekevät asioita eri järjestyksessä kuin oli suunniteltu, käyttävät vanhoja selaimia, syöttävät lomakkeisiin odottamattomia arvoja ja löytävät käyttötapoja, joita kukaan ei tullut ajatelleeksi kehitysvaiheessa.

Samalla liiketoiminta alkaa elää. Asiakkaat pyytävät uusia ominaisuuksia, integraatioita muihin järjestelmiin, raportointia, uusia käyttäjärooleja ja erilaisia automaatioita. Vasta silloin alkaa näkyä, kuinka hyvin sovellus on oikeasti rakennettu.

Huomaa: Ylläpito ei tarkoita pelkästään bugien korjaamista

Sana ylläpito kuulostaa monen korvaan vähintäänkin tylsältä.

Siitä tulee helposti mieleen yksittäisten virheiden korjaaminen tai palvelimen päivittäminen silloin tällöin. Käytännössä ylläpito on kuitenkin yksi tärkeimmistä syistä, miksi sovelluskumppania edelleen tarvitaan.

Nykyaikainen sovellus ei elä omassa kuplassaan. Se käyttää kirjastoja, pilvipalveluita, rajapintoja ja kolmannen osapuolen palveluita, joiden kehitys ei pysähdy hetkeksikään. Selainvalmistajat julkaisevat uusia versioita, mobiilikäyttöjärjestelmät muuttuvat, tietoturvapäivityksiä tulee jatkuvasti ja erilaiset integraatiot uudistuvat omaan tahtiinsa.

Hakkerit ovat yhtä näppäriä käyttämään tekoälyä, kuin muutkin ja uusia uhkia syntyy tämän vuoksi sata kertaa aiempaa nopeammin. Jos sovellus käyttää esimerkiksi Stripeä, Microsoftin kirjautumista, Google Mapsia, OpenAI:n rajapintoja tai mitä tahansa muuta ulkoista palvelua, niiden muutokset vaikuttavat ennemmin tai myöhemmin myös omaan sovellukseen.

Näiden kolmannen osapuolen palveluiden muutosten vuoksi sovellus vanhenee, vaikka siihen ei lisättäisi yhtään uutta ominaisuutta. Hyvä ylläpito tarkoittaa käytännössä sitä, että näitä muutoksia ennakoidaan, tarkkaillaan ja havaittuihin muutoksiin reagoidaan hallitusti, kuin ne muuttuvat ongelmiksi.

Käyttäjän näkökulmasta paras ylläpito onkin usein sellaista, ettei sitä huomaa lainkaan. Sovellus vain toimii päivästä, kuukaudesta ja vuodesta toiseen.

Ennakoi: Tietoturva alkaa kiinnostaa vasta sitten, kun ongelma osuu omalle kohdalle

Jos ylläpito kuulostaa monen mielestä tylsältä, niin entäpä tietoturva?

Alussahan meillä on vain kova kiire nähdä, että idea toimii. Vasta sen jälkeen aletaan miettiä, mitä tapahtuu, kun palveluun kirjautuu oikeita käyttäjiä ja sinne tallennetaan oikeasti arvokasta tietoa. Uskaltaako tätä nyt muokata, vai tapahtuuko jonkun tiedoille jotain?

Tekoälyn kanssa koodatessa on hyvä muistaa, että se ei automaattisesti tiedä, millaisia turvallisuusvaatimuksia juuri sinun sovelluksellasi on. Se ei tunne yrityksesi toimintaa, asiakkaidesi vaatimuksia tai sitä, millaisia riskejä tietyn toimialan järjestelmiin liittyy. Jos tekoälylle ei erikseen kerrota, se tekee yleensä ratkaisun, joka toimii, mutta ei välttämättä sitä, jonka varaan haluaisit rakentaa liiketoimintasi.

Tietoturvassa haaste on siinä, että käyttäjän pitäisi itse tunnistaa, milloin ratkaisu on hyvä ja milloin siinä piilee riski. Miten GDPR? Mikä env. file? miten käyttäjien oikeuksia hallitaan? miten RLS-säännöt toteutetaan, miten API-avaimia käsitellään turvallisesti? Miten yhdistän Stripen? Pääseekö joku tiliini tai sovellukseen käsiksi, kenen ei kuuluisi?

Jos sinä et ole ajatellut aiemmin uraa sovelluskehittäjänä, nämä tekniset kysymykset muuttuvat nopeasti liian monimutkaisiksi.

AI-tokenien villi länsi

Vibe-koodauksen lupaus on se, että vähemmän tekniset, tai ei lainkaan tekniset ihmiset, pystyvät tekemään sovelluksia. Tänään se on vielä tietyllä tavalla totta. Vaikka tässäkin tekstissä on tuotu esiin pointteja, joissa sovelluskumppanilla on aitoa arvoa, joissain tapauksissa pelkkä oma vibetys voi riittää.

Mutta jo nyt näemme vaaran merkkejä: Uusia, entistä tehokkaampia malleja julkaistaan joka viikko. Joka kerta ne ovat myös edeltäjäänsä kalliimpia. Tokienien hinnat nousevat jatkuvasti, saat samalla rahalla aina vähemmän ja vähemmän koodia. Juuri äskettäin yksi malli suljettiin poliitikkojen vuoksi Euroopasta kokonaan vähäksi aikaa. Entä jos oma sovelluksesi olisi rakennettu pääasiassa jonkin ulkopuolisen palvelun päälle, joka olisi vain laitettu kiinni?

Tässä asiassa olemme täysin tekoälyjättien armoilla. Muutos hintoihin saattaa olla +5 tai +25 %, astuen voimaan maanantaina. Mitä tämä tekee sinun kehityksellesi, jos et saa tuotettasi ylläpidettyä ilman tekoälytyökaluja?

On eri asia olla yrittäjä ja tuotteen omistaja, kuin sovelluskehittäjä ja tuotteen ylläpitäjä.

Tekoäly on hämmästyttävän hyvä kirjoittamaan toimivaa koodia. Siitä ei enää tarvitse väitellä.

Olemme itsekin nopeuttaneet omaa kehitystyötämme sen avulla merkittävästi. Olisi turha väittää, ettei AI olisi muuttanut ohjelmistokehitystä pysyvästi. Koodi voi näyttää toimivalta ja sovellus voi käyttäytyä juuri niin kuin pitääkin, mutta se ei vielä kerro mitään siitä, kuinka helposti sitä voidaan kehittää vuoden päästä.

Onko arkkitehtuuri selkeä? Onko sama logiikka kirjoitettu viiteen eri paikkaan? Mitä tapahtuu, kun 10 käyttäjää muuttuu 10 000 käyttäjäksi?

Nämä ovat kysymyksiä, joihin tekoäly ei osaa vastata pelkän promptin perusteella. Ne perustuvat kokemukseen, suunnitteluun ja siihen, että on nähnyt vuosien aikana myös ne projektit, joissa asiat eivät menneet aivan suunnitelmien mukaan. Juuri siitä kokemuksesta ohjelmistokumppanille edelleen maksetaan.

Kumppania tarvitaan yhä enemmän siinä vaiheessa, kun ensimmäisestä versiosta halutaan rakentaa oikea tuote. Oikea tuote on sellainen, jonka turvallisuudesta huolehditaan jatkuvasti, myös julkaisun jälkeen. Sitä voidaan kehittää vielä kahden tai viiden vuoden päästä ilman, että jokainen uusi ominaisuus rikkoo kolme vanhaa.

Vaikka tekoäly kirjoittaa koodin, vastuu kokonaisuudesta jääedelleen ihmiselle.

Ja kenelle sen vastuun kuuluisi jäädä? Yrittäjälle, joka tekee vähän sovellusta, vai kehittäjälle, joka tekee joka päivä sovellusta.