Neljä tärkeintä asiaa pohdittavaksi teknologiavalinnassa

Digipalvelun tarjouksissa ehdotetaan usein erilaisia toteutustapoja ja vaihtoehtoja. Saatat pohtia esimerkiksi, onko sillä merkitystä rakennetaanko mobiilisovellus Flutterilla, hybridinä vai natiiviteknologialla, tai mitä pilvipalvelun valinnassa pitäisi huomioida. Tästä blogista saat pintaraapaisun teknologiavalintojen maailmaan ja tavallisimpiin valintakriteereihin.

Käsittelemme teknologiavalintoja näistä näkökulmista:

  1. Kustannukset ja käytössä olevat resurssit.
  2. Teknologia tuntuu käyttäjälle.
  3. Kehittäjillä on aina omat mieltymyksensä.
  4. Arkkitehtuuri: Skaalautuvuus ja modulaarisuus.

Kustannukset ja käytössä olevat resurssit.

Kustannukset ja käytettävissä oleva budjetti ohjaavat teknologiavalintoja. Se korostuu erityisesti mobiilikehityksen maailmassa. Suosittelemme kiinnittämään huomiota jo varhaisessa vaiheessa myös jatkokehitykseen ja sen jouhevuuteen – vaikuttaahan se merkittävästi tuotteen elinkaarikustannuksiin.

Tuoteportfoliota on helppoa ylläpitää ja jatkokehittää, kun toteutusteknologiat ovat kohtuullisen yhtenäiset. Kehittäminen onnistuu pienemmällä omalla tiimillä tai toimittajajoukolla, kun jokaiseen järjestelmään ei tarvita erikoisasiantuntijaa. 

Siksi myös uusien teknologiavalintojen lähtökohtana kannattaa olla yrityksesi nykyinen teknologia-stack. Edellytyksenä on tietenkin hyvät kokemukset niiden käytöstä ja soveltuvuudesta uuteen tarpeeseen.

Tiesitkö?

Flutter on noussut viime aikoina monen kehittäjän suosioon. Sen arvolupaus perustuu siihen, että samalla niin kutsutulla cross-platform-teknologialla yksi kehittäjä voi toteuttaa digipalvelun kaikki versiot, kuten web-sovelluksen, Android-sovelluksen, iOS-sovelluksen ja desktop-sovelluksen tietokoneelle. Jos ne toteutetaan natiiviteknologioilla, jokaiselle sovellukselle tarvitaan usein oma asiantuntija.

Flutter-kehitys on siis nopeaa, vaatii vähemmän resursseja ja on sen ansiosta usein kustannustehokkain toteutustapa toteuttaa sovellus usealle eri alustalle.

Teknologia tuntuu käyttäjälle.

Teknologiavalinta vaikuttaa digipalvelun käytettävyyteen loppuasiakkaan näkökulmasta. Verkkopalveluiden UX:n osalta ei ole suurta merkitystä, onko taustajärjestelmä koodattu Nodella vai Rubylla, mutta mobiilisovelluksissa teknologian merkitys korostuu.

Mobiilisovelluksissa kaikista kevyimmät hybridiratkaisut vaativat isoja kompromisseja käyttökokemuksen suhteen:

  • Kevyt hybridisovellus on nopea toteuttaa, jos samalla tehdään responsiivinen web-sovellus, jonka saa kevyeen natiivikuoreen pyörimään pienellä vaivalla.
  • Kompromissina näkymien tai sivujen latausajat kasvavat, sovellus on helposti epävakaa ja käytön sujuvuus kärsii.

Harva isompi yritys kehittää enää mobiilisovelluksia kevythybriditeknologialla saamansa huonon asiakaspalautteen vuoksi.

Cross-platform-teknologioista aikaisemmin mainittu Flutter ja React Native kilpailevat tällä hetkellä natiiviteknologioiden (Kotlin ja Swift) kanssa mobiilisovellusten herruudesta. Teknologioissa on selkeitä eroja, mutta kokemuksemme mukaan kaikilla voi toteuttaa laadukkaita sovelluksia. 

