Sovelluskehitys – miten ja miksi?

19/01/2021
Business Teknologia

Sovelluskehitys tulee kuvioihin tyypillisesti siinä vaiheessa kun joko vanhat ohjelmistot tarvitsevat päivitystä tai uusia digitaalisia palveluita tarvitaan oman kilpailuaseman vakiinnuttamiseksi. Sovelluskehitys on tärkeä osa yritystoimintaa oikeastaan kaikilla toimialoilla, sillä kasvavassa määrin kaikki liiketoiminta siirtyy lähemmäksi palveluliiketoimintaa ja digitalisoituu – etenkin globaalin covid-19 epidemian vauhdittamana.

Ennen kuin sovelluskehitystä lähdetään edistämään, on äärimmäisen tärkeää tiedostaa mihin tarpeeseen kehitystä tarvitaan. Onko tavoitteena esimerkiksi sitouttaa asiakkaita parempien sovellusten avulla (kuten pankeilla), tarjota kokoaan uusia palveluita ja luoda siten kilpailuetua vai kenties myynnin kehittäminen parempaan asiakaskokemukseen panostamalla?

Sovelluskehitys on tärkeää liiketoiminnan kasvattamiseksi ja siksi aiheeseen kannattaa perehtyä – oli yrityksesi toimiala mikä tahansa.

 

Me Pixelsillä olemme toteuttaneet lukuisia erilaisia sovelluskehitysprojekteja. Tämän artikkelin luettuasi tiedät perusasiat sovellusten kehittämisestä sekä meidän toimintatavoistamme ja projekteistamme sovelluskehityksen saralla.

Tämän artikkelin luettuasi tiedät vastaukset ainakin näihin kysymyksiin:

  1. Miksi ja mihin sovelluskehitystä tarvitaan?
  2. Mitä eri tapoja on luoda sovelluksia?
  3. Millainen on Pixelsin toimintamalli ja millaisia sovelluskehitysprojekteja olemme toteuttaneet?

 

Sovelluskehitys pähkinänkuoressa

Sovelluskehityksellä luodaan erilaisia digitaalisia palveluita, joilla pyritään parantamaan esimerkiksi asiakaspalvelua, luomaan uutta liiketoimintaa tai luomaan käyttäjäystävällisempi ympäristö kankeaan järjestelmään. Sovelluksia kehitettäessä tulisi loppukäyttäjän tarpeet tulla aina etusijalla ja business-tavoitteet ja hienot ominaisuudet seurata vasta perässä. Yleensä sovelluksia kehitetään palvelemaan käyttäjiä verkkosivuilla tai mobiililaitteissa, mutta sovelluksiin törmää nykyään kaikkialla älykelloista lääkäriaseman ilmoittautumislaitteisiin.

Aloitetaan perusteista; sovelluksia on moneen lähtöön. Tutuimpia monille ovat nämä:

  • puhelimessa asuvat mobiilisovellukset, jotka ladataan sovelluskaupasta
  • tietokoneissa olevat sovellukset, kuten nettiselain tai MS Word
  • verkossa toimivat sovellukset, kuten vaikkapa Gmail -sähköposti tai Verotoimiston OmaVero

Tässä tekstissä keskitymme pääasiassa näihin edellä mainittuihin sekä niiden kehittämiseen liittyviin lainalaisuuksiin.

Lisäksi on joukko erilaisia ohjelmistoja ja niiden käyttöliittymiä, joihin törmää huomaamattaan päivittäin. Näitä ovat esim.:

  • erilaiset kioskiohjelmistot, joiden avulla pyöritetään päätelaitteilla esim. mainosvideoita tai jolla hoidat vaikkapa lentokentällä check-in -prosessin
  • toiminnalliset ohjelmistot, kuten auton tietokoneen käyttöliittymä, josta valitset musiikit ja säädät erilaisia asetuksia
  • älytelevision sovellukset Netflixille, HBO:lle ja Yle Areenalle

 

 

Milloin ja miten sovelluksia kehitetään?

Kokemuksemme mukaan ajatus sovelluksen kehittämisestä nostaa päätään kun 1) mielessä on täysin uusi digitaalinen liiketoiminta ja sen vaatima ratkaisu; 2) tarjolla olevista valmisohjelmistoista ei löydy omiin tarpeisiin sopivaa vaihtoehtoa; tai kun 3) perinteisemmän verkkosivuston rajat tulevat vastaan.

Tällöin voi olla järkevää suunnitella oma sovellus. Jos yrityksestä ei löydy omaa sovelluskehitykseen resursoitavaa tiimiä, on aika selvittää ulkoisen kumppanin kanssa mihin ollaan ryhtymässä. Keskustelun aloitukseen olisi hyvä sisällyttää ainakin:

  • Mitä sovelluskehityksellä halutaan saavuttaa?
  • Ketä varten sovellusta rakennetaan?
  • Milloin sovelluksen pitäisi olla valmis?
  • Mikä on sovelluksen elinkaari ja suunnitelmat jatkoa varten?

