Avoin lähdekoodi ei ole avointa, jos sitä ei ole jaettu

Perttu Tolvanen

En ole mikään avoimen lähdekoodin intohimoinen kannattaja. En ole vakuuttunut, että kaikkia maailman oikeasti vaikeita ongelmia voidaan ratkaista hajautetulla talkookoodauksella, ainakaan useimmiten.

Tästä huolimatta suhtaudun avoimen lähdekoodin järjestelmiin ja yhteisöihin erittäin vakavissani, ja pidän ilmiötä yhtenä hienoimmista asioista mitä IT-alalla on. Etenkin web-alalla avoin lähdekoodi on ollut todella merkittävä voima, ja auttanut paljon kaupallisten ryhmittymien liiallisen vallan kasvun estämisessä.

Palikoita kasaava nainen final

Ilman avointa lähdekoodia ehkä taistelisimme vieläkin Internet Explorerin bugisuuden kanssa, ja web olisi merkittävästi esteellisempi kuin mitä se on tänään.

Viime vuosina avoimen lähdekoodin järjestelmien ympärille on noussut myös merkittäviä kaupallisia yhteisöjä ja markkinoita, ehkä Drupal ja WordPress tärkeimpinä esimerkkeinä.

Avoimen lähdekoodin isoin hyöty web-alalla on kuitenkin se, että jokaisen ei tarvitse keksiä pyörää uudelleen. Voimme rakentaa palveluitamme muiden kehittämien peruskivien päälle. Voimme keskittää omat rajalliset resurssimme oman palvelumme erityispiirteiden hiomiseen.

Tämän kaiken mahdollistaa se, että jotkut meistä jakavat omaa työtään avoimesti muiden käyttöön. Jakaminen voi tapahtua pelkästä jakamisen ilosta, tai sitten ajatuksena on hyötyminen pitkällä tähtäimellä jollain tapaa. Erilaisista motivaatioista huolimatta jakaminen itsessään on se, mikä pitää avoimen lähdekoodin ilmiön elossa.

Esimerkiksi WordPressin perustaja Matt Mullenweg on sanonut, että jokaisen WordPress-toimiston tulisi käyttää 5% ajastaan antamiseen takaisin yhteisölle. Kaikkien ei tarvitse jakaa koodinpalasia, mutta jotain pitäisi antaa takaisin.

Tämä ajatus on aivan keskeinen kaikessa avoimen lähdekoodin tekemisessä. Tämä on myös se ongelma miksi monet kaupalliset tahot eivät oikein ole onnistuneet yhteisöjen rakentamisessa. Microsoft-maailmaan ei kuulu koodinpalasten jakaminen ilmaiseksi yhteisölle samalla tavalla kuin Drupal-yhteisöön.

Mutta.

Tämä jakamisen vaatimus ei kosketa pelkästään alan toimistoja. Sen tulisi koskettaa myös asiakkaita. Riippumatta ovatko asiakkaat tästä ylevästä ajatuksesta innoissaan, niin tähän samaan kiteytyy myös avoimen lähdekoodin suurin potentiaalinen hyöty asiakkaiden näkökulmasta. Erityisesti isojen asiakasorganisaatioiden näkökulmasta.

Kerran maksettu palikka käyttöön muillekin

Avoin lähdekoodi mahdollistaa esimerkiksi julkishallinnolle aivan huikean edun suhteessa mihin tahansa kaupalliseen markkinaan. Kun kaikkien kanssa ei tarvitse kilpailla, voi panostaa yhteistyöhön. Kaupunkien ei tarvitse kilpailla verisesti keskenään verkkopalveluidensa toiminnallisuuksilla. Yliopistojen ja koulujen ei jokaisen tarvitse maksaa lisenssimaksuja jokaisesta sivustostaan tai kuvapankkiratkaisustaan.

Eikä tässä oikeasti edes tarvitse tehdä sitä pelottavaa ja työläältä kuulostavaa yhteistyötä. Riittää kun jakaa muille sen mitä on itse saanut aikaiseksi. Muut päättävät sen, onko palikoista heille jotain hyötyä.

Tässä on se suuri mahdollisuus etenkin julkishallinnon näkökulmasta. Esimerkiksi kaupunkien saralla Kuntien Tiera auttaa kaupunkeja tekemään tätä palikoiden jakamista Drupal-julkaisujärjestelmäalustan päällä. Turku soveltaa samaa ajattelua oman kaupunkikonserninsa sisällä DriveTurku-hankkeessa.

Peruselementit ovat kohdallaan myös monilla muilla. Evankelisluterilainen kirkko valitsi yhdeksi, yhteiseksi julkaisujärjestelmäkseen Liferayn. Samoin Liferayhin on päätynyt moni laaja-alainen valtionhallinnon organisaatio. Ruotsissa julkishallinto käyttää laajalti EPiServeriä. Avoimen lähdekoodin jakamisajatusta voi siis hyödyntää vaikka ydinjärjestelmä olisi kaupallinen tuote, mutta toki isommat hyödyt saa jos ydinjärjestelmä on myös avointa lähdekoodia, kuten Drupalissa.

