Inner Source

2021-04-26

Een bekend cultureel verschijnsel binnen grote organisaties is dat van eilandjes. Eilandjescultuur. Verschillende teams, onderdelen, groepen die elk hun eigen software broek ophouden. Het wiel, het vuur en ook nog buskruit worden meerdere malen ontdekt of uitgevonden.

Zonde natuurlijk, want dubbel werk is dubbele uitgave. We proberen bruggen te slaan door middel van kennissessies, travellers en documentatie. Op die manier leren we elkaar wielen, vuurtjes en buskruit te maken.

Of anders doen we inner source.

Wat is dat dan?

Inner sourcing is open sourcing, maar dan binnen een organisatie. De source is dus open, maar alleen binnen de organisatie. Daarbuiten is het gesloten.

Het grote verschil tussen inner- en open source is de doelgroep. Bij open source is dat de hele wereld en bij inner source alleen jouw organisatie. Je mag dus best wat organisatie-specifieke eigenschappen in je inner source hebben, wat natuurlijk ondenkbaar is bij open source.

Wie doet dat dan?

Op de vraag welke bedrijven al inner sourcen weet jij het antwoord al: de grote jongens.

 

Hoe doe je dat dan?

 Hier zijn complete boeken over geschreven, maar we houden het beknopt. Hieronder een greep uit de belangrijkste zaken waar je aan moet denken.

> Bouw libraries

Heb je iets gebouwd dat generiek toepasbaar is? “Verlib” het. Doe het goed. Dus niet ergens in een zipfile of op de wiki, maar in git en in een artefact repository (Artefactory, Maven, PyPi, Nexus, …).

> Houd het klein

Liever veel kleine (onafhankelijke!) libs dan één grote superlib.

> Kwaliteit is key

Niemand gaat je code gebruiken als het stinkt. Laat staan mee helpen onderhouden. Kwaliteit komt met code reviews, automatisch testen, linten, etc. etc. je kent het wel.

> Blijf bij de standaarden

Houd je aan de standaarden. Dat zijn ten minste de standaarden die gelden voor de programmeertaal waarin je bouwt. Eigenlijk hoort dit ook een beetje bij kwaliteit, maar nu lijkt de lijst langer. :-D

> YAGNI

Draai niet door met features. Bouw alleen wat je nu echt nodig hebt, maar houd wel rekening met toekomstige wensen. Google yagni.

> Documentatie

Documenteer minimaal voldoende, maar maximaal veel. Schrijf alleen iets op als iets daardoor begrijpelijker wordt.

> Eigenaarschap

In het begin zal je mogelijk een aantal trekkers nodig hebben. Streef vervolgens naar gedeeld eigenaarschap. De kracht van inner source is juist dat je samen meebouwt.

> PR

Onbekend maakt onbemind. Als je het bestaan ergens niet van kent, dan kun je er niet van houden. Maak dus reclame.

> Vrijheid blijheid

Heb je mooie dingetjes gemaakt en vind je het leuk als anderen die dingetjes van jou gebruiken? Die keuze is aan henzelf. Gedwongen inner source gaat niet werken. Misschien hebben mensen een goede reden om jouw libraries niet te willen gebruiken. Wel handig om te weten waarom niet.

 

En verder?

En verder niks! Ga het gewoon doen!

En wie weet “promoveer” je jouw libs nog eens van inner- naar open source.

Zie ook:

Daarom open source!

Open sourcen in 3 stappen

 

Werken bij Infiniot?

Heeft deze blog jou geïnspireerd om ook een bijdrage te leveren aan de energietransitie in Nederland? Goed nieuws! We zijn altijd op zoek naar nieuwe collega’s om ons team te versterken! Bekijk hier onze vacature Software Engineer.


Bekijk alle posts van Ramon