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. 😀
> 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: