PiratePad All articles
Open-source & Innovatie

Varen in formatie: hoe je een open-source release schip klaar maakt zonder dat de bemanning mutineert

PiratePad
Varen in formatie: hoe je een open-source release schip klaar maakt zonder dat de bemanning mutineert

Photo: Work for hire for Snowman's Ryan Cash, CC BY-SA 3.0, via Wikimedia Commons

Elke maintainer kent het gevoel. Je hebt een release aangekondigd, de community kijkt uit naar de nieuwe versie, en dan... gebeurt er niets. PR's blijven half af, de changelog is een leeg bestand, en je hebt het gevoel dat je alleen aan boord bent. Tijd om te praten over release management als teamsportht, niet als eenpersoonszaak.

Waarom releases in vrijwilligersprojecten anders zijn

In een bedrijf is een release een deadline met een manager erachter. In een open-source project is het een afspraak tussen mensen die het vrijwillig doen, naast hun baan, hun studie en hun leven. Utrechtse developer Merel (maintainer van een middelgrote Python-bibliotheek) noemt het treffend: "Mijn bijdragers hebben geen contract, ze hebben vertrouwen. Als ik deadlines ga opleggen als een projectleider, ben ik ze zo kwijt."

Dat betekent niet dat je zonder structuur moet werken. Het betekent dat je structuur anders moet inrichten: niet op druk, maar op duidelijkheid.

De feature freeze als afspraak, niet als bevel

De klassieke fout is de feature freeze die van bovenaf wordt opgelegd. Plotse bevriezing voelt voor bijdragers als een deur die dichtgaat terwijl ze nog aan het bouwen zijn. Beter werkt een geleidelijke aanpak:

Amsterdamse maintainer Daan van een Belgisch-Nederlands CLI-project formuleert het zo: "Een feature freeze is geen stopbord, het is een rondpunt. Je zegt: hier gaan we de bocht om, wie zit er nog in de file?"

Release candidates als sociale ankers

Technisch gezien zijn release candidates bedoeld om bugs te vinden. Sociaal gezien doen ze veel meer: ze geven het hele team een gedeeld moment. Wanneer er een -rc1 staat, weet iedereen dat het serieus wordt, en dat er nog een veilige ronde is om dingen te repareren.

Praktische tips die in meerdere Nederlandse teams terugkomen:

  1. Automatiseer de rompslomp. Changelog-generatie, version bumps, build-pipelines: alles wat een mens hoeft te onthouden is een bron van fouten én van frustratie.
  2. Wijs per release één release captain aan. Niet de projectleider per se, maar iemand die die specifieke release coördineert. Rouleer die rol: het houdt betrokkenheid hoog en voorkomt dat één persoon alles op zich neemt.
  3. Vier de lancering. Serieus. Een korte shout-out aan alle bijdragers, met namen, in de release notes doet meer voor je community dan welke feature dan ook.

Als de bemanning afhaakt halverwege

Hetmoment dat je écht getest wordt is niet de lancering, maar de week ervoor, wanneer je belangrijkste bijdrager opeens drukte krijgt op zijn werk en de laatste review weken op zich laat wachten. Wat dan?

Splits de resterende taken op in hapklare brokken. Een review van 400 regels die niemand aandurft, wordt twee reviews van 200 regels die elk door iemand anders oppakken. En wees eerlijk over de keuze: uitstellen tot de volgende release is ook een optie. Een release met één issue minder is beter dan een release die nog drie maanden op zich laat wachten.

De release als teamritueel

Wat de beste maintainer-teams gemeen hebben: ze zien een release niet als een mijlpaal die afgevinkt moet worden, maar als een ritueel dat de groep bij elkaar houdt. De changelog wordt samen doorgenomen, fouten worden zonder blame besproken, en na de lancering wordt er even niets gedaan.

Dat is uiteindelijk het verschil tussen een project dat één release overleeft en een project dat er twintig aankan: de bemanning moet na afloop zin hebben in de volgende reis.

All Articles

Related Articles

Goud uit de polder: vijf Nederlandse open-source parels die de wereld veroverden

Goud uit de polder: vijf Nederlandse open-source parels die de wereld veroverden

Kennis doorgeven zonder jezelf te verliezen: zo bouw je een mentornetwerk dat écht impact maakt

Kennis doorgeven zonder jezelf te verliezen: zo bouw je een mentornetwerk dat écht impact maakt

Gevaarlijk vaarwater: hoe je open-source project beschermt tegen de nieuwe generatie digitale kapers

Gevaarlijk vaarwater: hoe je open-source project beschermt tegen de nieuwe generatie digitale kapers