Avoin lähdekoodi ohjelmistotaloudessa

(IPRinfo 3/2001)

1980- ja -90-luvuilla vahvimmat ohjelmistotalouden toimijat pohjasivat menestyksensä salassapidettäviin lähdekoodeihin ja tiukan rajallisiin ohjelmistolisensseihin. Kuten niin usein maailmassa, myös tälle ilmiölle syntyi vastavoima, tässä tapauksessa avoimen lähdekoodin kannattajat.

Ensimmäisen virallisen askeleensa avoimen lähdekoodin suuntaan he ottivat vuonna 1983, kun Richard Stallman perusti Free Software Foundationin (FSF) ja loi samalla ensimmäisen avoimen lähdekoodin lisenssisopimuksen, General Public License:n (GPL), jonka alla lisensoitavia ohjelmia kutsutaan Free Software:ksi.

Ohjelmointi on tiedettä

Richard Stallmanin ja FSF:n lähtökohta on varsin yksinkertainen: tietokoneohjelma on verrattavissa akateemisen tutkimuksen tulokseen. Jotta ohjelma täyttäisi tarkoituksensa, tulee sitä voida tarkastella, kritisoida ja käyttää uuden tutkimuksen pohjana, aivan kuten akateemisia töitäkin.

Voitaisiin sanoa myös, että FSF:n mukaan ohjelmointi on tiedettä ja ohjelmisto on tapa ilmaista itseään vertaisilleen eikä tätä ilmaisua tule voida rajoittaa. Avoimen lähdekoodin ohjelmistot ovatkin pääasiallisesti ammattimaisesti ohjelmoiville suunnattuja ohjelmia, joiden arvostus pohjautuu laatuun ja tehokkuuteen.

FSF:n lähtökohta ja ideologia ovat osaltaan hidastaneet avoimeen lähdekoodiin pohjaavan ohjelmistosuunnittelun laajempaa omaksumista. Varsinkin monilla kaupallisilla toimijoilla on edelleen omat epäilyksensä FSF:n tavoitteiden ja niiden ilmaisun osalta. Niinpä Eric Raymond ja kumppanit kehittivät vuonna 1998 uuden konseptin “Open Source”.

Open Source on tietyn merkityssisällön omaava käsite, jota ei tulisi sekoittaa esimerkiksi termeihin Freeware, Shareware tai Public Domain Software. Open Source-termin käyttöä kontrolloi Open Source Initiative (OSI), joka hyväksyy OSI:n kriteerit täyttäviä lisenssisopimuksia Open Source-lisensseiksi.

Periaatteessa Open Sourcea on vain OSI:n hyväksymien lisenssisopimusten alaisuudessa jaeltava koodi, mutta ainakin käytännössä kyseistä termiä viljellään varsin huoletta lukuisissa yhteyksissä, jolloin on ajoittain vaikeaa tietää, mistä loppujen lopuksi on kyse, kun puhutaan Open Sourcesta. Tässä käyttämäni sanapari avoin lähdekoodi kattaa sekä Free Softwaren että Open Sourcen.

Ohjelmistosuunnittelu on teollinen prosessi

Tietokoneohjelmaa luotaessa on kyseessä periaatteessa teollinen suunnitteluprosessi, jossa lähdetään liikkeelle tavoitteesta, joka halutaan saavuttaa tai ongelmasta, joka halutaan ratkaista. Ohjelman luominen tapahtuu lähdekoodia laatimalla prosessissa, jossa koodia kirjoitetaan, testataan ja hienosäädetään annettujen spesifikaatioiden puitteissa.

Miksi lähdekoodi sitten on niin tärkeää? Lähdekoodi on koko ohjelman keskeisin osa ohjelmoijan kannalta. Se ilmaisee ohjelman luoneen tahon ideat sekä ajatukset ja siihen tehtävät muutokset muuttavat itse ohjelmaa.