Sovelluskehitystä voi tehdä monella tapaa, ja jokaisella tekijällä on omat työtapansa ja työkalunsa. Sovelluskehitysprosessissa tulisi kuitenkin aina painottaa suunnittelua, toteutusta sekä seurantaa. On tärkeää mitata kasvua ja tarkkailla muutosten tarvetta. Kun tiedetään tarkemmin mitä sovelluskehityksellä halutaan saavuttaa, on selkeämmät sävelet mitä lähdetään kehittämään.

Perinteisistä projektimetodeista mainittakoon vesiputous-malli, jossa ensin määritellään luotava kokonaisuus mahdollisimman tarkasti ja sitten ryhdytään toteutukseen. Ajatuksena tässä on minimoida yllätykset projektin aikana, joten tarkka määrittely ja lista ominaisuuksista on oltava selvillä heti alkumetreillä. Riskinä on olettaa liikaa alkuun ja päätyä luomaan tuote, jolle ei olekaan kysyntää tai siihen on sisällytetty vääriä toimintoja, jolloin rahaa ja aikaa on heitetty hukkaan.

Ketterän kehityksen malleissa johtava ajatus taas on ottaa sovellus käsittelyyn pala kerrallaan; ensin luodaan alustava konsepti tai prototyyppi, josta edetään ns. MVP-mallin (”minimum viable product”) toteutukseen ja haetaan tälle loppukäyttäjiltä palautetta sekä testataan miten hyvin se otetaan vastaan, ennen seuraavaan isompaan kokonaisuuteen siirtymistä. Etuna on saada nopeammin idealle validaatio kohdemarkkinalta ja kyky nopeammin reagoida muuttuneisiin tavoitteisiin sekä tarpeisiin. Riskiksi mainittakoon ainakin haastava kokonaiskustannusten arviointi alkuvaiheessa, mutta yleensä tietyt budjettiraamit hankkeelle sisällytetään joka tapauksessa – ja niissä on silloin pysyttävä. MVP-version tulisi todellakin olla se aivan minimi, jolla idea saadaan markkinalle testattavaksi, mutta usein niihin ängetään turhan paljon toimintoja ja projektit helposti paisuvat.

Toimintamallista riippumatta sovelluskehityksen työvaiheisiin kuuluu tyypillisesti vaatimus- ja toiminnallinen määrittely, arkkitehtuurisuunnittelu, käyttöliittymäsuunnittelu, toteutus, julkaisu sekä jatkokehitys.

Weup-web-sovellus-react-UI
Sovelluskehityksen prosessin alkupäässä määritetään tekniset vaatimukset ja käyttötarkoitukset. Tietoa Finlandin Weup-sovellusta tullaan käyttämään pääasiassa tietokoneilla ja isoimmilla erillisillä näytöillä, joten tekniseksi toteutustavaksi valikoitui selainpohjainen web-sovellus.

 

 

Mobiilisovellus vs selainpohjainen web-sovellus

Tyypillisesti näemme kahdenlaisia sovelluksia; joko puhelinten sovelluskaupasta ladattavia puhelimelle luotuja mobiili- tai natiivisovelluksia sekä selainpohjaisia sovelluksia, joita siis käytetään laitteen internet-selaimen kautta. Molemmissa on omat ominaisuutensa ja oikean lähestymisen valintaan ei ole yhtä selkeää tapaa tai totuutta.

Useimmiten valinta on kuitenkin melko helppo kun saa vastaukset muutamaan perustavaa laatua olevaan kysymykseen:

  • Pitääkö sovelluksen hyödyntää puhelimen ominaisuuksia (GPS, kamera, yhteystiedot, ilmoitukset tms.)? Jos pitää, valitse mobiilisovellus.
  • Pitääkö sovelluksen toimia kaikilla päätelaitteilla (mobiili, tabletti, työpöytäkone)? Jos pitää, valitse web-sovellus.
  • Käytetäänkö sovellusta pääasiassa puhelimella? Jos käytetään, mobiilisovellus saattaa olla oikea valinta.
  • Käytetäänkö sovellusta pääasiassa tietokoneella? Arvaat varmaan jo… jep, oikea valinta on web-sovellus.
  • Näetkö todennäköisenä, että käyttäjät itsenäisesti löytävät sovelluksen sovelluskaupasta ja viitsivät ladata sen puhelimeensa? Vai onko heille helpompi tarjota sovellusmaisia toimintoja verkkosivuilla, joille he tulevat ensisijaisesti hakemaan tietoa (esim. Googlesta)? Tässä saattaa olla vahva peruste web-sovellukselle.
  • Onko yritykselläsi resursseja kehittää ja ylläpitää sovelluksia useammalle alustalle vai keskityttekö mielummin yhden pohjan kehittämiseen ja nopeisiin muutoksiin? Mobiilisovellukset vaativat omat versionsa iOS ja Android -ympäristöihin kun taas web-sovellus toimii kaikissa päätelaitteissa ja sen kehitys on keskitetympää.

