Op deze pagina treft u het
oorspronkelijke artikel van Henk Klöpping aan over "Open Source"
dat (vrijwel integraal) verscheen in de Computable van 16 oktober
1998. Zie ook de site van
Computable.
'Waterdichte' software
Er is een stille revolutie gaande - al is het misschien beter
te spreken over de 'coming-out' van iets dat geleidelijk aan
is geëvolueerd. De impact van wat gaande is zal groot zijn:
er is een parallel te trekken met de opkomst van het Internet.
Ook daar zagen we dat een ontwikkeling van tientallen jaren
plots 'doorbrak' naar de publieke sfeer - en met uiteindelijk
significant succes, niettegenstaande alle scepsis en ongeloof.
Het bleek 'The Right Thing' te zijn.
Of Open Source ook 'The Right Thing' is moet nog blijken. Maar
er zijn veel signalen die daar op wijzen. Zo heeft Oracle - toch
niet de eerste de beste - recentelijk besloten om haar commerciële
software te porten naar het Linux operating systeem. Zij volgde
daarmee Informix. Eerder had Sun al aangegeven ook een vinger in
de Linux-pap te willen houden en zich aangesloten bij "Linux
International". En Marc Andreesen van Netscape spreekt enthousiast
over de verbetering van de kwaliteit die ontstond toen de Netscape
browser broncode beschikbaar kwam voor het publiek. Als u straks de
URLS volgt die ik aan het eind van dit artikel opgeef, maakt u ook
al gebruik van 'horizontaal geprogrammeerde software' - ook wel
Open Source of Free Software genoemd. De broncode van deze software
is vrijelijk beschikbaar.
De wereld verandert - organisatiestructuren wijzigen meer en meer van
een verticaal model naar een horizontaal model. Coöperatie en
concurrentie blijken elkaar niet langer meer uit te sluiten.
En de ontwikkelmethodieken veranderen mee: van verticale naar
horizontale software.
Kort en goed: de tijd is rijp. Open Source heeft de toekomst.
De verticale ontwikkelmethode
De meeste software wordt van oudsher 'verticaal' gebouwd: een kleine
groep programmeurs knutselt ijverig, in opdracht van 'een baas', aan een
product wat van juist voldoende kwaliteit is. Wat precies 'voldoende
kwaliteit' is, wordt uiteraard gedefinieerd door de afnemer.
Als die afnemer niet in staat is om de kwaliteit zelf te bepalen -
IT is nu eenmaal een complexe aangelegenheid - kan hij
bijvoorbeeld een IT deskundige in dienst nemen, die hem hierbij
helpt.
Bedrijven of personen die het zich niet kunnen veroorloven om
een eigen expert in te huren en die verder de kennis niet
(kunnen) hebben hoe je kwaliteit van software beoordeelt hebben
geen andere keus dan blind te varen op de optiek en expertise
van de softwarebouwer/leverancier, die uiteraard met flair de
eigen standaard-producten adviseert. Het is een bekend fenomeen
dat de bedrijfsprocessen in dat geval op de software worden
aangepast inplaats van andersom.
Het verticale ontwikkelmodel voldoet dus goed, zolang er door de
leverancier voldoende kundige specialisten te werven zijn, er
bij de afnemer voldoende geconcretiseerd kwaliteitsbesef aanwezig
is en terugkoppeling naar de bouwer tot de mogelijkheden behoort.
Kwaliteitssoftware is dus afhankelijk van - een fraaie open deur -
de beschikbaarheid van specialisten.
Als de markt aantrekt en de instroom van specialisten additioneel
gering is - een wereldwijd optredend fenomeen - is er structureel
te weinig capaciteit beschikbaar om de kwaliteit van de software
hoog te houden. Een sterk bepalende factor is daarbij ook dat elk
bedrijf in zo'n situatie zijn uiterste best doet om goede mensen
te werven, die dan vervolgens slechts voor een beperkt doel worden
ingezet: het heil van het bedrijf waar ze voor werken, wat op zijn
best correspondeert met slechts een deel van het heil van de
klanten van dat bedrijf.
Maar met de toenemende complexiteit van software, de toenemende
vraag naar producten en de toenemende schaarste op de markt lukt
het de meeste bedrijven niet meer om voldoende kennis in huis te
halen. De kwaliteit van de software neemt daardoor af.
Gelukkig is de productiviteit van de ontwikkelaars dramatisch
toegenomen, dankzij het gebruik van RAD toolsets. Maar die medaille
heeft ook een keerzijde: de tools die bij ontwikkeling gebruikt
worden zijn vaak ook van 'juist voldoende kwaliteit' - dit ter
beoordeling van de testteams van de leverancier, in plaats van de
gebruiker. En een toolset kan structureel 'minder goede' applicaties
genereren. De toenemende omvang en afnemende efficiency van onze
programmacode geeft hiervan een goede indicatie.
Een aanvullend probleem is dat commerciële bedrijven de broncode het
liefst voor zichzelf houden - enerzijds om de voorsprong op de
concurrent niet te verliezen, anderzijds om de klant te binden. Het
is commercieel gezien prettig dat de fouten in een gesloten pakket van
leverancier A zodoende niet door leverancier B opgelost kunnen worden.
Als afnemer zit je dus vast aan je leverancier, of je moet al kunnen
leven met een knappe kapitaalvernietiging. Maar vaak is dan het enig
resultaat dat je nu niet meer gebonden bent aan A, maar aan B en het
hele verhaal opnieuw begint. En de binding tussen leverancier en
afnemer bestaat dan feitelijk niet meer omdat de leverancier de juiste
kwaliteit levert, maar domweg omdat er geen weg terug bestaat zonder
zeer forse investeringen. Een kwalijke zaak.
Voor managementlagen binnen bedrijven is het juist in die situaties,
waarbij je dus feitelijk een slechtere functionaliteit casu quo
kwaliteit krijgt dan je zou willen, verleidelijk om zich met een
beroep op het "Kwik- Kwek- en Kwakeffect" vrij te pleiten: men
hamert er dan op dat 'de anderen' het pakket ook gebruiken en
de typische redenatie wordt dan dat "het nog niet zo slecht kan
zijn, want de anderen gebruiken het ook, dus is het standaard".
Kwik zegt het, dus Kwek en Kwak ook.
Eindgebruikers van verticaal gebouwde software die massaal wordt
gebruikt zijn de grootste slachtoffers van de verticale
ontwikkelmethode: enerzijds hebben zij geen mogelijkheid om hun
individuele wensen en eisen op te leggen aan de producent - die
luistert al lang niet meer naar het individu - anderzijds is de
markt voor massa-software ook nog verworden tot een feitelijk
monopolie, zodat je 'wel mee moet doen'. De massale 'reboot'-ziekte
die ons al bijna 10 jaar in zijn greep heeft is een goede indicatie
dat er ergens iets niet goed is gelopen.
Het zou mooi zijn als de schaarse specialisten met elkaar
zouden mogen overleggen, elkaars broncode konden controleren en
elkaar konden helpen bij de voltooiing van projecten - maar dat wordt
door het management van bedrijven veelal nog gezien als een verraad
aan de broodheer - ontslag kan het gevolg zijn.
De horizontale ontwikkelmethode
Gelukkig is er in de laatste decennia toch een verschuiving ontstaan:
tegen de stroom in, en voornamelijk gevoed uit noodzaak, wordt meer
en meer software 'horizontaal' gebouwd. Met name de beschikking over
het wereldwijde Internet heeft een impuls gegeven aan het horizontale
ontwikkelmodel.
De horizontale ontwikkelmethodiek houdt in dat een probleem dat
opdoemt van meet af publiek - via het Internet - wordt
bediscussieerd. Dat 'publiek' moet niet worden gelezen als 'door
iedereen' - het zijn de ervaren specialisten die onder elkaars
gelijken de discussie voeren.
Anderen, die het probleem ook herkennen en opgelost willen zien
participeren dan in het 'project', geven commentaar en dragen
suggesties aan. Veelal wordt vanaf de eerste dag al een stukje
code gepubliceerd dat althans een deel van het probleem oplost.
Die code mag zelfs van slechte kwaliteit zijn, maar omdat er
zoveel ogen van kundige heren en dames op worden gericht evolueert
zo'n kristallisatiepunt vaak heel snel tot software van uitstekende
kwaliteit.
Typisch voor de horizontale benadering is het dat er vaak een
coordinator of team van coordinatoren ontstaat - vaak is dat
degene die het probleem als eerste oppakte - die alle wijzigingen
verzamelt en verwerkt in de broncode, waarna deze broncode
opnieuw ter beschikking wordt gesteld. Linus Torvalds vervult
deze rol bijvoorbeeld voor het Linux besturingssysteem, maar
bij het (commerciële) Netscape is het een team van experts.
Maar wordt het dan niet al heel snel een warrige puinhoop? Gaat
dan niet iedere hacker zijn eigen versie van de software maken?
Wel, het staat inderdaad een ieder vrij om 'eigen' afsplitsingen
van de software te maken. Maar dat gebeurt niet vaak, omdat de
coordinatoren veelal de strategie volgen om zoveel mogelijk van
de gesuggereerde wijzigingen ook daadwerkelijk in de broncode op
te nemen. Blijkt dan in retroperspectief dat dit minder geslaagd
is, wordt dat door het vaak steeds verder groeiende team van
participerende experts gesignaleerd en alsnog ongedaan gemaakt.
Om nu te voorkomen dat de gebruiker van de software met
een soort permanente beta-release zou moeten werken - al is
deze vaak al beter van kwaliteit dan de middels verticale
methoden gebouwde gelijksoortige software - wordt bijvoorbeeld
voor het Linux operating systeem gezorgd dat er twee versies
van de software zijn: een experimentele lijn, die dus nog
in ontwikkeling is en een ietsje oudere, stabiele lijn. Als
de experimentele lijn stabiliseert, volgt een overgang naar
de stabiele lijn en wordt een nieuwe experimentele lijn
gestart. Iets soorgelijks zien we bij Netscape, waar we een
'officiële' versie van de browser hebben en een ontwikkellijn.
Dit alles resulteert in softwaresystemen waarvan de broncode
vrijelijk beschikbaar is en die voor een ieder die dat wil
toegankelijk is. De meest recente naam voor dit soort software
is "Open Source".
"Hee!" zult u zeggen, "maar dat was er toch altijd al? Heet dat
niet 'Free Software'?" - en inderdaad, Open Source software is
in feite hetzelfde, maar onder een nieuwe naam. Deze nieuwe
naam werd op 5 februari 1998 gekozen door een klein team van
experts, waarvan er een - Eric Raymond - was gevraagd om Netscape
te helpen bij de planning van de vrijgave van de broncode van
de Netscape browser. Dat werd door de daar aanwezigen gezien
als een cruciale stap op weg naar massieve acceptatie van de
horizontale software en aangegrepen om nu ook eens marketing
te bedrijven - een punt waar de horizontalen wat slecht in
zijn - en dus kan de link tussen "Free Software" en "Open
Source" worden geschets als volgt: Open Source is het
marketinginstrument van Free Software. "Free" moet je dan
wel lezen als 'in vrijheid geschreven' en niet per se als
'gratis verkrijgbaar'.
De schaarste aan specialisten kan denkelijk niet zo maar
worden opgelost door een andere ontwikkelmethode. Maar de specialisten
die werken volgens het Open Source model kunnen wel veel efficienter
werken: ze maken uitputtend gebruik van elkaars broncode en kennis.
Omdat er geen restricties zijn om Open Source software ook commercieel
in te zetten - mits de modificaties op het origineel maar terug
worden gekoppeld aan de Open Source gemeenschap - kan een bedrijf
zeker geld verdienen met de inzet van Open Source. Het bedrijf kan
dan niet meer profiteren van het unieke bezit van de broncode - maar
de kwaliteit van de software wordt wel een stuk beter en de klant
zal minstens even graag betalen voor goede ondersteuning als voor
software.
Een voordeel van Open Source is ook dat het in eerste instantie
de experts zelf zijn, die de afnemers van de producten zijn. Zij
worden dus zelf het eerst geconfronteerd met de ellende die
gebricoleer oplevert, waardoor de impuls om 'er iets aan te doen'
veel groter is.
"Maar.. is die software dan niet vooral gericht op programmeurs
en engineers? Hoe zit het met eindgebruikerssoftware?". Ik citeer
uit de FAQ van de internationale Open Source site:
Vijftien jaar geleden zeiden de mensen "Die lui van de free
software beweging hebben een paar mooie speeltjes en demo's
gebouwd, maar ze hebben de capaciteit niet om echte tools
te bouwen". De FSF bewees dat ze het bij het verkeerde eind
hadden. Vijf jaar geleden zeiden dezelfde mensen "Nou goed,
de GNU toolkit is een prachtige toolkit voor programmeurs,
maar ze zullen nooit een waardevol besturingssysteem bouwen".
Linux bewees opnieuw dat ze het bij het verkeerde eind hadden.
Nu zegt men "Nou goed, Linux is een leuke speeltuin voor hackers
en het is aardig goed in Internet-toepassingen, maar ze zullen
nooit nette eind-gebruikers toepassingen schrijven."
Als de nee-zeggers het deze keer bij het goede eind zouden hebben
zou dat de eerste keer zijn.
Er zijn inmiddels Open Source kantooromgevingen (StarOffice)
[opm], Open Source grafische pakketten van
hoogstaande kwaliteit (GIMP), en er is natuurlijk de Netscape
browser. Maar er kondigt zich nu ook een golf van meer
eindgebruikers-toepassingen aan, en er is de tendens te zien dat
ook commerciële bedrijven hun producten porten naar Open
Source of zelfs Open Source maken (Oracle, Corel, Netscape, Red Hat,
Caldera.)
Open Source software vormt nu al de basis van het wereldwijde
Internet. TCP/IP, DNS, Sendmail en bijvoorbeeld de Apache
webserver zijn daarbij onmisbare pijlers. Maar er is meer:
Open Source manifesteert zich nu ook op de massa-markt en
helpt zo mee om de monopolies die we daar zien te verbreken.
Met name het Linux operating systeem - zie ook het eerder in
dit blad gepubliceerde artikel van Arthur Donkers - mag zich
verheugen in de belangstelling van honderdduizenden hooggeschoolde
specialisten.
In deze laatste observatie ligt ook het succes van Linux
besloten: het zijn de engineers, de techneuten, die uit
liefde voor hun vak en uit onvrede met de 'standaard'-oplossingen
de oude wetten van de commercie met voeten treden. Want
het zijn dezelfde specialisten die dagelijks met de slechte
kwaliteit van het verkrijgbare worden geconfronteerd. En
het is een gegeven dat, wanneer de technologen een keuze
hebben gemaakt, deze keuze binnen een paar jaar ook doordringt
op de werkplekken van de niet-technologisten. De golf is niet
meer te stuiten.
Kruispunt of puzzle?
De vraag kan terecht worden gesteld of de Open Source benadering
de oplossing is voor alle kwaliteitsproblemen. Moet alle software
nu dus 'horizontaal' worden gebouwd? Wie betaalt dan de salarissen
van de ontwikkelaars, bijvoorbeeld? Welnu, zeker 75% van het werk
van bijvoorbeeld programmeurs bestaat uit het onderhouden van
verticale software. Die taak blijft bestaan. Verder zijn er veel
gebieden die zich niet (nog niet?) goed lenen voor een volledig
horizontale benadering, denk maar eens aan de programmering van
hardware-besturingen, zoals de injectiemotor in uw auto, of aan
software die de bedrijfsprocessen van banken en verzekeringsmaat-
schappijen ondersteund - en daar gaat het toch echt om het overgrote
deel van het werk in onze branche. Wel verwacht ik dat commerciële
bedrijven meer en meer hun experts de vrijheid zullen geven om een
deel van hun werktijd betaald door te brengen met het schrijven van
'software in het algemeen belang'. Niet omdat men aan liefdadigheid
wil doen, maar gewoon, omdat het algemeen belang ook het belang van
het bedrijf blijkt te zijn.
Bedrijven als Vertis, Netscape en Oracle hebben dit ingezien - het
is een kwestie van tijd en dan volgt ook uw bedrijf. Maar evenals
uw bedrijf jaren geleden wellicht dankzij uw vooruitziende blik nu
een vooraanstaande rol speelt in de Internetmarkt, zou u uw baas
en uzelf de dienst moeten bewijzen om meer Open Source software
in te zetten. De bal ligt bij u.
Noot: Ivo Jansch
merkt hierbij op dat StarOffice zelf geen Open Source pakket is, maar wel
gratis verkrijgbaar is voor Open Source besturingssystemen.
URLS:
Een goede beschrijving van het Open Source model kan worden gevonden
in Eric Raymonds geschrift "De kathedraal en de bazaar" - zie
www.opensource.nl/bazaar.html
als u een Nederlandse vertaling van zijn stuk wilt lezen. De
internationale Open Source site is te vinden onder
http://www.opensource.org.
Het artikel van Arthur Donkers kan ook op de Nederlandse Open
Source pagina's worden opgevraagd:
/artlinux.html
Zie voor meer uitleg over de diverse gangbare benamingen
van vrije software, maar ook voor het commentaar van de vader
van Free Software, Richard Stallman op de marketingnaam
"Open Source": http://www.gnu.org/philosophy/categories.html,
of raadpleeg de generieke "Free Software" site http://www.fsf.org.
Omdat het in het belang is van het Internet dat er altijd voldoende
Open Source beschikbaar blijft om het Internet onafhankelijk van
verticalisten operationeel te kunnen houden, is er een werkgroep
Open Source in oprichting van de Internet Society Nederland. Als
u wilt participeren, kunt u mij een
email sturen. Zie verder ook
http://www.isoc.nl.
De NLUUG heeft een special interest groep opgezet voor Linux
en Open Source. U kunt informatie opvragen over deze werkgroep
via e-mail: buro@nluug.nl.
Zie ook www.nluug.nl.
En verder:
www.mozilla.org,
www.oracle.com/html/linux.html,
www.li.org,
www.linux.org, en
www.vertis.nl.
|