Teksti: PÄIVI TYNI, kuva: SEPPO SÄÄMÄKI
Hallitusohjelmassa mainitaan erääksi tavoitteeksi digitalisaation edistäminen. Tähän liittyen vasemmistoliiton vuoden 2016 puoluekokous asetti tavoitteeksi, että valtion ja kuntien uudet ohjelmistot hankitaan avoimena lähdekoodina ja avoimilla rajapinnoilla. Kaikki eivät varmaankaan ole niin paneutuneita aiheeseen, että käytetty käsitteistö olisi täysin selvää. Asiaa voi kuitenkin lähestyä hyvinkin arkisen vertauksen kautta.
Mitä, jos tarvitsisit perheellesi kakkua, mutta et osaisi leipoa? Menisit varmaankin konditorioon ja ostaisit kakun. Tai jos mieleistäsi kakkua ei olisi valmiina, tilaisit sellaisen. Selittäisit parhaasi mukaan, mitä aineksia siinä pitäisi olla, miltä sen pitäisi maistua ja näyttää ja kuinka monelle hengelle sen pitäisi riittää.
Saattaisit saada mieleisesi kakun, mutta voisi käydä niinkin, että seuraavan kerran haluaisitkin hieman erilaisen kakun – ehkä jonkin aineksen lisättynä tai hieman eri näköisen ja useammalle hengelle. Joku olisi voinut saada vaikka allergiakohtauksen kakusta ja silloin pitäisi voida selvittää, mikä aines sen aiheutti. Yhtä kaikki, kakun valmistaja määräisi hinnan ja kertoisi, milloin voi kakun toimittaa.
Kun kakun valmistaja huomaisi, että olet tullut suorastaan riippuvaiseksi hänen kakuistaan, hän voisi korottaa hintaa. Voisit tietysti mennä toiseen liikkeeseen, mutta kakun kehittely pitäisi siellä aloittaa jälleen alusta.
Tähän olisi tietenkin ratkaisuna se, että ostaisitkin kakun, mutta vaatisit mukaan reseptin ja leivontaohjeet. Näin voisit vaikka itse kehitellä kakkua tai ainakin teettää sen muualla ja kilpailuttaa eri valmistajia. Kuta kuinkin tästä on kysymys myös avoimessa lähdekoodissa.
Kilpailuttaessaan eri ohjelmataloja ohjelmiston tilaaja pyrkii kuvailemaan, mitä toimintoja ohjelmassa pitäisi olla ja missä laajuudessa sitä käytettäisiin. Ikävä kyllä ohjelmistojen tilaajilla ei aina ole kunnon käsitystä siitä, miten pitäisi teknisesti selittää tarpeet ohjelmiston toimittajalle. Ja toisaalta ohjelmistotalot eivät ymmärrä tarpeita käyttäjien näkökulmasta ja arjen monimuotoisuudessa. Siksi lopputulosta pitäisi useinkin voida muuttaa ja kehittää jälkeenpäin.
Tietokoneohjelmien ja ohjelmistojen “valmistusta” voi karkeasti ottaen verrata juuri kakun leipomiseen. Kakkuainekset sekoitetaan ja pannaan vuokaan. Sitten kakku paistetaan. Valmiista kakusta on mahdotonta –ainakaan täysin tarkasti – päätellä sen aineksia ja valmistustapaa. Niinpä ollaan riippuvaisia sen alkuperäisestä valmistajasta.
Suljettua tietokoneohjelmistoa tehtäessä lähdekoodi, eli ohjelman “resepti”, jolla ohjelma rakennetaan, kirjoitetaan valitulla tavalla. Sitten kirjoitettu koodi “käännetään” eli muunnetaan kokonaisuudeksi, joka toimii halutussa ympäristössä. Valmiista ohjelmasta ei voi nähdä, millä komennoilla eli koodilla se on saatu aikaan. Niinpä sitä ei myöskään voi muuttaa tai parannella kukaan muu, kuin lähdekoodin alun perin toteuttanut taho. Tällainen suljettu koodi johtaa todennäköisemmin niin sanottuun toimittajariipuvuuteen eli ohjelmavalmistajan monopoliin.
Kun ohjelmistot hankitaan avoimen lähdekoodin vaatimuksella, voi niitä parannella ja muuttaa muuttuvien tarpeiden mukaan joutumatta maksamaan usein kohtuuttomia maksuja ohjelmiston alkuperäiselle toimittajalle. Muutostyöt voi aina kilpailuttaa uudelleen, jolloin voidaan usein säästää paljon rahaa. Avoin lähdekoodikaan ei kuitenkaan ole kenen tahansa muokattavissa tai kaapattavissa omaan käyttöönsä, ettei tietoturvallisuus vaarannu. Yleensä kunkin avoimen lähdekoodiversion ylläpitäjinä toimii jokin kehittäjäyhteisö, joka huolehtii ettei vaarallista tai virheellistä koodia pääse sisään.
Lisää aiheesta muualla verkossa:
Avoinkoodi.fi Avoin koodi kunniaan
Ehdotus: Microsoftin entiset työntekijät kehittämään julkisen sektorin tietojärjestelmiä
avoimen lähdekoodin periaatteella (Kansan uutiset 15.7.2015)
*