Avoin lähdekoodi ja kirjastot

Mace Ojala kirjoittaa blogissaan Riippumaton asiantuntija siitä, miten kirjastot
voisivat osallistua avoimen lähdekoodin yhteisöihin.

Kommentoin kirjoitusta näin:

Avoin lähdekoodi on siitä jännittävä liiketaloudellinen ilmiö, että
“takaisin antaminen” ja yhteisön tukeminen ei ole pelkästään
hyväntekeväisyyttä, vaan myös oman hyödyn edistämistä.

Tämä johtuu siitä, että ohjelmistoissa suurin menoerä ajassa ja
rahassa mitattuna on ohjelmiston ylläpito. Avoimen lähdekoodin
hyödyntäminen kypsällä ja strategisesti järkevällä tavalla tarkoittaa
näiden ylläpitokustannusten hajauttamista yhteisölle. Tämän voi nähdä
myös ulkoistamisena, paitsi että tukiessasi yhteisön ylläpitourakkaa —
koodilla, rahalla tai ulkopuolisilta tilatulla työpanoksella — sinusta
itsestäsi tulee osa yhteisöä.

Ainoastaan suurilla ja rikkailla organisaatiolla on varaa itse
ylläpitää omaa räätälöityä koodikantaansa jostakin laajasta avoimen
lähdekoodin ohjelmistosta. Joissakin tapauksissa tähän voisi olla
syynsä. Useimmiten ehdottomasti järkevämpi malli on kuitenkin
osallistuminen yhteisön hallitseman virallisen koodin ylläpitämiseen
esimerkiksi lähettämällä yhteisölle virheraportteja tai pieniä
korjauksia koodiin.

Eikä tämä malli ole lähtökohtaisesti epäitsekäs, vaan tällä
toimintatavalla lunastetaan itselle “lippu”, jolla pääsee osaksi
yhteisön ylläpito- ja kehittämisprosessia ja voi hyötyä sen
edistymisestä. Toinen vaihtoehto olisi juuttua korjailemaan omaa,
epäyhteensopivaa versiota ohjelmistosta, johon pitäisi erikseen
kovalla työllä tuoda uusia ominaisuuksia ohjelmiston vauhdilla
eteenpäin menevästä valtavirran versiosta.

Koska avoimen lähdekoodin hyödyntäminen on koko Labs-projektin
ytimessä, haluaisin vielä tarkemmin käsitellä, miten luontevasti
avoimen lähdekoodin ajattelu sopii kirjastomaailmaan. Samalla
käsittelen niitä haasteita ja ennenäkemättömiä mahdollisuuksia joita
avoin ohjelmistokehitysprosessi tuo julkiselle organisaatiolle.

Miksi avointa lähdekoodia?

Lähdekoodi on kovin tekninen käsite, mutta asian ydin on
tässä: lähdekoodin avoimuus mahdollistaa ohjelmiston avoimen
kehitys- ja ylläpitoprosessin
.

Avoimen lähdekoodin ohjelma on lisensoitu tavalla, joka takaa sen
ettei kukaan yksittäinen taho voi tulevaisuudessa omia ohjelmistoa
itselleen. Näin Linus
Torvalds luonnehtii
Linuxissa käytettyä lisenssiä:

It’s ”fair”. It asks everybody –
regardless of circumstance – for the same thing. It asks for the effort
that was put into improving the software to be given back to the common
good. You can use the end result any way you want (and if you want to use
it for ”bad” things, be my guest), but we ask the same exact thing of
everybody – give your modifications back.

Torvalds on aina korostanut avoimen
lähdekoodin pragmaattisia etuja ja vastustanut moralistisia
näkökohtia avoimuuteen. Mitä nämä hyödyt sitten ovat, ja miksi ne ovat
relevantteja nimenomaan kirjastolle?

Internet-aikakauden ohjelmistokehitystä

Avoin lähdekoodi perustuu Internetin täysimittaiseen hyödyntämiseen
ohjelmistokehityksessä: sen voima syntyy laajojen ihmisjoukkojen
osallistumisesta prosessiin. Tämä ei tarkoita pelkästään ohjelmoimista
tai teknologista kehittämistä, vaan myös ohjelmiston käyttäjien ja
kehittäjien suoraa vuoropuhelua julkisilla foorumeilla.

