Waarom ik open source software maak

Open source of open bron beschrijft de praktijk die in productie en ontwikkeling vrije toegang geeft tot de bronmaterialen (de source) van het eindproduct.
– wikipedia: https://nl.wikipedia.org/wiki/Open_source

In het geval van software betekent dit dat de software gratis gebruikt mag worden en de broncode beschikbaar is voor iedereen.

Sommige developers hebben een broertje dood aan open source software en anderen zijn er helemaal gek op. Ik behoor zelf tot de laatste categorie en zou het liefst nog meer tijd steken in open source projecten dan dat ik nu al doe.

Iets terug doen

Zelf heb ik meerdere redenen waarom ik graag aan open source projecten werk. Eén daarvan is simpel: iets terug doen. Ik maak, net als de meeste developers, dagelijks gebruik van open source software. WordPress, het CMS waar we bij RAAK de meeste websites mee realiseren, is in de basis open source. Door zelf open source software te bouwen betaal ik voor mijn gevoel een beetje terug voor het feit dat ik er zelf gebruik van maak.

Ook biedt het mij de kans om ervaring op te doen waar binnen een project voor een klant niet altijd de ruimte is. Ervaring die ik in een volgend project weer kan toepassen.

Verder vind ik het leuk en zorgt het voor afwisseling. Niet al het werk wat je doet is altijd even interessant of leuk. Om je dan toch scherp te houden is het fijn dat je je werk af en toe kan afwisselen met ander werk.

Waarom zou je als baas je developers tijd laten spenderen aan het schrijven van open source software?

Je verdient hier immers geen geld aan.

Door het schrijven van open source software doen developers ervaring op met technieken waar ze tijdens betaalde projecten vaak geen tijd voor hebben. Bij een project voor een klant is er een budget waar je binnen moet blijven en een deadline die gehaald moet worden. Hierdoor hebben developers binnen een project vaak niet de mogelijkheid om nieuwe dingen uit te proberen.

Bij het werken aan open source projecten is er geen budget of deadline (uitzonderingen daargelaten). Hierdoor heb je dus als developer de vrijheid om andere technieken te verkennen. Waardoor je dus ervaring opdoet met nieuwe technieken of systemen die je anders niet zou leren. Ervaring die je bij een volgend project voor een klant weer kan inzetten. Wat de kwaliteit voor dit project alleen maar verhoogd.

Dus hoewel het werken aan open source projecten zich dus niet direct financieel terugbetaalt, verdient het zich op de langere termijn terug in meer ervaren developers. Ervaren developers die waardevollere oplossingen kunnen bouwen voor klanten.

Mijn eigen open source projecten

Disclaimer: hier volgt een klein stukje ongegeneerde “zelfverheerlijking” 😉.

Mijn eerste eigen open source project is Mighty Form Styler for jQuery. Een plugin voor de JavaScript library jQuery die het voor front-end ontwikkelaars makkelijker maakt om dropdowns op websites te stijlen. De eerste versie stamt uit eind 2012. Bij mijn toenmalige baan kwam vaak voor dat mooiere dropdowns gewenst waren dan er standaard mogelijk waren. Er waren destijds geen goede oplossingen hiervoor beschikbaar en ik wilde graag ervaring opdoen met het bouwen van plugins voor jQuery. Omdat mijn werkgever op dat moment hier geen tijd in wilde investeren heb ik deze plugin toen in mijn eigen tijd ontwikkeld. Van tijd tot tijd besteed ik tijd aan deze plugin om bugs op te lossen, verbeteringen door te voeren en hem compatible te houden met de nieuwste browsers. En uiteraard pas ik hem ook zelf met enige regelmaat toe in de projecten waar ik aan werk.

Het kan ook andersom. Tijdens één van de projecten bij Raak liepen we tegen een beperking op van Gravity Forms, een veel gebruikte plugin voor WordPress. Hierdoor kon bepaalde benodigde functionaliteit niet gerealiseerd worden. In plaats van alleen voor dit ene project hier een oplossing voor te bouwen hebben we toen besloten om hier een generieke oplossing voor te bouwen en deze als open source beschikbaar te stellen. Dit resulteerde in de Gravity Fieldset add-on voor Gravity Forms. Een plugin die we inmiddels bij meerdere projecten ingezet hebben en volgens de statistieken op meer dan 700 websites actief is en in totaal meer dan 1500 keer is gedownload.

Soms bouw je regelmatig dezelfde (kleine) functionaliteit voor verschillende projecten dat het handiger is om hier een standaard oplossing voor te maken. Zoals Simpel Social Share, wederom een plugin voor jQuery geïnspireerd door de blogpost Responsible Social Share Links van Jonathan Suh. Waarmee social share-links op websites makkelijk kunnen worden gerealiseerd.

Open source kost toch alleen maar tijd en geld?

Nee. Naast dat het zich terugverdiend in ervaring, verdienen veel bedrijven juist aan hun open source projecten. Ze bieden de software dan gratis aan, maar voor premium support of extra’s moet je dan wel betalen. Zo is de basis van WordPress bijvoorbeeld gratis te downloaden via wordpress.org. Maar als commerciële dienst bieden de makers via wordpress.com de optie aan dat je website daar gehost staat en kan je ook nog andere extra’s afnemen.

Ook zorgt het voor een soort van autoriteit op een bepaald gebied waar je open source software voor ontwikkeld. Het laat zien dat je als bedrijf ervaring hebt met bepaalde technieken waardoor eventuele klanten eerder er voor kiezen om met je in zee te gaan. Het zorgt bij grotere bedrijven ook dat bepaalde technieken die je zelf ontwikkelt of waar je mee werkt, sneller populair wordt bij andere developers. Zo is Facebook bijvoorbeeld één van de grootste aanbieders van open source software (bron: GitHub Octoverse 2016).

Via open source projecten sta je ook eerder op de radar bij developers die op zoek zijn naar een (andere) baan als je een vacature open hebt staan. Ze hebben immers al positieve ervaringen met je bedrijf omdat ze je kennen via de open source software die je aanbiedt.

Maar heel eerlijk…

Het is natuurlijk ook gewoon een klein beetje egostreling. Het voelt gewoon goed wanneer (veel) mensen jouw software, plugin of script gebruiken en daar positief over zijn.

 


Dit bericht verscheen eerder op het blog van RAAK: https://www.raakbeleving.nl/blog/open-source/