Näillä teknologioilla luomme ihmisläheisiä digitaalisia palveluita 2023

Verkkopalvelut ja sovellukset ovat läsnä jokapäiväisessä arjessamme ja sisältävät pinnan alla lukuisia eri teknologioita, joista hyvä käyttökokemus ja ihmisläheinen digitaalinen palvelu koostuvat. Digitaalisten palveluiden käyttäjät ovat harvoin kiinnostuneita teknisistä ratkaisuista, jos palvelu toimii hyvin, mutta sekä sovelluskehittäjille että palvelun omistavalle organisaatiolle pellin alla olevat asiat ovat merkityksellisiä valintoja. Modernit teknologiat tarjoavat mielekästä ja tehokasta tekemistä kehittäjälle ja vastaavasti organisaatio saa käyttöönsä ylläpidettävän ja vankan ratkaisun.

Me Robulla luomme sosiaali-, hyvinvointi- ja terveysalalle ihmisläheisiä digitaalisia palveluita moderneilla teknologioilla. Missiomme on olla luotettava ja tunnustettu suomalaisen sote-alan digitaalisten ratkaisujen uudistaja: lisätä hyvinvointia kehittämällä digitaalisia ratkaisuja ihmislähtöisesti ja autamme parantamaan elämänlaatua kehittämällä parempia palveluita. Tässä artikkelissa kerromme miten me toimimme asiakasprojekteissamme tuodaksemme asiakkaillemme alan uusimman tietotaidon sekä viimeisimmät teknologiat.

Projektitutkain luo kuvaa monipuolisuudesta

Toteutimme perinteeksi muodostuneen sisäisen projektitutkain-kyselyn kevättalvesta 2023. Sen avulla saimme dataa kuudestatoista Robun ohjelmistokehitysprojektista kuluneen vuoden aikana: käytetyistä teknologioista, käytänteistä ja tiimeistä. Kokosimme kyselyn tulokset seuraavaan kuvaan.

Viime vuoden projektitutkaimen tuloksiin vertailtaessa esille nousevat samat teknologiat ja työskentelytavat, mutta myös muutoksia löytyy uusien asioiden noustessa pinnan alta. Yleisesti käyttöön vakiintuneet teknologiat pitävät pintansa, vaikka sovelluskehityksessä teknologiat ja työvälineet kehittyvät nopeasti. React, Node.js, Docker ja GitLab luovat perustan monelle projektille ajoalustana ollen usein Amazon Web Services (AWS).

Lyhyesti todettuna projekteissamme luotetaan niihin teknologioita ja sovelluskehitysmenetelmiä, joita nykyaikaisissa ja moderneissa sovelluskehitysprojekteissa on yleisesti käytössä. Olemme teknologiariippumaton yritys ja eri käyttöliittymä- ja taustapalveluteknologiat ovat projekteissa käytössä sulassa sovussa ja niissä käytetään avoimen lähdekoodin teknologioita.

Projektien tärkeissä osa-alueissa pienoista muutosta

Teknologia on muuttuva ala ja etenkin sovelluskehityksen parissa työskentelevät ovat kiinnostuneita miten projekteissä käytetyt teknologiavalinnat muuttuvat vuosien aikana.

Kyselyn tuloksista pystymme nostamaan projekteistamme muutamia tärkeitä ominaisuuksia.

  1. Teemme töitä monitoimittaja-tiimeissä yksi projekti kerrallaan noudattaen ketterän ohjelmistokehityksen Scrum-pohjaisia malleja ja Kanbania. Ketterä kehitys ei kuitenkaan näy suoraan tuotantoonvienneissä, sillä se on usein epäsäännöllistä.
  2. Rakennamme Web-käyttöliittymät Reactilla, joka on saanut tuekseen Next.js:n ja Vue on kasvattanut osuuttaan. Mobiilissa keskitymme React Nativeen.
  3. Taustapalveluissa Node.js:ää tehdään yhä enemmän TypeScriptillä ja Python on tasaosuuksissa Javan kanssa. Kotlin korvaa Javaa hiljaksiin. Taustapalveluissa on usein ajossa Hasura.
  4. Projektimme ovat yleisimpien pilvipalvelutarjoajien ympäristöissä kontitettuina mikropalveluina, sekä Kuberneteksessa, mutta seassa on edelleen myös monoliittisia ratkaisuja. AWS on kirinyt Azuren kanssa Googlen pilvipalveluiden ohitse.
  5. Jatkuvassa integroinnissa GitLab CI osoittaa edelleen vahvuutensa, mutta Azure-projektit ovat aivan kannoilla.
  6. Sovellusdataa käsittelemme enimmäkseen relaatiotietokannassa.
  7. Sovelluksen testaus on yleisesti automatisoitua, lisättynä testaajilla, sekä toteutetut ominaisuudet ovat yksikkö-, integraatio- ja end-to-end testattuja.

