Rakettitiedettä 020202 Palveluihin
Rakettitieteen ja 020202 Palveluiden yhteistyön hedelmät auttavat villiintyvän taksipalveluviidakon taltuttamisessa: rakettitieteilijä kehittää 02 Taksi -palvelua, joka vertailee luotettavien taksien hintoja ja saapumisaikoja. Toinen devaajamme puolestaan rakensi uuden työkalupakin helpottamaan 020202:n asiakaspalvelijoiden arkea.
Taksilain muututtua yhä useampia mietityttää, mistä voi tilata hyvän, halvan ja heti vapaan kyydin. Vahva vaihtoehto on koko Suomessa toimiva 02 Taksi -välityspalvelu, jonka avulla asiakas voi tilata taksin, laskea etukäteen matkan hinnan ja vertailla autojen saapumisaikoja.
Taksien tilaamiselle päätettiin rakentaa oma palvelunsa, koska 020202-numeropalvelu oli jo kauan ollut suosittu taksien tilauskanava.
“Meillä on hyvät suhteet eri taksitoimijoihin, ja olemme jo pitkään välittäneet puheluita suoraan taksikeskuksiin sekä tehneet tilauksia Valopilkku-sovelluksen kautta. Oman sovelluksen ja pelkille taksitilauksille omistetun puhelinpalvelun käynnistäminen oli luonteva jatko taksipalveluillemme”, 02:n IT-johtaja Mikko Lehmuskoski kertoo.
02 Taksi -palvelua kehitetään pienen mutta tuottavan tiimin voimin: devaajana on rakettitieteilijä Topi Sarkkinen ja pääarkkitehtina Lehmuskoski. Ulkoasuja työstää designtoimisto.
“Tein palveluun koko Suomen kattavan paikkatietojärjestelmän, koska Googlen järjestelmä ei ollu tarpeeksi hyvä”, Sarkkinen toteaa.
Verkkopalvelun backend on toteutettu kokonaan serverless-mallilla AWS:n pilvialustalla. Serverless-mallin plussapuolena on muun muassa se, ettei infran hallinnoimiseen tarvitse tuhrata paljoa aikaa. Lisäksi suurin osa palveluista skaalautuu automaattisesti.
Laskentaa hoitavat Lambda-funktiot, jotka ovat pieniä pilvessä asuvia koodinpätkiä. Niiden edessä on API Gatewaylla toteutettu REST API, jonka avulla voidaan helposti käyttää funktioita HTTP:n yli.
Päätietokanta on AWS:n RDS-palvelussa hostattu MariaDB-tietokanta, mutta käytössä on myös DynamoDB yksinkertaisen tiedon säilyttämiseen. Käyttäjähallinta on toteutettu AWS:n Cognitolla. Bäkkäri on integroitu suoraan eri palveluntuottajien järjestelmiin.
Kolme käyttöliittymää
Taksipalvelun järjestelmälle on kolme erillistä käyttöliittymää: asiakaspalvelu, web ja mobiili. Asiakaspalvelu ja web on rakennettu samalta pohjalta Reactilla. Tilanhallinnassa käytetään Reduxia ja Rematchia. Web-käyttöliittymä on tehty PWA-sovelluksena (Progressive Web App), jolloin se on helposti käytettävissä myös mobiililaitteilla.
Natiivia mobiilisovellusta työstetään parhaillaan React Nativella, joten kehittäminen on hyvin samankaltaista kuin web-Reactin tekeminen. Devaajan näkökulmasta kynnys eri käyttöliittymien välillä on pieni, ja osa koodista voidaan jopa jakaa mobiilin ja webin välillä.
Eikä siinä vielä kaikki
Rakettitiede on 020202 Palvelujen tuotekehityskumppani muissakin softaprojekteissa.
Rakettitieteilijä Tuisku Salminen on tehnyt 02:n asiakaspalvelijoiden työkalupaketin. 2000-luvun alkupuolella tehdyn alkuperäisen paketin teknologiat olivat ehtineet vanhentua, ja sen kustomoidut IE-buildit eivät toimineet enää sujuvasti esimerkiksi uusien nettisivujen kanssa. Koko IE-maailma korvattiin Chrome Extensionilla, joka on asennettuna asiakaspalvelijoiden Chromium-selaimeen.
Uusi työkalupakettikokonaisuus on käytännössä kokonaan Salmisen käsialaa. Vanhojen integraatioiden osalta tiimissä on ollut tukena alkuperäisen työkalupakin kehittäjä.
Ohjelmointikehyksenä on ReactJS, jonka lisäksi käytössä on ollut AWS:n palvelut, kuten Cognito, RDS, Lambda ja Api gateway.
Miten homma sitten toimii? Asiakaspalvelijat kirjautuvat kokonaisuuteen sisään omilla Cognito-tunnuksillaan. Samaa kirjautumista käytetään muissa selaimessa pyörivissä 02-palveluissa. Koko projektin oma api-puoli on toteutettu Api gatewayn ja Lambdan avulla AWS:n sisällä. Tämän lisäksi käytetään 02:n sisäisiä palveluita http-kutsuilla, joista haetaan ja joihin syötetään erilaista dataa tarvittaessa. Projektin frontend-puoli on tehty ReactJS + Redux -yhdistelmällä.
02:n asiakaspalvelijat ovat olleet todella tyytyväisiä uudistettuihin työkaluihinsa. Vanhoihin verrattuna uudet työvälineet ovat nopeampia ja helppokäyttöisempiä, joten asiakaspalvelijoiden arki helpottuu ja he voivat keskittyä tekniikan kanssa tappelemisen sijaan asiakkaiden palvelemiseen.
Yksityiskohdat hiotaan loppukäyttäjien kanssa
Lehmuskosken mukaan rakettitieteilijöiden projektit ovat sujuneet erinomaisesti: “Molemmat ovat erittäin ammattitaitoisia sovelluskehittäjiä, ja hyviä valmiita ratkaisuja syntyy kerta toisensa jälkeen sovitusti ja aikataulussa.”
Lehmuskoski pitää erityisen arvokkaana rakettitieteilijöiden kykyä kommunikoida organisaation sisäisten asiakkaiden kanssa. “Aikaa säästyy ja lopputulos paranee, kun voi luottaa siihen, että sovelluskehittäjät voivat hieroa palveluiden yksityiskohtia suoraan loppukäyttäjien parissa”, Lehmuskoski sanoo.