11 syytä miksi valtion laitosten kannattaa avata koodinsa

Valtion laitos, potentiaalinen asiakas, on teettämässä uutta tietojärjestelmää. Korvataan kasa vanhoja systeemejä, ja integroidutaan toiseen kasaan. Kehitys tarkoitus tehdä mahdollisimman ketteränä, joidenkin rajapintojen avaamista avoimena datana valmistellaan. Perusarkkitehtuuri on järkevän näköinen ja teknologioiden suhteen tarjoajia pyydetään tekemään ehdotuksia. Kaiken kaikkiaan asiakas vaikuttaisi olevan aika kartalla siitä, miten softaprojektia kannattaa tehdä.

Ajattelin ehdottaa heille, että mitä jos julkaisisitte myös lähdekoodinne avoimena. Alla perusteita, miksi heidän kannattaisi näin tehdä. Lisää saa ehdottaa.

Maanmittauslaitoksen oskari.org-portaali on hyvä esimerkki siitä, kuinka valtion laitos julkaisee kehittämänsä koodin vapaaseen käyttöön

Uuden järjestelmän koodi on kokolailla yhteen tarkoitukseen tehtyä, eikä sille pääosin ole nähtävissä muuta käyttötarkoitusta. Siksi yleinen perustelu kehittäjäyhteisön tekemästä ilmaisesta työstä ei tässä tapauksessa ole soveltuva.

Mutta ne argumentit…

A) Virasto hyötyy itse:

  1. Mahdollisuus siirtää kehitys- ja ylläpitovastuita toimittajalta toiselle paranee. Uusi toimittaja tai toimittajakandidaatti voi perehtyä koodiin jo etukäteen omin nokkinensa, valita tekijät sitä silmällä pitäen ja ylipäänsä harkita, lähteekö tarjouskilpailuun mukaan ollenkaan. Tämä johtanee hiukan parempiin tarjouksiin, ja etenkin uusi tiimi pääsee tuottavaan työhön nopeammin.
  2. Koodin laatu paranee, koska useimmat eivät kehtaa tuottaa julkaistavaksi samanlaista kuraa, jota suljettuun järjestelmään voi piilottaa. Analogisesti, ”on eri asia laulaa suihkussa kuin lavalla”. Tämä helpottaa elinkaarenhallintaa ja laskee ylläpitokuluja etenkin pitkällä tähtäimellä.

    Vaikutus toki perustuu laajempaan kulttuuriseen muutokseen, jossa koodaajat vaativat itseltään ja toisiltaan korkeampaa laatua. Koodin avaaminen on ehkä vain tuon muutoksen katalyytti, mutta toimiva sellainen.

  3. Systeemiin liittyviä järjestelmiä tekevien työ helpottuu. Periaatteessahan hyvin dokumentoitu rajapinta riittää, mutta käytännössä asia ei ole näin. Rajapinnoissa on bugeja, ja dokumentaatio on aina epätäydellistä. Rajapinnan käyttäjän työtä tehostaa joskus paljonkin, kun rajapintaan ei tarvitse suhtautua mustana laatikkona, vaan hän voi tarkistaa mitä siellä alla oikeasti tapahtuu ja siten ymmärtää rajapintaa paremmin. Antti kuvaa efektiä hyvin Codenton blogissa.
  4. Koodin avaaminen – kuten datan avaaminenkin – on hyvää PR:ää. IT-mediaa kiinnostavat nämä asiat tällä hetkellä, ja niillä pääsee vaikuttamaan edistykselliseltä ja coolilta. En lähde nyt erittelemään hyvän maineen etuja; mainetta pidetään yleisesti tavoiteltavana asiana.

B) Yhteiskunta kokonaisuudessaan hyötyy:

  1. Avatulle koodille voi löytyä yllättäviä käyttötarkoituksia muualla. Vähintään se voi toimia eri työkalujen käyttöesimerkkinä tai opiskelijoiden harjoitustyömateriaalina. Mahdollisuus merkittävään käyttöön on vähäinen, mutta ennakoimattomia asioita tapahtuu. Tämä tuo myös potentiaalisia PR-hyötyjä jos käyttöä löytyy.
  2. Koodin toimittaja voi hyödyntää kertyneen osaamisen lisäksi myös syntynyttä koodia seuraavassa vastaavassa hankkeessa vaikkapa naapuriviraston puolella. Toimittaja tai seuraava asiakas siis hyötyvät työn tehostumisesta. (sivumennen sanoen: olen yhdessä vanhassa duunissa opensourcannut työkalukoodia jotta sitä voisi käyttää toisillakin asiakkailla).
  3. Koodin avoimuuden yleistyminen tuo uusia bisnesmahdollisuuksia. Esimerkiksi riippumatonta pienimuotoista lähdekoodin ja järjestelmän laadun auditointia. Jos auditointi vaatii raskaat neuvottelut että koodin edes näkee, maksaa se paljon. Avoimen koodin auditointia taas voi tehdä pikkufirma ohimennen ja esim. jättää tarjouksen vasta kun tietävät koodista löytyvän jotain parannettavaa.