Mitä seuraavaksi?

Projektitutkaimen avulla saamme paremmin seurattua ja yhteenvedettyä projekteissamme käytettyjen teknologioiden trendiä. Kuvan avulla pystymme helposti havainnollistamaan esimerkiksi työnhakijalle millaista työskentely projekteissamme on ja mitä osaamista kannattaa kehittää. Tuloksista näkee myös hieman alan yleisten trendien suuntaa: mitä teknologioita ohjelmistokehityksessä käytetään nyt ja mitkä ovat väistymässä. Teemme töitä pystyäksemme tarjoamaan uusinta ja hyväksi todettua teknistä osaamista asiakkaillemme, joten alan kehityksen seuraaminen on tärkeää.

Yleisellä tasolla voi sanoa, että muutaman viimeisen vuoden ajan yleisesti käytetyt teknologiat ovat olleet vakaita ja helppoja valintoja: käyttöliittymä Reactilla, kielenä TypeScript, taustapalveluissa Node.js tai Java/Kotlin, rajapinnoissa GraphQL tai perinteisempi REST. Build-työkaluna Webpack, sovelluksen paketointi Dockeriin ja se laitetaan ajoon AWS:ään tai GCP:hen. Joitain osia kokonaisuudesta voi tarpeen mukaan vaihdella, esimerkiksi rakentaa käyttöliittymä Sveltellä, käyttää taustapalveluissa Pythonia ja ajaa palvelua Serverlessinä. Mahdollisuuksia on monia, ja ammattitaitoisten kehittäjien tehtävänä onkin valita ne parhaimmat ratkaisut projektikohtaisesti.

Kattavammin käytettyjen teknologioiden ja tuotteiden trendeihin maailmalla menevät muun muassa Zalandon teknologiatutka ja Thoughtworksin tutka, jotka luovat syvempää kuvaa omaksuttavista, arvioitavista, kokeiltavista ja varauduttavista teknologioista. Käyttöliittymäteknologioihin keskittyvä State of JS -kysely luo hyvää näkökulmaa alan trendeihin, joskin kapealla sektorilla. Etenkin JavaScript-kirjastojen käyttöaste vs. mielipiteet -nelikenttä ajan suhteessa kuvaa hyvin teknologioiden ajankohtaisuutta ja siitä voi hieman tulkita, minkä kirjaston käyttöä kannattaa lisätä ja minkä käyttämistä kannattaa vähentää, jos haluaa seurata trendejä.

Sovelluskehittäjien maailmassa on hyvä muistaa, että mielipiteet ovat vahvoja ja todellisuus on usein tylsempää kuin tarinat. Toisaalta viimeisen vuoden aikana pinnalle paremmin nousseita valintoja käyttäneenä tulevaisuus näyttää valoisammalta. Vite, Vitest, esbuild, Playwright, Testing Library, pnpm, TypeScript, Next.js ja Svelte ovat tällä hetkellä kuuminta mitä projektissa kannattaa käyttää. Perinteisemmät React, Vue.js, Cypress, Jest, Nuxt ja npm tulevat lähituntumassa. Webpack on selvästi menettämässä suosiotaan ja en kyllä yhtään ihmettele. Sovelluskehitys ei lepää laakereilla, vaan uusia teknologioita syntyy haastamaan vasta pinnalle nousseita ja hieman jo ehkä jämähtäneitä valintoja. Piireihin pyrkivistä nousukkaista mainittakoon Solid.js, Turbopack, Rome, Deno ja Remix.

Heräsikö mielenkiintosi uudistaa suomalaista sosiaali- ja terveydenhuoltoalaa ja rakentaa nykyaikaisia ratkaisuja moderneilla teknologioilla? Katso avoimet työpaikkamme ja laita hakemusta!

Marko Wallin
Marko Wallin