Babel IT

Java software ontwikkeling

Open-source versus closed-source

De meeste bedrijven waar ik mijn opdrachten voor uitvoer zijn fervente gebruikers van closed-source software. Daar betalen ze jaarlijks (vaak) enorme bedragen voor aan bedrijven als IBM, Oracle, SAP en (niet te vergeten) Microsoft. Ik begrijp dat niet zo goed. Voor de meeste producten van hiervoor genoemde leveranciers bestaan open-source varianten. Deze varianten zijn doorgaans gratis of tegen veel lagere (licentie) kosten te verkrijgen. Waarom doen bedrijven dat niet? O, er zijn wel bedrijven die dat doen en die zijn er vaak ook erg succesvol mee. De licentiekosten zijn lager, in sommige gevallen zijn de personeelskosten hoger omdat er meer kennis in huis moet zijn die anders bij een leverancier wordt “ingekocht”. Maar waarom doen niet veel meer bedrijven dat?

Waarom stappen niet alle bedrijven over op open-source alternatieven? Zelfs de overheid heeft ooit geprobeerd in het kader van het programma “Nederland Open In Verbinding” overheidsinstellingen kritisch te laten kijken naar de software die ze gebruiken en die, waar mogelijk en nuttig, te vervangen door goedkopere en aan open standaarden voldoenende alternatieven. Dit is bij de meeste overheidsinstellingen jammerlijk mislukt: welke gemeente gebruikt alleen OpenOffice? Of zijn de ministeries overgestapt op Linux op de desktop? In Duitsland (en ook België) vindt dit op veel grotere schaal plaats, dan in Nederland. (Sterker nog, in openbare aanbestedingen wordt doodleuk vereist dat Microsoft Office moet worden gebruikt.)

Waarom gebruiken bedrijven geen open-source software? De meeste bedrijven gebruiken wel degelijk open source software, alleen ze weten het niet. Neem een product als IBM WebSphere applicatie server: een groot deel van de kernfuncties van dat systeem wordt door IBM ingevuld met open source libraries, zoals Axis 2 (voor webservices), OpenJPA, etc. En nu het frappantste: als je binnen een bedrijf dat bijvoorbeeld WebSphere gebruikt, gaat vragen of iemand zich ervan bewust is dat er zoveel open source libraries in het product zitten, dan kijken ze je meestal heel vreemd aan. Maar, waarom zou een bedrijf als IBM dat doen? Open source libraries gebruiken in zijn producten? Dat doen ze niet als het kwalitatief niet aan hun standaarden voldoet. Kortom, die libraries zullen dan dus best goed zijn. Als een bedrijf als IBM dat doet, waarom zou de gemiddelde bank, overheidsinstelling of ander bedrijf dat dan niet ook kunnen doen?

En dan komen we aan het heikele punt: als je iets van een bedrijf koopt, kun je hem/haar ervoor aansprakelijk stellen als het niet werkt. Mijn ervaring met bedrijven als IBM maar ook Oracle en Microsoft, is dat hun support nou niet direct het beste onderdeel van het bedrijf is. Mijn ervaring met open source communities is daarin veel positiever. Meld maar eens op een forum dat feature X of Y van open source product B niet goed functioneert. Meestal ligt de fix de volgende dag al klaar. Dat heb ik bij grote bedrijven nog nooit meegemaakt. Ik kan me herinneren dat we een keer tegen een probleem in DB2 op AIX aanliepen (eind jaren ’90 speelt dit). Het heeft alles bij elkaar ongeveer 6 maanden geduurd (en dat is erg snel) voordat daarvoor een fix beschikbaar was (we hebben de livegang van het systeem ervoor moeten uitstellen). Sterker nog, het duurde 4 maanden voordat IBM toegaf dat het inderdaad een bug in de software was. Kortom, je betaalt als bedrijf enorme bedragen aan leveranciers en vervolgens moet je nog maar hopen dat ze je probleem kunnen c.q. willen oplossen. Beetje vreemde situatie.

Ook het argument dat een leverancier niet zo snel de stekker uit een product zou trekken omdat het er zoveel aan verdiend, is niet valide. In IBM Portal 6.0 zat PDM, dat hebben ze in 6.1 (en alle latere versies) gewoon laten vallen zonder er een directe vervanger voor in de plaats te zetten. Lekker betrouwbaar. Indien in een open source pakket zo iets gebeurd, heb je altijd de source code nog. Mocht je per se gebruik willen blijven maken van de betreffende feature, dan bouw je hem desnoods zelf in in de nieuwe versie. Ook het fixen van problemen, kan op deze manier. De meeste Java libraries zijn zo opgezet dat het zelfs gefaciliteerd wordt zelf aanpassingen aan het framework aan te brengen.

 

Mijn punt is dus: gebruik open source software. Zorg dat je de mensen met de juiste kennis en kunde in huis hebt, danwel inhuurt (dat moet je voor closed source producten ook doen, dus daarin is geen verschil) en houdt die licentiekosten lekker in je zak en doe er leuke dingen mee, zoals meer business genereren.