Lähdekoodi “kommenttiraitoineen” on opas siihen miten ohjelman taustalla oleva idea voidaan toteuttaa. Kuka tahansa ohjelmointikieltä ja ohjelmointia osaava voi lähdekoodiin tutustumalla selvittää, mitä alkuperäinen ohjelmoija on tehnyt ja toteuttaa saman ratkaisun uudestaan muokaten tai vaikkapa sellaisenaan.

Säästääkseen aikaa ja välttääkseen virheitä ohjelmoijat usein selvittävät, mitä ratkaisuja aiemmat vastaavia ohjelmistoja suunnitelleet ja toteuttaneet ovat hyödyntäneet. Näin ollen ohjelmistosuunnittelun voidaan sanoa olevan kumulatiivinen innovaatioprosessi, jossa hyödynnetään muualla toimineita ideoita ja konsepteja soveltamalla niitä kulloinkin edessä olevaan ongelmakenttään. Avoin lähdekoodi mahdollistaa suunnitteluprosessin nopeuttamisen ja läpinäkyvyyden.

Avoin lähdekoodi ja lisenssit

Avoimen lähdekoodin kiivaimpien kannattajien mielestä tietokoneohjelmiin ei tulisi sallia mitään immateriaalioikeudellisia intressejä, vaan ohjelmien tulisi olla vapaasti kaikkien hyödynnettävissä. Kiinnostavaa kyllä koko avoimen lähdekoodin järjestelmä pohjaa kuitenkin vankasti immateriaalioikeuden ja sopimusoikeuden konsepteihin.

Avoimeen lähdekoodiin liittyviä oikeustapauksia ei tietääkseni ole toistaiseksi yhtäkään kappaletta miltään mantereelta, joten valtaosa oikeudellisista kysymyksistä on edelleen jossain määrin avoinna tulkinnalle. Tässä yhteydessä voidaan kuitenkin osin hyödyntää jo olemassa olevia analyysejä tietokoneohjelman immateriaalioikeudellisesta suojasta ja ohjelmistojen lisensoinnista.

Avointa lähdekoodia jaellaan pääasiallisesti varsin tiukkojen tekijänoikeuslisenssien ehtojen alla. OSI:n mukaan avoimen lähdekoodin lisenssin tulee täyttää muun muassa seuraavat ehdot:

a. lisenssillä ei saada rajoittaa mitään tahoa jakelemasta ohjelmaa haluamallaan tavalla ilmaiseksi,
b. ohjelmaa tulee saada muokata ja kopioida ja jaella näitä kopiota tai muokattuja versioita vapaasti edelleen,
c. ohjelmaa tulee saada käyttää kenen tahansa toimesta mihin tahansa käyttötarkoitukseen ja
d. lisenssinsaajan tulee siirtää saamansa lisenssin ehdot edelleen eikä niihin saa lisätä mitään rajoituksia.

Nämä käyttöehdot koskevat kuitenkin vain itse lähdekoodia, eivät siihen liittyviä palveluita, kuten ylläpitoa ja konsultointia. Juuri liitännäispalvelut ovat keskeisiä avoimen lähdekoodin business-mallissa.

Patentit tulee lisensioida

Patenttien osalta esimerkiksi GPL:ssä todetaan, että mahdolliset patentit tulee lisensoida samoin ehdoin kuin tekijänoikeuskin tai ei ollenkaan. Näin ollen olemassa olevat patentit saattavat rajoittaa avoimen lähdekoodin lisensointia ja hyödyntämistä paikoin huomattavastikin, sillä harva patentinhaltija on valmis sallimaan keksintönsä hyödyntämisen avoimen lähdekoodin lisenssin ehdoilla. Poikkeuksiakin luonnollisesti on.