Oheiset kysymykset voivat hieman ohjata ajatuksen kulkua jo oikeaan suuntaan, vaikka asia ei tietenkään aina ole aivan näin suoraviivainen. Joskus tarpeiden kanssa tulee päällekkäisyyksiä ja joskus on varsin perusteltua investoida kattavamman yhdistelmän rakentamiseen, jossa luodaan erilliset mobiili- ja web-sovellukset. Tämä on kuitenkin harvinaisempaa sillä kehityskustannukset ja ylläpito on työlästä ja raskasta.

Mikäli kaipaat näkemystä oikean teknologian ja ratkaisun hahmottamiseksi, ota rohkeasti yhteys luotettavaan palveluntarjoajaan ja teetä selvitys aiheen tiimoilta.

 

 

Sovelluskehitys Pixelsin tapaan

Sovelluskehitys on yleisesti meillä varsin projektiluontoista ja painottuu web-sovelluksiin, mutta luomme myös natiivisovelluksia mobiililaitteille tarpeen vaatiessa. Me Pixelsillä hoidamme niin suunnittelun, sovellusten rakentamisen, päivittämisen kuin myös ylläpidon.

Ennen kuin voidaan siirtyä itse toteutukseen, täytyy suunnitteluun panostaa rutkasti. Suunnittelu on toiminnassamme tärkeässä roolissa, sillä se sisältää paljon onnistumiselle kriittisiä eri työvaiheita, kuten asiakasymmärryksen luomista, liiketoiminnan muotoilua tai palvelumuotoilua ja visuaalista konseptointia sekä prototyyppien luomista. Sen jälkeen voidaan siirtyä teknisiin valintoihin ja itse toteuspuoleen.

Autamme asiakkaitamme niin ideoinnissa, toteutuksessa kuin myös testaamisessa. Näin voimme varmistaa, että sovellukset on rakennettu järkevästi ja käyttäjäystävällisesti. Rakennamme pääasiassa selainpohjaisia sovelluksia hyödyntäen moderneja työkaluja ja teknologiaa.

Meillä Pixelsillä on tärkeää toimittaa nopeasti ja usein – keskitymme tärkeimpien toiminnallisuuksien kehittämiseen ensin, jotta tuote saadaan ulos mahdollisimman nopeasti.

Teknologiasta riippumatta, meidän kanssa työskennellessä kommunikaatio pelaa ja huolehdimme koko prosessista, ideoinnista toteutukseen sekä jatkuvaan optimointiin. Koska painotamme liiketoiminnallista näkökulmaa sovelluskehityksessä, luo se tavoitteelliset puitteet projektin toteuttamiseen.

Useat asiakkaistamme ovat itse sovelluskehittäjiä ja luovat omia ohjelmistojaan, mutta heiltä puuttuu käyttäjälähtöinen osaaminen tai puhtaasti ei ole riittäviä resursseja sovelluskehitykseen. Tällöin me olemme pystyneet auttamaan asiakkaitamme sovelluskehityksen asiantuntijana. Koska sovellukset eivät ole koskaan täysin valmiita, me muistutamme aina optimoinnin tärkeydestä ja sovellusten jatkuvasta kehityksestä, mihin monella ei välttämättä ole aikaa ja osaamista.

 

react-js-logo

React on sovelluskehityksen kukkulan kuningas

React on alunperin Facebookin luoma avoimen lähdekoodin ohjelmistokehys, joka pohjautuu JavaScriptiin. Se on lyhyessä ajassa saavuttanut maailmanlaajuisen suosion ja on yksi kehittäjäystävällisimmistä vaihtoehdoista teknologiakentällä tällä hetkellä. Kotimaisista ohjelmistokehitystaloista suurin osa työskentelee ainakin osittain Reactilla – kuten myös me.

Reactista on myös natiivisovellusten (eli mobiilisovellusten) luomiseen luotu versio React Native, jonka avulla yhtä koodipohjaa kehittämällä voi luoda sekä iOS että Android versiot. Kun meiltä pyydetään mobiilisovellusten kehittämiseen apua, vastauksemme on lähes poikkeuksetta React Native.