Tällainen ohjelmistokehitys on oikeastaan loogiseen
lopputulokseensa vietyä turhan ja päällekkäisen työn välttämistä: ei
keksitä pyörää uudelleen erikseen jokaisessa organisaatiossa, vaan
tehdään yhteistyötä koko maailman tasolla sellaisten ihmisten
kanssa, joiden tarpeet vastaavat omiamme.

Kirjastot rajallisine resursseineen voisivat saada valtavia hyötyjä
tällaisesta kansainvälisestä yhteistyöstä: yhden kaupungin tasolla
kirjastolaitos on rajallinen organisaatio, mutta valtion tai maailman
kirjastot yhdistettynä ovat jo suuri tekijä. Kirjastolaitokset
tekevätkin jo yhteistyötä ideatasolla esimerkiksi konferessien
muodossa, mutta yhteinen ohjelmistojen kehittäminen tekisi
yhteistyöstä paljon konkreettisempaa.

Kannattaa huomata, että suuri osa maailman merkittävistä
kaupallisista tietotekniikan yrityksistä on jo tajunnut laajamittaisen
yhteistyön edut. Seuraavassa taulukossa on lueteltu Linuxin
kehittämiseen osallistuvat tahot:

(lähde: www.linuxfoundation.org)

Suurimpien Linuxin kehittäjien joukossa ovat Novell, IBM, Intel,
Oracle sekä Google. Mahdolliset harrastelijat ovat
joukossa selkeässä vähemmistössä, ja mukana on paljon keskinäisiä
kilpailijoita! Miksi ihmeessä kilpailijat lahjoittavat kehitystyönsä
hedelmiä toisilleen?

Siitä yksinkertaisesta syystä, että ne näkevät
Linuxin infrastruktuurina, joka vasta mahdollistaa niiden
varsinaisen liiketoiminnan: palveluiden
tarjoamisen. Yhteinen, varmatoimisen, joustavan ja eteenpäin
kehittyvän infrastruktuurin kehittäminen on kaikkien etu. Analogia
perinteisen infastruktuurin kanssa on lähes aukoton: myös esimerkiksi
yhteisesti ylläpidetty tieverkosto toimii samalla tavalla palveluiden
mahdollistajana.

Koska kirjasto on jo lähtökohtaisesti julkinen palvelu, pitäisi
yhteisen infrastruktuurin kehittämisen olla itsestäänselvempää kuin
valtavien tietotekniikkayritysten tapauksessa. On oikeastaan
poikkeuksellinen luonteva ajatus, että yhteisin verovaroin ylläpidetty
laitos suuntaisi resursseja siihen, että suomalaiset
ohjelmistoasiantuntijat kehittäisivät yhteistä infrastruktuuria (enkä
tässä tarkoita Linuxia) tavalla, jossa työn tulokset palautuvat koko
yhteiskunnan käyttöön.

Ohjelmistojen ja organisaatioiden suhde

Mikä on organisaation suhde käyttämiinsä ohjelmistoihin?

Esimerkiksi kirjastojärjestelmän kaltainen ohjelmisto pitäisi nähdä
osana organisaation sisäisiä työskentelyprosesseja: ohjelmisto ei
muuta olekaan kuin ohjelmakoodin muotoon kiteytetty malli siitä, miten
työprosessit tapahtuvat. Tähän malliin kuuluu näkemykset siitä, mikä
osa työstä on automatisoitu ja mikä ei, minkälaisissa vaiheissa työ
tapahtuu, keitä työhön osallistuu sekä minkä muiden ohjelmistojen,
prosessien ja organisaatioiden kanssa tehdään yhteistyötä.

Jos organisaation keskeisiä toimintoja määrittävään ohjelmistoon
suhtaudutaan kuin kaupan hyllyltä ostettavaan, valmiiksi paketoituun
tuotteeseen, on organisaation myös mukautettava toimintansa tuotteen
rajoituksiin. Huonossa tapauksessa hankittu suljettu ja joustamaton
ohjelmisto rajoittaa pitkäksi ajaksi organisaation toimintaa ja
sanelee jopa ehtoja organisaation rakenteelle.

