Open source is een bron die maar blijft geven. Tenzij het eerst je hele zaak vernachelt. Er zijn heel wat open source-leveranciers die je kunnen vertellen dat het veel moeite kost om de vrije enen en nullen te vermarkten, en dat wordt alleen maar moeilijker nu allerlei webgiganten de wereld overspoelen met software die iedereen gratis kan gebruiken.
Grootse ontwikkelaarssuccessen
En als je het over webgiganten hebt, dan heb je het ook over LinkedIn. Kijk maar eens op de GitHub-pagina van LinkedIn. Daar zie je het potentiële einde van dozijnen echte en potentiële startups. Jazeker, LinkedIn, dat zichzelf aanprijst als het bedrijf dat professionals over de hele wereld met elkaar verbindt om ze succesvoller en productiever te maken, dat is ook het bedrijf dat ondertussen al meer dan 75 open source projecten is gestart, waarvan er sommige een groots succes zijn onder developers en voor de bedrijven waar die ontwikkelaars voor werken.
De aandacht van de pers is wat dit betreft over het algemeen meer gericht op Facebook en Google, maar LinkedIn werkt stilletjes aan heel veel mooie projecten die allemaal zijn gestoeld op open source-gemeenschappen. Ik sprak met Igor Perisic, VP of Engineering van LinkedIn, om erachter te komen hoe LinkedIn open source inzet voor het bedrijf.
Open code is alleen het begin
Iedereen kan zijn code open source maken. Zo werd Sourceforge jaren lang gevuld met open source 'projecten' waaraan vaak niet meer dan één persoon werkte. En zelfs al werkten er meer ontwikkelaars aan, dan nog was de meerderheid van open source-projecten de laatste zes maanden niet geüpdatet.
Dus het feit dat LinkedIn meer dan 75 open source projecten heeft, betekent op zichzelf niet heel veel. Een open source project is namelijk alleen nuttig als het een gemeenschap weet aan te trekken. En precies daarom is het open source-verhaal van LinkedIn zo fascinerend.
Betrokkenheid aflezen
Perisic stelt dat het opgegeven aantal projecten vaak alleen laten zien hoe ijdel een bedrijf is. "Wij kijken juist vooral naar de acceptatie door de gemeenschap om te kijken hoe succesvol een project is."
Neem bijvoorbeeld Pinot, een real-time distributed OLAP datastore die LinkedIn gebruikt om schaalbare realtime analyses te maken, en REST.li, het REST-framework. Die projecten hebben allebei meer dan 1000 sterren op GitHub en zijn ondertussen al zo'n 200 keer geforkt. Een andere indicatie voor de gezondheid van een project is het aantal contributors en de tijd sinds de laatste update. Daar kun je de betrokkenheid aan aflezen, zegt Perisic.
Maar er komt volgens hem meer kijken bij het in stand houden van een gemeenschap. Het is vooral belangrijk dat ze overal worden gebruikt. Wat dat betreft is het goed als ze bijvoorbeeld onder de vleugels komen van de Apache Software Foundation, waardoor ze makkelijker worden geaccepteerd. "Verschillende van onze open source projecten, zoals Kafka, Samza en Helix worden breed gebruikt en zijn nu onderdeel van de Apache Software Foundation", zegt hij.
Community maakt nuttig
"Voldemort is een distributed key-value storage systeem dat steeds populairder wordt. REST.li is een heel populair REST framework. We doen dan ook heel veel moeite om onze open source projecten aantrekkelijk te maken voor andere ontwikkelaars."
En dat slaat aan. Te vaak geven bedrijven code vrij die voornamelijk nuttig is voor henzelf in de hoop dat er een grote gemeenschap omheen ontstaat... zodat die code nóg nuttiger voor hen wordt. Open source organisaties volgen jammer genoeg vaak diezelfde lijn van eigenbelang, waarbij ze net doen alsof het project open wordt beheerd terwijl maar één enkele fabrikant bepaalt wat er gebeurt.
Heeft het zin om te open sourcen?
Wat overigens niet wil zeggen dat LinkedIn altijd het toonbeeld was van open source-deugdzaamheid. Perisic: "Maar wij hebben al vroeg de les geleerd dat je niet gewoon software uit kunt brengen in een gemeenschap zonder dat je doorgaat met innoveren. Daarnaast hebben we geleerd dat veel van de factoren die bepalen of een open source project succesvol wordt afhangen van hoe je met de gemeenschap omgaat."
Dat betekent volgens hem dat het meeste werk pas begint nadat de code open source is gemaakt. Zo heeft LinkedIn geleerd dat het belangrijk is om de gemeenschap om feedback te vragen. Net zo belangrijk is het om heel goed en begrijpelijk duidelijk te maken wat het doel is van een project.
Maar vóór alles hangt alles af van de eerste en belangrijkste beslissing, benadrukt Perisic: "Je moet eerst beslissen of het wel zin heeft om een project open source te maken." Als je niet bereid bent om het project goed te begeleiden als open source, dan kun je er beter helemaal niet aan beginnen.
Waarom zou je de moeite nemen?
En waarom zou je inderdaad al die moeite doen. Als je je bedenkt hoeveel werk het kost om je code vrij te geven en vervolgens de gemeenschap er omheen te begeleiden, dan lijkt het niet de moeite waard. Daar heeft Perisic een onverwacht antwoord op. Hij geeft toe dat de meeste waarde buiten LinkedIn om ontstaat. Maar een heel goede reden die hij geeft om je als bedrijf te verbinden aan open source gemeenschappen is het effect dat dit heeft op je ontwikkelaars.
"We hebben gemerkt dat het eerste effect van het open source maken van je projecten is dat je ontwikkelaars betere software gaan schrijven." Dat wil zeggen dat het achter slot en grendel houden van code onzorgvuldigheid aanmoedigt. "Ontwikkelaars denken dan dat ze wel wat bochten kunnen afsnijden. En dat is vooral het geval bij het schrijven van documentatie, het makkelijk leesbaar houden van de code en bij het testen.'
Als je je code open maakt, dan stel je je ontwikkelaars bloot aan kritiek. En dat is heel erg openbare kritiek. Zoals Perisic het zegt: "Als ontwikkelaars een stuk code open source maken, zetten ze hun reputatie op het spel. Iedereen kan zien wat ze hebben gedaan en het wordt ook echt bekeken door collega's. Dus zo wordt het voor ontwikkelaars heel belangrijk dat hun code goed is geschreven, goed gedocumenteerd en herbruikbaar is."
Op waarde schatten
Maar het gaat niet alleen om schone code. Het gaat er ook om dat ontwikkelaars niet beperkt blijven in hun denken. "Als ze aan een open source project werken komen ze nog eens buiten en zien ze meer dan alleen wat er in hun directe omgeving gebeurt. Het helpt ze om nieuwe trends te ontdekken en bovendien leren ze om de input van andere ontwikkelaars op waarde te schatten. Daarnaast leren ze hoe ze hun eigen team efficiënt moeten leiden door al die verschillende meningen heen."
Tot slot merkt Perisic nog op dat het vanuit het perspectief van het bedrijf ook goed is om de naam van je bedrijf onder ontwikkelaars hoog te houden. Dat is nuttig als je nieuw talent wilt aantrekken en als je huidige werknemers wilt behouden.
Open source-gemeenschap betaalt terug
"Ik geloof dat je als initiator van een project de verantwoordelijkheid hebt om er net zoveel tijd aan te spenderen als je zou doen als het zich nog helemaal binnen je organisatie zou bevinden", vertelt Perisic. Daarnaast is het belangrijk dat je de goede soort code uitbrengt.
"Sommige projecten trekken geen sterke gemeenschap aan omdat het standalone projecten zijn, die helemaal los staan van andere software." Het mag dan goede code zijn binnen een bedrijf, maar dat wil niet zeggen dat het ook bruikbaar is buiten je bedrijf. En als dat het geval is zal het project waarschijnlijk falen.
Soms is het ook beter om gebruik te maken van de energie en de organisatie van een bestaand project. "Standalone open source projecten zijn geweldig, maar als het goed uitkomt om een project onder de vleugels van Apache onder te brengen, dan moet je niet aarzelen. Als er een bestaande gemeenschap klaarstaat om het te gebruiken, dan moet je het direct open source maken."
Niet aan lot overlaten
En hoe zit het met die projecten die niet meer nuttig zijn voor LinkedIn? Hoe ga je om met code die door de gemeenschap wordt gebruikt maar die LinkedIn zelf niet meer nodig heeft? Terwijl je toch een goede open source burger blijft?
"Je kunt niet zomaar een project aan zijn lot overlaten," benadrukt Perisic. "In plaats daarvan moet je gebruikers een alternatief bieden en de mogelijkheid om te migreren." Zo ging LinkedIn bijvoorbeeld niet verder met een open source project dat Camus heette en dat werd gebruikt als een pipeline om data uit Kafka te trekken in HDFS. In plaats van het project simpelweg te laten vallen, zorgden Perisic en zijn team ervoor dat gebruikers makkelijk over konden op Gobblin, het nieuwe data induction framework van LinkedIn.
Dit alles vergt heel veel tijd en moeite, zegt Perisic. Maar dat is niet erg, besluit hij. De open source-gemeenschap betaalt die investering dubbel en dwars terug.
Reageer
Preview