Reactin kanssa samalla pelikentällä kilpailevat mm. Angular sekä Vue.js, jotka ovat kaikki hieman erilaisia työkaluja käytännössä samojen ongelmien ratkaisemiseen. Näistä meillä on eniten kokemusta Reactista ja Angularista.

 

next-js-logo

Next.js laajentaa Reactia myös perinteisempien verkkopalvelujen tarpeisiin

Next.js on myöskin avoimen lähdekoodin ohjelmistokehys tai oikeastaan kirjasto, joka vie Reactin kehitystä mielestämme juuri oikeaan suuntaan. Nextin avulla saamme luotua verkkosivuja ja toki myös web-sovelluksia, joka ovat teknisesti hakukoneystävällisiä (palvelinpuolen renderöinnin myötä Googlen botit pääsevät sisältöihin käsiksi) ja staattisen sivu-generoinnin myötä älyttömän nopeita.

Käytämme Nextiä enemmän ja enemmän aivan tavallisten WordPress-pohjaisten verkkosivujen rakentamiseen juurikin edellä mainittujen suorituskyky-etujen vuoksi. Varsinkin verkkosivustot, joilla on iso kunnianhimo pärjätä hyvin hakukoneissa hyötyvät staattisen sivujen salamannopeista latausajoista.

Mikäli haluaa Googlen PageSpeed tai Lighthouse tuloksista yli 90/100 arviot, on Next.js aivan kärkipään valintoja.

 

 

Millaisia sovelluskehitysprojekteja me olemme toteuttaneet?

Olemme tehneet useita sovelluskehitysprojekteja erilaisille toimialoille ja asiakkaille. Tyypillistä kaikille hankkeillemme on aloittaa käyttäjälähtöisesti ymmärtämällä asiakkaiden tarpeita, tunnistaa liiketoiminnan kehittämisen ja muotoilun mahdollisuudet ja valita siihen sopivat tekniset ratkaisut. Ohessa muutama asiakasprojekti, joista lisätietoa saat asiakkaan nimeä klikkaamalla.

 

Autoklinikka-react-web-sovellus

Autoklinikka halusi kehittää vauriotarkastuspalveluaan, jonka avulla asiakkaat voisivat suorittaa vahinkotarkastuksen helpommin sovelluksen avulla. Voit napata puhelimellasi lommosta auton kyljessä kuvat ja lähettää ne Autoklinikalle, jolloin käyntiä korjaamolla ei tarvita. Reactilla luotu web-sovellus tarjoaa asiakkaille mahdollisuuden tehdä vauriotarkastuksen päätelaitteesta riippumatta – vaikka kotisohvalta. Teknologia mahdollistaa maltilliset kehityskustannukset sekä jatkokehitys onnistuu tulevaisuudessa vaivattomasti.

 

ramirent-ramipro-web-sovellus-screen

 

Ramirent päätti uudistaa työmaiden inventointiin, työajan seurantaan ja budjetointiin sekä työntekijöiden koulutuksiin kehitettyjä verkkopalveluitaan käyttäjäystävällisemmiksi, jotta voitaisiin nostaa palvelun tasoa. Ohjelmistot olivat kehittämisen tarpeessa, joten yhdessä Ramirentin kanssa suunnittelimme kokonaan uuden käyttöliittymän sovelluksille. Käyttäjälähtöisyys oli erityisen tärkeää tässä projektissa, joten tutkimme käyttäjäroolien tarpeita. Vastuullamme oli ohjelmiston frontendin eli käyttöliittymän tekninen toteutus Angularilla. Taustajärjestelmän kehittämisestä vastasi ulkoinen ohjelmistokumppani.

 

Tietoa Finlandille rakensimme Tuomarointikoneen™, mikä on pilvipohjainen Reactilla toteutettu web-sovellus. Tämän helppokäyttöisen käyttöliittymän avulla arkkitehtuurikilpailujen töiden arviointi, selaaminen, pisteytys ja tarkastelu voitiin siirtää täysin digitaaliseksi, mikä helpotti entuudestaan varsin fyysisesti ja manuaalisesti tehtävää tuomarointia huomattavasti.

 

Tarvitsetko sovelluskehityksen ammattilaisia avuksi?

Jos sovelluskehitys olisi tarpeen ja etsitte modernia sekä osaavaa tekijää – me osaamme varmasti auttaa. Liiketoiminnallinen kulma sekä käyttäjälähtöinen, ketterä suunnitteluprosessi takaa hyvät tulokset. Meille on tärkeää, että sovelluskehitystä tehdään tunnistettuun asiakkaan tarpeeseen sekä sovelluksia myös seurataan ja optimoidaan julkaisun jälkeen.

Ota yhteyttä ja suunnitellaan yhdessä yrityksellenne sopiva sovellus!