Datapohjaisen sovelluksen rakentaminen
Oppimistavoitteet: Tässä luvussa opitaan, miten avoimen datan sovellukset luokitellaan, mitä pitää ottaa huomioon visualisoinnin julkaisemisessa organisaation verkkopalvelussa ja miten avoimen datan sovellus rakennetaan joukkoistamalla.
Avointa dataa käyttävät sovellukset voidaan kategorisoida seuraavasti:
-
Staattiset visualisoinnit (kuvatiedosto)
-
Interaktiiviset visualisoinnit (käytännössä webissä)
-
Tarinat, joissa on mukana visualisointeja (käytännössä web-sivuja, joissa upotettuna visualisointeja)
-
Hyödylliset web- tai mobiilisovellukset (esim. reittiopas julkisen liikenteen datan päälle toteutettuna)
Staattisia ja interaktiivisia visualisointeja voidaan rakentaa lukuisilla työkaluilla ja palveluilla. Interaktiiviset visualisoinnit ovat käytännössä aina web-sovelluksia, joita useimmiten luodaan maksuttomilla tai maksullisilla visualisointipalveluilla.
Jos haluat, että kehittämäsi visualisointi julkaistaan organisaatiosi verkkopalvelussa, se pitäisi muokata vastamaan organisaatiosi visuaalista ohjeistusta ja ilmettä (fonttikoko, värit, mobiilitoiminnallisuus). Tämä voi tarkoittaa, ettet voi käyttää jonkin kolmannen osapuolen visualisointipalvelua vaan sinun on visualisoitava sovelluksesi (ja interaktiivisessa tapauksessa ohjelmakoodisi) vastaamaan organisaatiosi ohjeistusta. Ohjeistus voi myös ottaa kantaa koodin laatuun, sovelluksen riippuvuuksiin sekä yhteentoimivuuteen organisaation muiden tietojärjestelmien kanssa.
Case: Sujuvuusnavigaattori
Sujuvuusnavigaattorissa yhdistetään joukkoistamista, avointa karttadataa ja muuta avointa aineistoa, mikä konkretisoi tämän kurssin muita osioita.
Mikä on Sujuvuusnavigaattori
Sujuvuusnavigaattori on älypuhelimissa toimiva pyöräilyn ja joukkoliikenteen reittiopas, joka lisäksi toimii pyöräliikenteen sujuvuustiedon keräämisen välineenä. Sovelluksen käyttäjät voivat nauhoittaa omia pyöräreittejään ja halutessaan lähettää GPS-nauhoitteet palvelimelle. Joukkoistamalla kerätystä datasta voidaan analysoida pyöräilyn sujuvuutta eri kaduilla ja parantaa reititysaineistoa, jolloin navigaattori osaa jatkossa suositella pyöräilijöille entistä parempia reittejä.
Idean synty ja kypsyttely
Ideat syntyvät harvoin tyhjästä. Sujuvuusnavigaattorin taustalla on toisaalta joukkoistamalla kerätyn datan mahdollisuudet, joita aiemmin on käytetty muun muassa vikaraportointiin (esim. Metro-lehden Pitäiskö fiksata -palvelu ja toisaalta avoimeen liikennedataan pohjautuva reitityssovellus City Navigator, jota Helsingin Seudun Liikenne on kehittänyt avoimella lähdekoodilla. Idea vastasi myös olemassaolevaan tarpeeseen: pyöräilyn reittioppaiden reititysaineistoissa on vain tietoa reitin päällysteestä, mutta ei juurikaan käytännön tietoa reitin sujuvuudesta.
Avoimen lähdekoodin malli sopii hyvin sovellusten jatkuvaan kehittämiseen, koska eri toimijat voivat parantaa niitä pienissä erissä. Sujuvuusnavigaattoriprojekti käynnistyi, kun Oulun kaupunki kehitti avoimeen City Navigator -sovellukseen uutena ominaisuutena oman reitin nauhoitusominaisuuden, jonka avulla pyöräilijöiden yhteisö saattoi raportoida toisaalta sujuvista reiteistä tai toisaalta sujuvan pyöräilyn kannalta ongelmallisista reiteistä.
Datan hankkiminen (ja erikseen joukkoistetun tiedon keruu)
Sujuvuusnavigaattorin lähtökohtana ollut City Navigator sovellus hyödyntää karttapohjana avointa OpenStreetMapia ja joukkoliikenteen reititykseen avointa GTFS-muotoista joukkoliikennedataa. Näiden lisäksi projektin päätavoitteena oli toteuttaa ja testata uusi toiminnallisuus, joka mahdollistaa joukkoistetun avoimen datan keräämisen pyöräilijäyhteisöltä. Tämä edellytti muun muassa yksityisyydensuojaan sekä sovelluksen käytettävyyteen ja pyöräilijöiden motivointiin liittyvien seikkojen huomioon ottamista.
Projektin käynnistäminen ja tiimin kerääminen
Muutama ydintiimin jäsen ehdotti projektia, mutta heti käynnistymisvaiheessa tiimiä laajennettiin kutsumalla avoimesti mukaan kaikki kiinnostuneet. Näin saatiin mukaan muun muassa pilotoinnin käytännön suunnittelusta kiinnostuneita henkilöitä. Osaavien ohjelmoijien löytäminen edellytti ydintiimin omien verkostojen käyttämistä ja henkilökohtaista houkuttelua. Pieni projekti, josta ei ole mahdollista tarjota hyvin palkattua ja varmaa työpaikkaa pitkäksi aikaa, on rekrytoinnin kannalta haastava, mutta toisaalta avoin data ja pyöräily kiinnostavat monia. Projektin käynnistymisvaiheessa otettiin yhteyttä myös paikallisiin pyöräilyjärjestöihin Oulussa ja Helsingissä ja koottiin kiinnostuneiden pilottikäyttäjien ryhmät molemmista kaupungeista.
Työvälineiden valinta
Pilottikäyttäjien yhteydenpitoon ja keskinäiseen viestintään valittiin suljettu Facebook-ryhmä, vaikka tiedettiin, etteivät kaikki pyöräilijät käytä Facebookia. Kaikkia miellyttävän ja toimivan yhteydenpitotavan valinta lienee mahdoton tehtävä, joten päätettiin valita sellainen ratkaisu, joka toimii monille ja toimii hyvin. Ohjelmistokehityksessä yhteydenpito hoidettiin GitHubin issueiden kautta, mikä oli luonteva valinta. Teknologiavalintoja ohjasi City Navigator -sovellus (coffee script, HTML5). Vielä piti päättää, miten HTML-sovelluksesta saadaan iPhonelle ja Androidille natiivisovellukset.
Koodausprosessi, kesto, laajuus
Varsinainen pienehkö koodausprojekti kesti noin kolme kuukautta. Toteutuksessa käytettiin ketterää lähestymistapaa (lean startup). Koodaustyötä tukivat pilottikäyttäjät, jotka testasivat prototyyppiä jatkuvasti. Normaalityötä rytmitettiin hackathon- ja agile sprint -muotoisilla kehitysrupeamilla. Ohjelmistoprototyyppi julkaistiin projektin aikana useita kertoja GitHub-sivustolla. Julkaisuista tiedotettiin ja palaute käyttäjiltä kerättiin projektin Facebook-ryhmässä. Kehitystä ohjaavat uudet käyttötapaukset muodostettiin aina käyttäjien palautteiden pohjalta.
Tiivistelmä
Avoimesta datasta voidaan kehittää staattisia ja interaktiivisia visualisointeja, tarinoita ja verkko- tai mobiilipalveluita. Jos avoimen datan visualisointi julkaistaan organisaation verkkopavelussa, niin organisaation visuaalinen ohjeisto ja ilme otetaan huomioon. Sujuvuusnavigaattori rakennettiin joukkoistaen yhdistämällä avointa karttadataa ja muuta avointa aineistoa. Idean kypsyttelystä edettiin datan hankkimiseen, projektin käynnistämiseen, tiimin ja pilottikäyttäjien keräämiseen, työvälineiden valintaan ja lopuksi ketterään koodaamiseen, testaamiseen ja tiedottamiseen.
Tehtävät
- Tehtävä 14. Visualisointi organisaation verkkosivustolle
- Tehtävä 15. Suunnitelma datapohjaisesta sovelluksesta