Techworld blog: ApacheCon New Orleans, deel 2
Vandaag zijn de verkiezingen in Amerika. Op de ApacheCon wordt hier en daar wel wat gefluisterd over Obama of McCain, maar eigenlijk is politiek, samen met religie, één van de weinige onderwerpen waar je binnen de Apache Software Foundation niet over praat. Hier komen mensen bij elkaar op basis van merits, niet op basis van politieke, culturele, financieele of religieuze achtergrond.
Merits, in goed Nederlands "verdiensten", verwerf je door een substantieele bijdrage te doen aan de community. Deze merits zijn de basis van de organisatiestructuur binnen de Apache Software Foundation (de ASF). Open source mag dan klinken als een anarchie, waarbij iedereen zo maar even wat code ergens in mag proppen, maar dat is het zeer zeker niet. Tenminste, niet in het geval van de ASF. En dat maakt deze open source gemeenschap ook zo bijzonder. Er is een organisatiestructuur, en die structuur garandeert dat we een constante kwaliteit kunnen leveren.
Onderaan in de organisatie staan de Users. Users gebruiken de code in een Apache project. Als je bijvoorbeeld de Apache webserver download, dan val je in deze categorie. Maar zodra je een bijdrage terugdoet aan een project, kom je een stapje hoger en ben je Contributor. Met een berg contributies, goede suggesties, bugfixes, en door het helpen van andere users, kun je als Committer worden voorgedragen. Hoe werkt dat?
Iedereen mag lid worden van de publieke ontwikkelaars mailinglijst van een project. Nadat je je hebt gesubscribed op zo'n lijst, stuur je je suggestie in. Bij elke bijdrage, of dit nou een éénregelig bugfixje is, of een compleet nieuwe module, wordt er door de leden van de community gekeken of de code die je ingestuurd hebt voldoet aan hun - over het algemeen vrij zware - kwaliteitseisen. En de hele wereld kijkt mee, want op een dergelijke email lijst zitten meestal wel een paar duizend mensen die meelezen. Wanneer er iemand commentaar heeft op je code, dan wordt dit en plein publique gecommuniceerd. Op deze manier komt er niets onopgemerkt in de code van het project. Maar goed, is het je gelukt, en heb je een heel aantal keren laten zien dat je bijdragen voldoen aan de regels van de community, dan kun je voorgedragen worden door één van de vele andere mensen die zichzelf al bewezen hebben; de zogenaamde committers. Over het algemeen heb je daar wel een jaartje of wat constructief doneren voor nodig. Na een publieke stemmingsronde, waarin elke committer met een lovende +1 of een dodelijke -1 over je zal oordelen, wordt je bij voldoende +1's uitgenodigd tot het committerschap. Als committer ben je mede beheerder van de code van het project, en heb je het recht om direct wijzigingen in de core door te voeren. Maar zelfs dan kijkt de volledige community over je schouder mee, want elke regel code die wordt veranderd gaat over de lijst en wordt bekritiseerd door je mede committers. Soms lopen dergelijke discussies hoog op. Maar voorop blijft staan dat de kwaliteit en onderhoudbaarheid van de code het belangrijkst is, en als het moet, dan moet het ego daar maar voor wijken.
Wanneer je een dergelijke status binnen meerdere Apache projecten hebt verworven, en je je inzet voor de Apache Software Foundation als geheel hebt bewezen, dan kun je een stap hoger komen en voor het Membership gevraagd worden. Maar alles op zijn tijd. Forceren zal je niet lukken - je moet gevraagd worden, en jezelf voorstellen is not done. De Members, zo'n 300 wereldwijd, komen één keer per jaar samen om het bestuur van de vereniging (de Foundation is immers een vereniging) te kiezen, the Board.
Dat is in het kort hoe merits werken. In tegenstelling tot de verkiezingen van vandaag, is de Apache Software Foundation geen democratie. De ASF is een meritocratie, een gemeenschap die beslissingen neemt op basis van merits.
Dankzij open source is er voor elk softwarepakket wel een gratis alternatief te vinden. Maar de lagere licentiekosten (of zelfs het gebrek daar aan) zijn niet de belangrijkste reden voor bedrijven om te kiezen voor open source software. Belangrijker is de transparantie en de continuïteit die een open source pakket kan leveren. Hoe garandeer ik de beschikbaarheid van mijn data op de lange termijn? Wat gebeurt er bij een upgrade van de software en welke afhankelijkheidsrelatie ga ik aan met de leverancier?