Toinen ratkaisumalli on, että organisaatio tilaa oman ohjelmistonsa
joltakin toimittajalta, joka sitten toteuttaa ohjelmiston alusta
lähtien mittatilaustyönä vastaamaan organisaation vaatimuksia. Ongelma
tässä mallissa yksittäisen kirjaston kannalta on tietysti se, että
kunnollisen laajan ohjelmiston toteuttaminen on hyvin kallista, eikä
kirjastolla ole siihen varaa.

Parhaimmillaan avointa lähdekoodia hyödyntämällä saadaan parhaat
puolet molemmista vaihtoehdoista: ensinnäkin lähtökohdaksi saadaan käyttövalmiita ohjelmistokomponentteja, joita on jo laajasti testattu ja kehitetty. Tämä valmis avoin infrastruktuuri toimii
sitten perustana räätälöinneille, jotka voidaan tilata ulkopuoliselta
ohjelmistotoimittajalta tai joissakin tapauksissa jopa toteuttaa
omalla työvoimalla. Ja parhaassa tapauksessa räätälöinnin
yleiskäyttöiset tulokset sitten palautetaan osaksi alkuperäisiä
projekteja tai julkaistaan muuten muiden hyödynnettäviksi, sikäli kun
niistä on yleistä hyötyä muillekin kuin omalle organisaatiolle.

Parhaat avoimen lähdekoodin ohjelmistot — ja parhaat ohjelmistot
ylipäätään — ovat joustavia. Ne tekevät selkeän eron sellaisten
ohjelmiston osien välillä, joihin kohdistuu eniten muutospaineita
reaalimaailman olosuhteiden muuttuessa (kuten käyttöliittymät), sekä
niiden osien, jotka ovat muuttumattomampia ja pikemminkin osa yhteistä
ohjelmistoalustaa. Parhaat ohjelmistot ovat modulaarisia: ne
ratkaisevat tietyn osaongelman kerrallaan, jolloin kokonaisratkaisu
voidaan rakentaa yhdistelemällä komponentteja eri
lähteistä. Käyttöliittymän voi vaihtaa ja pitää järjestelmän ydin
samana. Järjestelmään voi lisätä toiminnallisuuksia ja siitä voi
korvata osia.

Joustava, helposti muokattava ja avoimuuteen pyrkivä ohjelmisto
palauttaa organisaatiolle vallan päättää omasta suunnastaan, tehdä
kokeiluja, määritellä itse tehtävänsä ja työsarkansa. Avoimen
lähdekoodin ohjelmistot tekevät organisaatiosta riippumattoman
yksittäisestä järjestelmätoimittajasta
. Kirjasto ei edelleenkään
joudu tekemään tietoteknisiä ratkaisujaan ja toteutuksiaan itse, vaan
voi ulkoistaa ne, mutta kirjaston ja palveluntarjoajan suhde
perustuu palveluiden ostamiseen: ylläpitopalveluihin,
räätälöintipalveluihin, kehityspalveluihin. Tällaisessa suorassa
palvelusuhteessa kirjasto saa juuri mitä tilaa — ja voi myös vaihtaa
palveluntarjoajan, vaikka ohjelmisto pysyisi
samana. Kuten Mace
asian ilmaisi
, kirjasto ei enää tyydy
”antamaan rahaa siitä, ettei ole estetty käyttämästä jotain
ohjelmaa”
.

Lopuksi

Tämän kirjoituksen pohdinnat ovat vielä hyvin kaukana kirjaston
tosiasiallisesta tavasta suhtautua käyttämiinsä ohjelmistoihin, vaikka
se muuten on monilla aloilla valtavirtaa ja onkin hyvin lähellä
maailman menestyksekkäimpien organisaatioiden ajattelutapaa.

Labs-projekti on tarjonnut ensimmäisiä
käsinkosketeltavia tuloksia siitä, mitä kansainvälinen, avoimeen
lähdekoodiin perustuva kirjaston kehittäminen voisi Suomessa
olla. Jatkamme ruohonjuuritason työskentelyä, yhteyksien
luomista ja kehitystyötä, jotta voisimme luoda pohjaa tulevaisuudessa
tapahtuville periaatteellisille päätöksille.

Be Sociable, Share!