Itse avoimen lähdekoodin patentointia vaikeuttaa valittu ohjelmistokehityksen malli. Patentoinnin edellytyksenä oleva salassapito ennen hakemuksen jättämistä kun ei kovinkaan hyvin sovellu avoimeen ja yhteisölliseen kehitykseen. Lisäksi patentin hakemiseen liittyvät käytännön seikat, kuten patentointikustannukset, saattavat osaltaan rajoittaa patenttijärjestelmän hyödyntämistä avoimen lähdekoodin ohjelmistokehityksessä. Tulevaisuudessa tilanne on kenties erilainen, esimerkiksi tietokonealan jättien intressissä voi osaltaan olla myös avoimeen lähdekoodiin liittyvien keksintöjen patentointiprosessin aloittaminen ennen koodin julkistamista kehitysyhteisölle.

Muutamia ongelmakohtia

Paljon puhuttu avoimeen lähdekoodiin liittyvät riski on niin kutsuttu virusvaikutus. Virusvaikutuksella tarkoitetaan, että mikäli avointa lähdekoodia tai sen muunneltua versiota hyödynnetään osana jotain uutta ohjelmaa, tulee tämän uudenkin ohjelman lisensointi suorittaa avoimen lähdekoodin lisenssin ehtojen mukaisesti.

Tällöin avointa lähdekoodia hyödyntänyt taho saattaa joutua luovuttamaan omia immateriaalioikeuksiaan ja arvokasta lähdekoodiaan vapaaseen jakeluun, vailla korvausta. Muutoin uuden ohjelman kehittäjätaho saattaa syyllistyä lisenssisopimuksen ehtojen ja aiempien tekijöiden oikeuksien loukkaukseen.

Toisena ongelmana on työajan ja vapaa-ajan ohjelmoinnin erottaminen toisistaan. Suuri osa avointa lähdekoodia työstävistä on ammattiohjelmoijia, jotka saattavat hyvinkin ohjelmoida työtehtävänään samankaltaisia ohjelmia kuin mihin he käyttävät aikaansa työajan ulkopuolella. Tällöin on olemassa riski esimerkiksi työnantajan liikesalaisuuksien leviämisestä ei-toivotulla tavalla.

Samoin lähdekoodiin kohdistuvien immateriaalioikeuksien jakaantuminen ja mahdolliset työsuhdekeksintöihin liittyvät tulkintakysymykset voivat olla erityisen vaikeita avoimen lähdekoodin yhteydessä. Nämä epävarmuustekijät vaikuttavat muun muassa lisenssisopimusten pätevyyteen ja luovat siten riskejä myös kyseisen lähdekoodin lisenssinsaajille.

Suuri riski liittyy mielestäni mahdolliseen kolmansien osapuolien immateriaalioikeuksien loukkaukseen. Mikäli avoimen lähdekoodin ohjelmaan on tarkoituksella tai epähuomiossa otettu osia kolmannen tahon suojatusta ohjelmasta, ovat kaikki kyseistä ohjelmaa käyttävät, jakelevat ja muokkaavat vaaravyöhykkeessä. Erityisesti ohjelmistopatenttien määrän sekä ennen kaikkea niiden valvonnan ja hyödyntämisen kasvaessa riski on todellinen.

Mahdollisuuksia ja ongelmia

Avoin lähdekoodi tarjoaa sekä kiinnostavia mahdollisuuksia että kiinnostavia ongelmia.

Ohjelmistosuunnitteluprosessin kannalta avoin lähdekoodi voi nopeuttaa suunnittelua ja parantaa tuotteiden laatua, mutta siihen liittyvät oikeudelliset riskit vaativat huolellista arviointia ennen kuin toimintaan ryhdytään. Etukäteissuunnittelulla, selkeillä toimintatavoilla ja toiminnan seurannalla voidaan kuitenkin välttää ilmeisimmät riskit sekä saavuttaa hyväksyttävä varmuustaso.

Lisätietoa avoimesta lähdekoodista, ks. esimerkiksi:

http://www.free-soft.org/

http://www.opensource.org/

Mikko Manner
OTK
Asianajotoimisto Roschier-Holmberg & Waselius