React vai VueJS? Node.js vai Java? AWS vai GCP? Sovelluskehitys on täynnä valintoja ja teknologioita, joka näkyy hyvin perinteeksi muodostuneessa Robun sisäisessä projektitutkain-kyselyssä. Lue lyhyt yhteenveto millaisia vastauksia saimme 14:sta aktiivisesta ohjelmistokehitysprojektistamme ja millä teknologioilla autamme kehittämään sote-alan palveluita.
Sovelluskehitysprojekti sisältävät useita teknologioita ja harvoin käyttäjät ovat kiinnostuneita siitä, mistä rakennuspalikoista hänen käyttämänsä verkkopalvelu tai sovellus on rakennettu. Pinnan alla olevat ratkaisut ja asiat ovat kuitenkin merkityksellisiä sekä sovelluskehityksen ammattilaiselle että palvelun omistavalle organisaatiolle, sillä modernit teknologiat tarjoavat mielekästä ja tehokasta tekemistä, ja vastaavasti organisaatio saa käyttöönsä ylläpidettävän ja vankan ratkaisun.
Me Robulla luomme sosiaali- ja terveydenhuoltoalalle nykyaikaisia ratkaisuja moderneilla teknologioilla. Visiomme on lisätä hyvinvointia parantamalla sote-alan digitaalisia ratkaisuja ihmislähtöisesti. Luoda palveluita, jotka helpottavat ja tehostavat jokapäiväistä työtä. Mutta mitä tämä tarkoittaa käytännössä? Tässä artikkelissa kerromme miten me toimimme tuodaksemme asiakkaillemme alan uusimman tietotaidon sekä viimeisimmät teknologiat ketterästi ja käyttäjälähtöisesti.
Projektitutkain kertoo monipuolisesta osaamisesta
Toteutimme jo perinteeksi muodostuneen sisäisen projektitutkain-kyselyn alkuvuodesta 2022. Sen avulla saimme dataa neljästätoista Robun aktiivisesta ohjelmistokehitysprojektista: 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. Vaikka sovelluskehityksessä teknologiat ja työvälineet kehittyvät nopeasti, pitävät hyväksi havaitut ja luotettavat asiat pintansa. React, Docker, GitLab ja Node.js luovat perustan monelle projektille ajoalustana ollen usein Google Cloud Platform (GCP) tai Amazon Web Services (AWS).
Lyhyesti todettuna projekteissamme hyödynnetään niitä 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 vähän muutosta
Teknologioista ja menetelmistä kiinnostuneille pystymme nostamaan projekteistamme muutamia tärkeitä ominaisuuksia kyselyn tuloksista, jotka ovat muuttuneet edellisvuodesta.
- Teemme töitä monitoimittaja-tiimeissä yksi projekti kerrallaan noudattaen ketterän ohjelmistokehityksen Scrum-mallia, mutta mukaan on tullut Scrumban ja Kanban sekä erilaisten välimuotojen malleja. Tämä myös näkyy tuotantoonviennin epäsäännöllisyyden osuuden kasvamisena.
- Rakennamme Web-käyttöliittymät Reactilla, joka jatkaa vahvaa taipaletta, ja Angular on noussut Vuen rinnalle. Mobiilissa teknologiat jakautuvat natiivin, React Nativen ja progressiivisten sovellusten kesken.
- Taustapalveluissa Node.js ja Python ovat edelleen selkeästi yleisimpä valintoja, mutta PHP ja Ruby on Rails ovat syöneet etenkin Javan osuutta.
- Projektimme ovat yleisimpien pilvipalvelutarjoajien ympäristöissä kontitettuina mikropalveluina, mutta seassa on edelleen myös monoliittisia ratkaisuja. AWS on kirinyt konesalin kanssa Googlen pilvipalveluiden rinnalle.
- Jatkuvassa integroinnissa GitLab osoittaa edelleen vahvuutensa.
- Sovellusdataa käsittelemme enimmäkseen relaatiotietokannassa.
- Sovellukseen toteutetut ominaisuudet ovat yksikkö- ja end-to-end testattuja
Mitä seuraavaksi?
Projektitutkaimen avulla saamme paremmin seurattua ja yhteenvedettyä projekteissamme käytettyjen teknologioiden trendiä. Lisäksi kuvan avulla voimme helposti kertoa 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ä sivuun. Teemme töitä pystyäksemme tarjoamaan aina 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 tai Vuella, kielenä TypeScript, taustapalveluissa Node.js tai Java, 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 kasata kokonaisuuden Vitellä, käyttää taustapalveluissa Pythonia ja ajaa palvelua Serverlessinä. Ja ei kannata unohtaa taustapalveluissa kehyksiä kuten Nuxt.js ja Next.js tai Expressin korvaamista Fastifyllä. Mahdollisuuksia on monia, ja ammattitaitoisten kehittäjien tehtävänä onkin valita ne parhaimmat ratkaisut projektikohtaisesti.
Syvemmälle käytettyjen teknologioiden ja tuotteiden trendeihin maailmalla menevät muun muassa Zalandon teknologiatutka ja Thoughtworksin tutka, jotka luovat laajempaa kuvaa omaksuttavista, arvioitavista, kokeiltavista ja varauduttavista teknologioista. Käyttöliittymäteknologioihin keskittyvässä State of JS -kyselyn tuloksista voi hyvin seurata eri kirjastojen ja työvälineiden trendiä vuosien varrella: minkä kirjaston käyttöä kannattaa lisätä ja minkä käyttämistä kannattaa vähentää.
Heräsikö mielenkiintosi uudistaa suomalaista sosiaali- ja terveydenhuoltoalaa ja rakentaa nykyaikaisia ratkaisuja moderneilla teknologioilla? Katso avoimet työpaikkamme ja laita hakemusta!