Asiakkaiden tulisi vaatia koodinpalasten jakamista

Tämä sama mahdollisuus tosin koskettaa myös isoja kaupallisia organisaatioita. Ei ole sattumaa, että monet maailman isoimmat organisaatiot ovat innostuneet Drupalista. Ne näkevät mahdollisuuden kehittää ratkaisuja keskitetysti aivan huikeana kustannustehokkuuden ja kehitysnopeuden parantajana. Eikä heitä edes yleensä haittaa jos kilpailija käyttää myös Drupalia. Yleensä isoilla organisaatioilla on ihan riittävästi alueita, joissa kilpailla toistensa kanssa.

Mediatalot ovat tehneet tätä jo pitkään. Ei kannata hukata rahaa päällekkäiseen koodaamiseen eri puolilla organisaatiota. Avoin lähdekoodi ja keskitetty palikoiden kehitys on ratkaisu tähän.

Julkishallinnossa on nyt viime aikoina tehty hyvää kehitystä tähän suuntaan. Vielä ei ole oikein todistusaineistoa, mutta tahtotilaa ehkä olisi. Ei ole esimerkiksi selvää, että pitäisikö julkishallinnon itse vastata palikoiden jakamisesta, vai pitäisikö palveluntarjoajat velvoittaa jakamiseen jos he tekevät töitä julkishallinnolle. Jälkimmäinen voisi ehkä olla varmempi reitti siihen, että palikat myös muistetaan raskaan projektin jälkeen laittaa jakoon.

Nyt valtionhallinnossa koodin avoimuudesta on toisteltu lähinnä hankkeiden alussa, mutta hankkeiden päätyttyä niitä yhteiskäyttöisiä palikoita ei ole missään kuitenkaan näkynyt.

Joka tapauksessa matkalla kohti avoimen lähdekoodin ihmemaata pitäisi niin isojen julkishallinnon organisaatioiden kuin kaupallisten konsernien muistaa, että avoimen lähdekoodin toimintamalliin kuuluu antaminen takaisin yhteisölle, jakaminen. Minimissään vaikka vain sille omalle organisaatiolle ja viiteryhmälle.

Pelkkä lisenssimaksujen ja toimittajaloukun välttelyn ei tulisi riittää syyksi panostaa avoimeen lähdekoodiin. Avoimuudesta saa tehot irti vain jakamalla.

PS. Kuvitus: Kuvittaja Pirita Tolvanen