Jos et ole varma onko tekninen suorituskyky ja käyttökokemus riittävällä tasolla, suosittelemme rakentamaan teknisen PoC:in (proof of concept) päätöksenteon tueksi. PoC:lla voit selvittää esimerkiksi kuinka hyvin suunnitellun mobiilisovelluksen käyttäjäkokemus toteutuu Flutterilla ja miten se taipuu web-sovellukseksi. Et joudu tekemään päätöstä mutun pohjalta!

Kehittäjillä on aina omat mieltymyksensä.

Muistutamme aina pitämään digipalvelun jatkokehityksen mielessä, vaikka palvelu olisi vasta suunnittelupöydällä. Projektitiimi siirtyy nopeasti seuraavien projektien pariin, jos kehitykseen tulee julkaisun jälkeen tauko. Mielestämme kehittäjien saatavuuden pitäisikin olla yksi tärkeimmistä kriteereistä teknologiavalinnassa. Laajasti käytössä olevat teknologiat ovat avainasemassa osaajien löytämiseksi, oli sitten kyse oman tiimin palkkaamisesta tai kumppanien kanssa toimimisesta. 

Esimerkiksi tällä hetkellä saatavuus on hyvää web-kehittäjien osalta Node.js + React + Typescript -osaajista. Voit tutustua eri teknologioiden suosioon ja trendeihin tutustumalla Stackoverflown tutkimukseen johon on vastannut 80 000 ohjelmistokehittäjää maailmanlaajuisesti.

Tutustu kehittäjien ylläpitämään listaan parhaista ja peläytyimmistä teknologioista

Meillä ohjelmistokehittäjillä on aina omat mieltymyksemme eri teknologioihin. Codematellakin on asiantuntijoita kymmenistä eri teknologioista. Se on tietenkin asiakkaillemme arvokasta, sillä osaamista löytyy monenlaisiin tarpeisiin. Viime aikoina olemme kuitenkin yhtenäistäneet teknologiavalintoja, jotta pystymme tarjoamaan riittävästi asiantuntijoita asiakkaan tiimiin, mentoroimaan toisiamme ja toteuttamaan helpommin myös huolenpidon kehittämillemme järjestelmille. Tärkeimmät kriteerit teknologiavalinnoillemme ovat yleinen kysyntä markkinassa, kehittäjäystävällisyys ja suosio, sekä joustavuus toteuttaa erityyppisiä ratkaisuja tehokkaasti. Teknologia-stack ei ole tietenkään kiveen hakattu, vaan elää teknologian ja markkinan kehityksen mukana jatkuvasti.

Arkkitehtuuri: Skaalautuvuus ja modulaarisuus.

Kannattaako palvelu rakentaa itsenäisistä mikropalveluista (microservice) vai suositaanko yksinkertaisempaa arkkitehtuuria?

Itsenäisistä mikropalveluista rakennetulla arkkitehtuurilla tähdätään siihen, että järjestelmän osia kehitetään toisistaan riippumatta. Olemme kuitenkin tässä mallissa törmänneet verrattain usein tilanteeseen, jossa infrastruktuurin rakentaminen on muodostunut kehityksen pullonkaulaksi. Suunnittelussa kannattaa arvioida tarkkaan, kuinka kompleksinen rakenne on todella tarpeen. Tilanteesta riippuen yksinkertaistettu arkkitehtuuri nopeuttaa kehitystä ja mahdollistaa siirtymisen kompleksimpaan arkkitehtuurin tulevaisuudessa, kun sille on oikeasti tarve.

Arkkitehtuuri liittyy myös palvelun skaalautuvuuteen. Erityisesti pilviympäristöissä näkee usein ratkaisuja, joissa arkkitehtuurivalintoja on määrittänyt jokin tulevaisuuden skenaario, jossa käyttöliittymiä ja käyttötapauksia on paljon nykyistä enemmän. Jos arkkitehtuuri on suunniteltu turhan suurille käyttäjämäärille, se lisää toteutuksen monimutkaisuutta ja kustannuksia. Usein palvelun hienostuneempi skaalaaminen on järkevämpää sitten, kun se todella on ajankohtaista.

