Blogi

Rajapintakehitys – kokemuksiamme sudenkuopista ja toimivista periaatteista

Katri Laakso Bisnes Teknologia

Kehittäjämme Mikko istuu työpöydän ääressä toimistolla tausta sumeana Kehittäjämme Mikko lähikuvassa istuu työpöydän ääressä

Ohjelmistoprojekteissa törmäämme jatkuvasti tarpeisiin luoda uusia integraatioita eri järjestelmien välille. Tämä ei sinällään ole yllätys, sillä digitaalisten järjestelmien ja palveluiden määrä paisuu jatkuvasti. Oli yrityksen tarpeena sitten prosessien virtaviivaistaminen, datan liikkumisen varmistaminen tai käyttökokemuksen kehittäminen, siihen tarvitaan rajapintoja ja toimivia integraatioita.

Istutimme kokeneet fullstack-kehittäjämme Mikko "Puppe" Hirvosen ja Henri "Tohtori" Vesalan Fraktion hämyiseen loungeen. Noin 15 minuutin pituisella videolle he kertovat, mikä rajapintojen kehityksessä heitä erityisesti kutkuttaa, mitkä ovat rajapintojen tärkeimmät ominaisuudet ja millaisiin haasteisiin yleensä kehityksessä törmäämme.

 

Keskustelemassa kehittäjämme Mikko Hirvonen ja Henri Vesala.

Rajapinnan tulee olla luottamuksen arvoinen 

API:t ja tietokannat saattavat näyttäytyä hähmäisen asiana heille, jotka eivät niiden parissa työskentele. Digitaalinen palvelu tai tuote mielletään usein vahvasti sen visuaalisen käyttöliittymän kautta. Graafisen käyttöliittymän merkitys käyttökokemuksessa on helpompi hahmottaa, vaikka monet käytettävyysongelmat ratkaistaan oikeasti back-endissä. Rajapinta voi olla kriittisen tärkeä osa tuotetta ja käyttökokemusta.

Erityisesti jos yrityksen tavoitteena on tarjota tai myydä tuotettaan ulkopuolisten tahojen käyttöön, on sen rajapintojen toimivuus kaikki kaikessa. Tuote ei herätä luottamusta, jos sen rajapinta ei ole kunnossa, eikä siihen ole käytännöllistä integroitua. Silloin usein jonkun toisen kilpailijan tuote ajaa ohi.

Toimiva rajapinta ei ole kilpailuetu vaan välttämättömyys

Digitaalisessa liiketoiminnassa rajapinta voi olla ratkaiseva tekijä, miksi käyttöön valitaan joku tietty tuote. Ohjelmistokehittäjien näkökulmasta rajapintojen toimivuus on erittäin tärkeää. (Vähättelemättä toimivuuden tärkeyttä myös bisneksen ja asiakkaiden näkökulmasta.)

Kehittäjämme nostavat esille rajapintojen tärkeimmiksi ominaisuuksiksi hyvän dokumentaation, helppokäyttöisyyden, ja sen, että rajapinta tekee sen, minkä lupaa. Nämä määrittävät usein kehittäjän näkökulmasta, mikä tuote otetaan käyttöön. Nykypäivänä voidaan sanoa, että tuotteen hyvä rajapinta on jo vaatimus, ei enää erottuvuustekijä.

Asiat verkottuvat keskenään systeemeiksi ja digitaalisuus tulee vahvasti osaksi kaikkia prosesseja ja tekemistä. Tietoa ja työkaluja pitää pystyä käyttämään ja hyödyntämään ristiin. Miksi yritys ottaisi käyttöön järjestelmän, jota ei ole mahdollista integroida yrityksen omaan ERPiin? Pirstaleiset järjestelmät, datan siiloutuminen ja työntekijöiden kuormitus eivät ole kenenkään toiveena. Tuotteella, jonka rajapinta ei ole kunnossa, ei ole lupaavaa tulevaisuutta.

Usein toistuvia ongelmia

Rajapintojen parissa työskennellessä törmäämme usein samoihin ongelmiin. Näitä ovat muun muassa:

  1. Rajapinnan kokonaisuutta ja elinkaarta ei ole suunniteltu tai mietitty
  2. Rajapinnan dokumentaatio on puutteellista, sitä ei ole tai se on väärin
  3. Dataa ei tarjota käyttäjille optimaalisella tavalla

Mitä pienempi toimija, sitä todennäköisemmin kokonaisuuden hallinta on puutteellista. Näissä tilanteissa näkyy usein, että rajapinta on syntynyt vastaamaan johonkin akuuttiin tarpeeseen, eikä sitä ole mietitty kokonaisuutena. Tuloksena pahimmassa tapauksessa sillisalaatti ja erilaiset purkkaratkaisut.

Krooninen ongelma rajapintakehityksessä on dokumentaatio ja sen puute. Rajapinta on käyttäjälleen musta laatikko, joten dokumentaatio on ainut asia, johon luottaa. Jos dokumentaatiosta puuttuu tieto, mitä rajapinnasta on mahdollista hakea, sen käyttäjä ei voi tietää sellaisen olemassaolosta. Puutteellinen dokumentaatio voi näyttäytyä bisneksen puolella negatiivisena vaikutuksena: Rajapintaa ei oteta käyttöön, koska ei tiedetä sen kaikista ominaisuuksista ja mitä se voi mahdollistaa.

Yksi tyypillinen ongelma on, että rajapinnassa näkyy, millä kielellä se on kehitetty. Se palauttaa käyttäjälleen tietona sitä sun tätä ja esimerkiksi virhetilanteissa, voi nähdä, että rajapinta mallintaa suoraan taustalla olevan tietokannan. Käyttäjälle se on harvoin järkevin tapa esittää dataa tai kertoa virheestä. Nopea ratkaisu kehityksessä, mutta huono ratkaisu käyttäjäkokemukselle. 

Kehitys kehittyy – hyvät periaatteet säilyvät

Huolimatta siitä, mikä teknologia on käytössä, hyvät ja toimivat periaatteet rajapintakehityksessä eivät muutu. Samoja asioita ja mainittuja sudenkuoppia sekä haasteita pitää huomioida teknologiasta riippumatta. Jotkut teknologiat tukevat näitä periaatteita paremmin kuin toiset. Esimerkiksi GraphQL:n yksi etu on sen toimintaedellytyksiin kuuluva rajapintakuvaus, joka takaa paremman dokumentaation.

Teknologiavalinta riippuu aina siitä, mitä projektissa halutaan saavuttaa ja millaisilla toiminnoilla. Koska toimialamme ja teknologiat kehittyvät jatkuvasti, ei tässäkään asiassa kannata rakastua yksittäiseen teknologiaan, vaan hyviin periaatteisiin.

 

 

Haluatko oppia lisää? Tutustu GraphQL-valmennukseemme.

Tarvetta rajapintojen ja integraatioiden kehitykselle? Lue lisää palvelusivuiltamme.