PSS. Vierityspalkin artikkelit saat kerran kuukaudessa sähköpostiisi tilaamalla kuukausikirjeen.

  1. Janne Kalliola says:

    Kiitos Perttu tästä kirjoituksesta. Erityisesti julkinen sektori hyötyisi valtavasti sekä omien kulujensa vähentymisenä että kansakunnan kilpailukyvyn nousuna jakaessaan järjestelmiensä osia avoimesti takaisin yhteisöön.

    Yrityksillekin tätä voi suositella, koska mikäli koodia käyttää useampi taho, sen laatu paranee nopeammin ja suurelta osilta muiden rahoilla. Suljetut komponentit täytyy kehittää aina omin rahoin.

    Kaikkea ei yritysten kannata jakaa, joskus komponentti tuo liiketoimintaetua ja se kannattaa pitää silloin omissa hyppysissä. Mutta pitää olla itselleen älyllisesti rehellinen, että onko komponentin tuottama etu aitoa vai omaa kuvitelmaa.

    Monesti jakamisen esteenä on totutut tavat, koetut uhat ja pelot. Näistä kannattaa jutella avoimen lähdekoodin firmojen kanssa ja miettiä ovatko ne todellisia ja jos/kun ovat, kuinka niitä voidaan minimoida.

    Esimerkiksi me Exovella ylläpidämme muutamia asiakasprojekteissa tehtyjä komponentteja asiakkaan puolesta, eli heidän ei tarvitse vastata yhteisön kyselyihin ja hanskata parannusehdotuksia, vaan se jää meille avoimen lähdekoodin ammattilaisille – eikä maksa mitään. Uskoisin saman olevan totta muillakin avoimen lähdekoodin yrityksillä. Rohkeasti vaan puhelin käteen ja juttelemaan meille.

  2. Perttu Tolvanen says:

    Kiitos kommentista, Janne!

    Minustakin se on hyvin järkevä malli, että toimistot ovat niitä jotka ylläpitävät tekemiään palikoita – tai vähintään juuri vastailevat kyselyihin ja osallistuvat keskusteluun.

    Ja mitä enemmän niitä omissa projekteissa julkaistuja palikoita on, niin sitä enemmän siitä pitäisi toimistoille tulla kilpailuetuakin. Esim. sekä Drupal- että WordPress-kentässä toivoisin, että kaikilla itseään kunnioittavilla toimistoilla olisi vähintään muutama lisäosa julkaistuna ja ylläpidettynä (ja itse asiassa mieluiten juuri sellainen, joka on syntynyt alunperin jossain asiakasprojektissa).

  3. Antero Muranen says:

    Hyvä kirjoitus Perttu. Yhdyn ajatusmalliin jakamisesta ja uskon julkisen sektorin hyötyvän tästä erityisesti. Muutenkin siiloutunut julkinen sektori saisi tästä valtavaa etua.

    Kuten Janne mainitsi, yritysten välinen yhteistyö ei ole aina yksiselitteisen helppoa, ja usein rohkeus moiseen uupuu, mutta mahdollisuuksia on toki paljon vielä käyttämättä. En näkisi mitään syytä miksei muutenkin yhteistyötä tekevät yritykset voisi yhdessä kilpailuttaa esim. verkkopalveluprojektia.

    Olen myös vahvasti samaa mieltä siitä, että avointa lähdekoodia käyttävien toimistojen tulee jakaa osaamistaan takaisin yhteisölle nousevassa määrin. Itse yritämme puskea kehittämämme lisäosat yhteisön käyttöön sitä mukaa kun niitä saamme valmiiksi ja toivon, että muutkin toimistot tekevät samoin.

    Syysterkuin,
    Antero Muranen @ booncon PIXELS

  4. Simo Lääveri says:

    Perttu ja Janne, puhutte asiaa.
    Olin viime viikolla http://www.mindtrek.org/2015/ tapahtumassa ja sain ilokseni kuullä, että moni kaupunki ja julkisen sektorin edustaja on ottanut linjakseen avoimen lähdekoodin hyödyntämisen. Esimerkiksi Helsingin kaupunki käyttää lähdekoodia hyväkseen ja jos avoimelta puolelta ei ratkaisua löydy, koodataan se räätälöitynä ratkaisuna ja sen jälkeen tuotos julkaistaan avoimeksi. Tarvitsemme lisää Helsingin kaltaisia rohkeita pelureita jotka ymmärtävät ison kuvan.

    Janne: Eikö olisi hienoa jos saataisiin toimistot ikään kuin kilpailemaan keskenään kenellä on eniten lisäosia julkaistuna?

  5. Joonas Kiminki says:

    Moi, ja kiitos hyvästä kirjoituksesta!

    Janne yllä viittasikin asiakkaiden ja toimittajan yhteistyöhön koodin jakamisessa. Meillä Wunderkrautissa on ollut jo vuosia käytössä käytäntö, jossa tarjoudumme jakamaan, markkinoimaan ja ylläpitämään asiakkaalle kehitettyä yleisesti kiinnostava (eli jakamisen arvoinen) Drupal-moduulia asiakkaan puolesta. Asiakas siis maksaa kehityksen omaan käyttötarkoitukseensa – niin kuin suljetussakin koodissa – ja tämän jälkeen sallii koodin ”avoimeksi tekemisen”, mutta ei enää maksa siitä.

    Drupal-moduulit eivät lähtökohtaisesti sisällä yhdenkään asiakkaamme ydinliiketoimintaa tai kilpailuetua, joten järkiperusteita koodin jakamisen estämiseksi saa keksimällä keksiä. Sen sijaan hyötyjä on monia erilaisia – enkä nyt edes mene uskonnollis-ideologisiin seikkoihin:

    – Tehty koodi pääsee yhteisön tiertoturvatestauksen ja -korjausten piiriin ja tulee näin ollen luotettavammaksi
    – Toiset voivat jatkokehittää tai parannella asiakkaalle tehtyä koodia, mistä alkuperäinenkin asiakas hyötyy
    – Toiset voivat tehdä moduulistasi versiopäivityksiä, jolloin voit hyötyä siitä tulevaisuuden projekteissasi
    – Koodia ylläpitävä yritys saa uskottavuutta ja markkinointihyötyä
    – Koodia ylläpitävä yksilö saa mielekkäitä ja merkityksellisiä työtehtäviä – eli avoimen lähdekoodin projektien ylläpitäminen työajalla tuottaa tyydytystä

    Tässä kirjoituksessa todellisen elämän esimerkkejä hyödyistä: kts. http://www.wunderkraut.com/blog/publish-your-module-code-its-the-best-thing-for-you-and-your-customer/2012-03-18

    Joonas / Wunderkraut

  6. Janne Valtakari says:

    Hyvä kirjoitus ja mielestäni liian vähän esillä ollut aihe. Kiitos Perttu.

    Kuten Kiminki ja muut mainitsikin, sellaiset tilanteet ovat suhteellisen harvinaisia, joissa jakamatta jättäminen voitaisiin hyvin perustella. Aika harvan asiakkaan bisnesmalli nojaa aidosti tai oleellisesti yksittäisiin komponentteihin. Tämä nyt puhtaasti oma näkemys ja mielipide. Voin toki olla väärässäkin.

    Ymmärrän Simon ajatuksen tuon lisäosien määrän kanssa leikkimielisestä kilpailusta. Kuitenkin on varmaan kaikille edullista määrän sijaan pitää fokus siinä, että jokainen palikka tuottaisi eniten lisäarvoa ja merkitystä :).