Vaikka vesiputousmallilla on vieläkin vankka jalansija suomalaisissa yrityksissä, erilaiset lean-ajattelun mukaiset ketterät menetelmät ovat kasvattaneet vuosi vuodelta suosiotaan. Erityisesti ohjelmistokehityksessä ketterät menetelmät kuten Scrum ja Kanban ovat pitkälti korvanneet vesiputouksen de facto- standardimallina. Tämän kehityksen myötä aiemmat kuukausien tai jopa vuosien toimitusajat ovat vaihtuneet viikkoihin tai päiviin. Nopeampi sykli antaa aivan uudella lailla mahdollisuuden välitulosten arviointiin ja tarvittaessa korjaaviin liikkeisiin. Näin ollen käyttökokemuksista pystytään oppimaan reaaliajassa.

Ohjelmistokehityksen (development) ja perinteisen IT-ylläpidon (operations) toimintatapoja sulauttava Devops-ajattelu on tuonut lisää ketteryyttä myös sovellusten toimitusvaiheeseen. Automaattiseen laadunvarmistukseen nojaava jatkuva integraatio (continuous integration) antaa mahdollisuuden ottaa kehitetyt ominaisuudet välittömästi käyttöön ja jatkuva toimitus (continuous delivery) tekee mahdollisuudesta normaalin toimintatavan.

Vaikka kehitysmenetelmät ovat jo monissa yrityksissä ketteriä, on erityisesti yrityssovelluksissa vielä normina 90-lukulainen monoliittinen sovelusarkkitehtuuri. Palveluorientoitunut arkkitehtuuri yritti ratkaista ongelmaa 2000-luvun alkupuolella, mutta päätyi lopulta tuottamaan enemmän byrokratiaa kuin oikeita ratkaisuita. Nyt palveluorientoituneen arkkitehtuurin lupauksia on lunastamassa lukuisista pienistä sovelluksista tai palveluista sekä uudelleenkäytettävistä rajapinnoista rakentuva  mikropalveluarkkitehtuuri.

Mikropalveluissa työkalu valitaan tehtävän mukaan

Yrityssovellukset ovat usein pitkäikäisiä. Jos ei resursseja panosteta ajanmukaistuksiin, saatetaan huomata että lopulta kädessä on vuosia sitten vanhaksi käynyttä koodia, jonka ylläpito on hankalaa ja kallista. Kun sovellus rakennetaan rajapintoihin perustuen, voidaan rakennetta ja työkaluja uudistaa pala kerrallaan ja vanhentuneet teknologiat korvata uusilla, säilyttäen silti vanha rajapinta.

Mikropalveluarkkitehtuuri mahdollistaa myös entistä hienojakoisemmat teknologiavalinnat, jolloin jokaiseen tehtävään voidaan valita parhaiten sopiva työkalu. Monesti suuri ja kallis relaatiotietokanta voidaan korvata paremmin  tehtävään soveltuvalla No-SQL-kannalla, jonka resurssivaatimukset ja lisenssikulut ovat samalla relaatiokantoja pienemmät. Uusia järjestelmän osia voidaan kehittää parhailla työkaluilla rajoittumatta kenties vuosikymmen sitten tehtyihin teknologiavalintoihin.

Ohjelmistorajapinnat jakavat tietoa yrityksen sisällä ja partneriverkostossa

Sovellusrajapinnat ovat luontainen osa mikropalveluita, mutta samaan aikaan avointen rajapintojen merkitys on alkanut korostua yhä enemmän yrityksen sisäisten käyttäjien, partneriverkoston ja myös yrityksen ja asiakkaiden välisessä vuorovaikutuksessa. Kun sovellukset tiedon siiloamisen sijasta tarjoavat käyttämäänsä tietoa ja toimintoja ulos muille sidosryhmille avointen rajapintojen kautta, pääsevät palveluita pienin panostuksin hyödyntämään ne, joille rajapinnoista on oikeasti hyötyä. Tällöin IT-investoinneista saadaan enemmän arvoa, tuottavuus lisääntyy ja yrityksen sisällä vältytään päällekkäiseltä työltä.

Ensimmäisen askeleen kohti modernia sovellusarkkitehtuuria ei tarvitse olla iso. Jo olemassaolevat tietovarastot ja sovellukset ovat erinomainen lähtökohta rajapintojen käyttöönotolle. Niissä oleva tieto on todistetusti hyödyllistä ja arvokasta ja tarjoamalla pääsy tietoon sitä tarvitseville voidaan monesti tuottaa lisäarvoa pienemmin panostuksin kuin kokonaan uusia järjestelmiä rakentamalla. Vanhoja yrityssovelluksia on mahdollista modernisoida ja edelleen kehittää erottamalla suuren monoliitin toimintoja mikropalveluina, joita voidaan ehkä hyödyntää muuallakin kuin alkuperäisessä sovelluksessa.

Me Mystesillä autamme jatkuvasti asiakkaitamme toimintatapojen muuttamisessa, kun halutaan saavuttaa kustannussäästöjä, nopeampia toimituksia, varmuutta sekä vähemmän virheitä. Usein parannamme asiakkaidemme toimintaa askel kerrallaan pienten palasten kautta. Ohjelmistokehityksen maailmassa on paljon trendejä, joita kannattaa asteittain siirtyä hyödyntämään.

Kalle Pahajoki

Senior Software Developer