Miksi Open Source -koodaus häviää kilpailussa kaupallisille tuotteille?
Runsas viikko sitten apulaisoikeuskansleri antoi merkittävän päätöksen Kelan eräästä tietojärjestelmäprojektista. Viranomaisen mukaan pelkästään tarjottavan ohjelmiston toteutustapa ei saa olla rajaava tekijä tarjousten jättämiselle ja arvioitavaksi pääsemiseksi. Päätöksellä tuodaan avoimen lähdekoodin ohjelmat samalle viivalle kaupallisten tuotteiden kanssa. Tästä on innostuttu muun muassa avoimen lähdekoodin keskuksen COSS:in piirissä.
On kuitenkin syytä pistää jäitä hattuun. Tyypillisesti nimittäin tietojärjestelmähankkeissa Open Source -koodaus häviää kilpailussa kaupallisille tuotteille. Näin tapahtuu vaikka kaupallisissa tuotteissa joudutaan maksamaan ohjelmien lisensseistä.
Jotta asian ymmärtäisi kunnolla, on tärkeää ymmärtää miten tietojärjestelmiä nykyään rakennetaan.
* * *
Tietojärjestelmien rakentamisessa ohjelmoinnin merkitys on laskenut ja laskee jatkuvasti.
Ylen harvassa järjestelmähankkeessa halutaan lähteä ohjelmointityöhön. Kelan tiedonvälityssysteemi ja Cossin puuhamiesten esiin nostama Laurean intranet-portaali ovat hyviä tyyppiesimerkkejä nykyaikaisista hankkeista. Näissä etsitään lähes aina ohjelmistotuotetta, jonka varaan ratkaisu rakennetaan.
Termi ”tuote” tässä yhteydessä tarkoittaa merkittävästi enemmän, kuin ohjelmointiframeworkiä, tietokantaa tai käyttöjärjestelmää. Tässä yhteydessä tuote on ohjelmistokokonaisuus, josta löytyvät valmiiksi tehtyinä ominaisuuksina bisnesprosessin vaatimat toiminnallisuudet.
On toki selvää, että valmis tuote ei useinkaan täytä kaikkia asiakasorganisaation haluamia vaatimuksia. Niinpä nykyaikaiset tietojärjestelmäprojektit sisältävätkin usein melkoisesti tasapainottelua tuotteen vakiotoiminnallisuuden ja alun perin kuviteltujen käyttötapausten välillä. Tuote on aina jonkin verran kankeampi, kuin räätälintyönä tehty custom-sovellus.
Miksi kuitenkin sitten tuotteita suositaan tietojärjestelmien pohjana?
Pääasiassa siksi, että tuotteet yleisesti ottaen tekevät sen, mitä lupaavat. Jotkut paremmin, jotkut huonommin. Mutta silti yleisesti ottaen ne ovat parempi vaihtoehto, kuin samankaltaisen toiminnallisuuden totetuttaminen itse. Custom-koodauksessa on aina enemmän aikatauluongelmia, riskejä ja bugeja, kuin kunnolla tuotteistetun ohjelmiston ominaisuuksien käytössä.
Räätälintyönä tehdyn ohjelmiston vaikutukset työvoimakustannuksiin ja aikatauluihin ovat niin merkittäviä, että tuotepakettien lisenssihinnat ovat kerta kaikkiaan pienempi kahdesta pahasta.
Koodin tuottaminen Open Source -periaatteiden mukan ei tähän ongelmaan juuri tuo minkäänasteista parannusta. Tietojärjestelmän kehittäjillä on joka tapauksessa pääsy lähdekoodiin ja ani harvasta asiakasyrityksestä löytyy edes halua - tietotaidosta puhumattakaan – lähteä kirjoittamaan koodia itsessään. Näin tekemällä sitä paitsi asiakkaana toimiva taho altistuisi vastuuseen ohjelmiston laadusta.
* * *
Open Source -koodaus häviää kilpailussa kaupallisille tuotteille yksinkertaisesti sen takia, että vähääkään monimutkaisemmissa tietojärjestelmähankkeissa sekä “suljettu”, että “avoin” koodaus häviävät kummatkin tuotteille.
FLOSS-maailma on onnistunut tuotteistamaan monia tietojärjestelmien ylläpitäjien ja tehokäyttäjien työkaluja. Firefox, 7-zip, Ubuntu, MySQL ym. ovat kaikki esimerkkejä kokonaisuuksista, joista on kovalla työllä saatu aikaiseksi tuote.
Mutta miten ihmeessä bisnestuotteiden suhteen tuotteistuksessa ollaan vielä kovin kaukana kaupallisista tuotteista?
Yritin esimerkiksi taannoin etsiä avoimen lähdekoodin kauppapaikkatuotetta, joka tukisi pelkkää kappaletavarakauppaa monimutkaisempia tuoterakenteita promootioineen. Tämä tutkimislinja veti vesiperän. Yksikään vakavasti otettavan oloinen OSS-kaupparatkaisu ei tue kunnon tuotekonfiguraattoreita, tuotteiden yhdistämistä tarjouskokonaisuuksiksi ja kausimaksullisten palvelutuotteiden tarjoamista, tarjouksien kohdistamista eri tuoteyhdistelmän osille ja tehokkaita liittymiä tuotetiedon ulkoiseen Master Data -lähteeseen
Toinen hämmennyksen kohde on SharePointin karkuun päästäminen. Avoimista ratkaisuista löytyy monia SharePointin yksittäisistä toiminnallisuuksista, mutta toistaiseksi yksikään FLOSS-ratkaisu ei ole pystynyt vetämään näitä ominaisuuksia samaan nippuun yhtä elegantilla tavalla. FLOSS-SharePoint-alike tulisi kursia kasaan monista pienistä osakokonaisuuksista ja näitten välinen integraatio ei ole mikään pieni juttu.
* * *
Minun kokemukseni laajasta sovelluskehitystyöstä bisneskriittisiä tietojärjestelmiä rakennettaessa ovat huonoja. Ja avoin lähdekoodi ei tällaisten projektien perusongelmia ratkaise.
Vai ratkaiseeko? Onko kellään esimerkkiä onnistuneesta bisnesjärjestelmän toteuttamisesta, jossa kaupallisen tuotteen käyttämisen sijasta on tuotettu avointa koodia ja saavutettu tietojärjestelmäprojektin tavoitteet tuotevaihtoehtoa paremmin?