C. Muut argumentit:

  1. Julkishallinnon pitää lähtökohtaisesti olla avointa ja julkista ja suljettua/salaista vain jostain pakottavasta syystä. Periaate löytyy jo perustuslain tasolta (hallinnon avoimuus). Itse asiassa avoimessa koodissa on kyse asiakirjajulkisuuden periaatteen loogisesta laajennoksesta.
  2. Myös voimassaoleva hallitusohjelma itse asiassa kehottaa tähän: ”Avoimeen lähdekoodiin perustuvien ratkaisujen käyttöönottoa edistetään julkisen hallinnon kokonaisarkkitehtuurin puitteissa ja kustannushyötyanalyysin pohjalta.” Avaamisesta on jonkin verran hyötyjä, eikä juuri lainkaan kustannuksia, joten sitä kuuluu siis edistää.
  3. Näyttäisi siltä, että julkisissa IT-projekteissa avoin data, ketterä kehitys ja avoin lähdekoodi linkittyvät käytännössä yhteen. Maanmittauslaitos, joka on avoimen datan lippulaiva Suomessa, on myös ketterän kehityksen edelläkävijä ja julkaisee koodinsa avoimena. Sama koskee Sitraa. Yhteys saattaa olla osin satunnainen, ja johtua vain ajan hengestä, mutta sitä ei kannata ohittaa. Kaikki kolme kun linkittyvät uusiin toimintatapoihin ja haluun tehdä julkisista ohjelmistoista hyviä ja kansalaisia palvelevia. Metatarina, jonka menestys voi johtaa todella suuriinkin hyötyihin aivan kaikille.

Lopuksi

Avoimen koodin hyödyt eivät rajoitu vain siihen, että itse koodi on avoimena saatavilla – vaikka siitä on joskus suuriakin hyötyjä toki. Hyötyjä liittyy myös työtapoihin ja ajattelutapaan, jossa avoimuus on lähes itsestäänselvyys. Salasanojen kirjoittamisesta koodin sekaan ei tarvitse edes keskustella, kun koodi on avoimena githubissa. Rajapinnan bugisuus ei ole peruste lyödä hanskoja tiskiin viikoksi, kun voi käydä katsomassa mikä siellä on rikki, ja raportoida virheen täsmällisesti. Ja niin edelleen.

Avoimuus on pienten hyötyjen kasautumista, joka voi levitessään johtaa suuriin ja yllättävinkin muutoksiin. Ja on syytä huomata, että avoimuutta vastaan ei julkishallinnossa puhu oikeastaan mikään: siksi pienetkin hyödyt riittävät perusteeksi.