Esimerkiksi serverless-toteutukset hyödyntäen AWS:n palveluita, kuten Lambda, tai Google Cloudin palveluita, kuten App Engine ja Cloud Functions, tarjoavat mielenkiintoisia mahdollisuuksia täysin skaalautuvaan pilvi-infraan. Juoksevat kustannukset ja pystytykseen tarvittava työmäärä kannattaa kuitenkin arvioida kunnolla. Selvitä ensin, onko serverless-toteutus parin vuoden aikajaksolla kannattava ratkaisu ja miten se eroaa perinteisen pilvi-infran kustannuksista. Vaihtaminen perinteisempien dedikoitujen instanssien ja serverless-toteutusten välillä myöhemmin on melko kallista. Serverless-arkkitehtuuriin pitää myös löytyä tiimistä erityisosaamista.

Jos kyseessä on kevyempi web-sovellus tai vaikka tuotteen pilotti, liikkeelle pääsee parhaiten kun laittaa palvelun pyörimään Herokun tyyppisen palvelun päälle, eikä tuhlaa yhtään aikaa pilviympäristön tunkkaamiseen. Kun käyttäjämäärät kasvavat, on helpompi tehdä investointi palvelun siirtämiseksi vaikkapa AWS:ään, jossa kustannusrakenne ja tuki suurille käyttäjämäärille ovat paremmat.

Tiesitkö?

Pilviympäristöön liittyy muutamia muita erityispiirteitä.Yritykset valitsevat usein AWS:n, Azuren ja Googlen pilviympäristöjen välillä. Jokainen pilvipalveluiden tuottaja tarjoaa perus hostingin lisäksi omia pilvinatiiveja ratkaisuja.

Pilvinatiivit palvelut tarjoavat valmiita skaalautuvia ratkaisuja muun muassa tietokantoihin, tiedostojen tallennukseen, jonoihin ja rajapintojen hallintaan. Ne ovat erinomaisia tapoja toteuttaa suurempiakin järjestelmiä. Huomaa kuitenkin, että näiden palveluiden käyttö kasvattaa vaihtamiskustannuksia, jos palvelu halutaan siirtää myöhemmin esimerkiksi Googlesta Azureen.

Pilviympäristön vaihtoon liittyy usein uudet IT:n ohjeistukset ja määräykset (policyt). IT:ltä kannattaakin varmistaa, jos organisaatiossa on määritelty, missä pilviympäristössä digipalvelut sijaitsevat, ja huomioida ne jo suunnitteluvaiheessa.

Pyydä eri näkökulmia valintasi avuksi.

Teknologiatrendit muuttuvat nopeasti ja kehityksen kelkassa voi olla vaikeaa pysyä. Esimerkiksi suorituskyky ei ole enää nykyisin kovinkaan merkityksellinen kriteeri teknologiavalinnassa. Osaavissa käsissä kaikki yleisesti käytössä olevat teknologiat mahdollistavat suorituskykyisten ja tietoturvallisten järjestelmien toteutuksen.

Teknologiavalinta vaikuttaa kuitenkin edelleen moneen. Lisäksi eri teknologioille löytyy varmasti aina intohimoinen suosittelija ja vastustaja.

Siksi valinnassa kannattaa konsultoida eri palveluntarjoajia ja arkkitehteja. Ennen lopullista valintaa suosittelemme käymään löydökset ja suositukset läpi myös yrityksen IT osaston kanssa, jotta lopullinen ratkaisu sulautuu saumattomasti osaksi kokonaisuutta.

C icon
dash icon das icon

Haluatko kuulla lisää?

Ota yhteyttä Janneen

Lisää tarinoita

Tsekkaa blogistamme lisää mielenkiintoisia tarinoita

Katso kaikki artikkelit