5 kommenttia artikkeliin ”11 syytä miksi valtion laitosten kannattaa avata koodinsa”

  1. Suuri osa ideoista ja argumentaatiosta on lainattu lupaa kysymättä Facebook-keskustelusta jossa pohdimme asiaa. Kiitokset kaikille osallistuneille.

  2. Pääosin B-kohtaan liittyviä näkökulmia, osittain näistähän kirjoititkin jo, mutta hieman toisin painotettuna:

    Varsinkin jos laajennetaan tarkastelu valtiosta myös kuntiin ja miksei seurakuntiinkin, on myös niin että eri julkishallinnon toimijoiden tarpeet eivät ole välttämättä niin radikaalisti erilaisia, kuin helposti organisaation sisällä ajatellaan. Vaikka toiminnan organisoinnissa on eroja, joka kunnalla on tietyt perustoiminnot ja varsinkin samankokoisissa kunnissa myös usein samantapaiset käytännöt niiden hoitamiseksi. Niinpä kertaalleen hyvin tehdyn työn uudelleenkäyttäminen olisi järkevää sen sijaan että jokainen keksii vuorollaan pyörän uudestaan.

    Tietokoneohjelman monistamisen rajakustannus on nolla, joten kansantaloudellisesti on älytöntä että samaa pyörää keksitään päivästä toiseen uudestaan isoissa it-taloissa. Kun joku homma on kerran tehty hyvin, koodaajat voisivat siirtää energiansa seuraavan haasteen ratkaisemiseen. Kaupallisilla toimijoilla ei tietysti ole motiivia jakaa teettämänsä työn hedelmiä ilmaiseksi kilpailijoille, mutta julkisen sektorin koko olemassaolon tarkoitus on tuottaa julkishyödykkeitä joten sen toimintaan koodin avaaminen sopii luontevasti. Jo nyt julkinen sektori rahoittaa suurelta osin isojen it-talojen tuotekehitystyötä, mutta nykyisillä lisensseillä veronmaksajien varoilla kustannettu työ jää toimittajan omaisuudeksi. Avoimen lähdekoodin avulla siitä tulisi kaikkien yhteistä omaisuutta.

    Avoimen koodin käyttö luultavasti edistäisi myös muiden avoimien standardien soveltamista, jolloin eri organisaatioiden järjestelmät olisi helpompi saada keskustelemaan keskenään. Kun seuraa sivusta sähköisen reseptin tapaisia farsseja, tulee väistämättä mieleen että avoimien standardien ja lähdekoodin käytöllä homma olisi hoidettu jo aikoja sitten.

    Kriittisten järjestelmien turvallisuus olisi paremmalla tolalla, jos niiden koodi olisi vapaasti ruodittavana ja CERT-FIn tapaiset organisaatiot ja alan harrastajat voisivat tutustua sen heikkouksiin jo ennen kuin kyberrikolliset tai vihamielisten valtioiden kybersodankäyntiasiantuntijat löytävät ne. Security by obscurity is not security.

    1. Tämä on aivan totta. Uudelleenkäytöllä voisi potentiaalisesti olla todella suuria taloudellisia hyötyjä etenkin kuntapuolella, mutta myös esim. erikoissairaanhoidossa. Olen jo pidempään aikonut kirjoittaa siitäkin.

      Tässä kirjoituksessa ajatus ei ollut mukana, koska tämän taustalla oli yksi spesifi tilanne, jossa en nähnyt suuria mahdollisuuksia uudelleenkäyttöön.

    2. Vielä tuli mieleen sellainenkin näkökulma, että hyvin tehdyt julkishallinnon avoimen lähdekoodin ratkaisut voisivat olla sekä suomalaisten yritysten vientituote että julkishallinnon toimijoiden käyntikortti ulkomailla, keino rakentaa positiivista Suomi-kuvaa.

      Vaikka sitä ei aina isojen it-talojen sekoiluita seuratessa tule ajatelleeksi, Suomi on kuitenkin jo nyt maailman mittakaavassa edelläkävijämaiden joukossa yhteiskunnan sähköisten palveluiden kehittäjänä. Jos ratkaisut olisivat avoimia ja helposti muokattavissa eri maissa paikallisiin tarpeisiin, meillä kehitetyt ratkaisut voisivat auttaa muita maita pääsemään nopeammin liikkeelle omien sähköisten palveluidensa kanssa. Sivutuotteena syntyisi keikkaa suomalaisille yrityksille ratkaisujen lokalisoinnin parista esim. paikallisten toimijoiden koulutuksen ja konsultoinnin muodossa.

      Suomi tekee jo nyt kehitysyhteistyöprojekteina monenlaisia tietojärjestelmien kehittämishankkeita. Kotimaisista projekteista syntyneet avoimen lähdekoodin ratkaisut tarjoaisivat lisää kustannustehokkuutta tällaisiin projekteihin ja avaisivat myös yhteyksiä monien kehitysmaiden nopeasti kasvaville markkinoille.

  3. Sitten, jos vielä saisi julkisorganisaatioiden IT-yksiköiden johdolle läpi tämän ajattelutavan. Esim. meillä on vapaalla softalla alusta loppuun toteutettu sähköpostijärjestelmä, jonka organisaatiomme johtaja haluaa korvata Microsoft Office 365:llä, koska ”maailma nyt vaan on menossa siihen suuntaan” ja ”kaikki muutkin tekevät niin” ja ”musta tuntuu”.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *