Topics Version control Was ist InnerSource?

Was ist InnerSource?


InnerSource ist eine Softwareentwicklungsstrategie, bei der Unternehmen einen Open-Source-Ansatz und eine Open-Source-Kultur übernehmen, um effektiver zusammenzuarbeiten.

Was bedeutet InnerSource?

InnerSource ist ein zunehmender Trend bei leistungsstarken Entwicklungs- und Konstruktionsteams, die Open-Source-Prozesse übernehmen, um effektiver zu arbeiten und zusammenzuarbeiten. Wenn Teams InnerSource nutzen, entwickeln sie eigene Software und ermöglichen die interne Zusammenarbeit zwischen den Teams, so dass jeder – von den Entwickler(inne)n bis zu den Produktmanager(inne)n – zum Quellcode beitragen kann.

InnerSource ist eine Softwareentwicklungsstrategie, die Open-Source-Praktiken auf firmeneigenen Code anwendet. InnerSource kann dabei helfen, eine Open-Source-Kultur in einem Unternehmen zu etablieren und gleichzeitig die Software für den internen Gebrauch zu erhalten. Teams nutzen InnerSource, um die Sichtbarkeit zu erhöhen, die Zusammenarbeit zu verbessern und Silos aufzubrechen.

Indem sie die Standardeinstellung für interne Projekte innerhalb einer Organisation auf „offen“ setzen, können Teams die Wiederverwendung bestehender Lösungen ermöglichen und Redundanzen minimieren, die Zusammenarbeit im Team fördern und Talente innerhalb der Belegschaft nutzen. Unternehmen jeder Größe profitieren von InnerSource und können kontinuierlich moderne Softwareentwicklungsverfahren einführen, indem sie von großen Open-Source-Projekten lernen.

In großen Organisationen und Unternehmen sind die Entwicklungsteams oft über verschiedene Abteilungen oder Zeitzonen verteilt. Es kann sein, dass sich verschiedene Entwickler(innen) nie treffen oder Zugang zu denselben Abteilungsstrategien haben. Mit InnerSource können sie sich jedoch an demselben Workflow-Modell orientieren, das sich in Open-Source-Projekten bewährt hat.

PayPal zeigt, wie Open-Source-Entwicklungspraktiken zu effizienteren und profitableren Unternehmen führen, auch wenn das „Open“ in „Open Source“ eigentlich nur das Team eines Unternehmens umfasst. Andere Vorreiter, die InnerSource einsetzen, wie Bosch, Autodesk, Bloomberg und SanDisk, zeigen, dass sie in der Lage sind, komplexe Projekte abzuschließen und innovative Produkte zu entwickeln, indem sie das gleiche schlanke, kostengünstige System wie bei Open Source verwenden.

Gründe, warum Unternehmen wie Open-Source-Projekte funktionieren wollen

Im Grunde funktionieren große Unternehmen ähnlich wie große Open-Source-Projekte. In beiden Fällen gibt es mehrere bewegliche Teile: mehrere Mitwirkende, verschiedene Tools und eine Vielzahl von Richtlinien und Strategien. Im traditionellen Gesellschaftsmodell hingegen funktioniert ein Unternehmen gemäß den Anweisungen einer Hierarchie von Führungskräften. Die Effizienz des Unternehmens hängt zum Teil von der Fähigkeit der Führungskräfte ab, den Überblick über die große Menge an eingehenden Informationen zu behalten.

Diese Fülle an Informationen führt oft zu einem Engpass in der Verwaltung, so dass es nicht verwunderlich ist, dass Projekte übersehen werden können. Je komplexer die Projekte werden oder je mehr Teams beteiligt sind, desto mehr Aufgaben werden wahrscheinlich eine Zeit lang unbemerkt bleiben. In Open-Source-Projekten werden die Informationen über die Entwicklung durch einen Dokumentations- und Kontrollprozess verwaltet, der verhindern soll, dass Komponenten im Laufe der Zeit vernachlässigt werden.

Die wichtigsten Open-Source-Workflow-Praktiken für Unternehmen sind:

  • Sichtbarkeit
  • Forking
  • Pull/Merge Requests
  • Testen
  • Kontinuierliche Integration
  • Dokumentation
  • Ticketsystem

Mit einer Open-Source-Mentalität bei der Softwareentwicklung schließen Unternehmen Lücken und brechen Silos auf, was zu einem stärkeren und strafferen Software-Entwicklungsprozess führt. Darüber hinaus ebnet es den Weg für eine verbesserte Entwicklererfahrung, optimierte Entwicklungsmethoden und eine Kultur der transparenten Zusammenarbeit.

Dieser Ansatz erhöht nicht nur die Entwicklungsgeschwindigkeit, sondern fördert auch eine engere Zusammenarbeit zwischen den Mitgliedern des Kernteams bei verschiedenen Entwicklungsprojekten.

Vorteile von InnerSource

Unternehmen, die InnerSource einsetzen, profitieren von den typischen Vorteilen der Open-Source-Entwicklung, wie z. B:

  • Hochwertiger Code: Mit Unit-Tests, Testabdeckung und kontinuierlicher Integration verbessern die Teams die Codequalität früher im Lebenszyklus.
  • Umfassende Dokumentation: Der Code wird besser dokumentiert, sowohl in Kommentaren als auch weniger formell in Diskussionen, was zu einer einzigen Quelle der Wahrheit und zu mehr Transparenz und gemeinsamem Wissen führt.
  • Effektive Wiederverwendung von Code: Code und Architektur sind auffindbar und teamübergreifend und unternehmensweit verfügbar.
  • Starke Zusammenarbeit: Code Reviews haben weniger Reibung, die Kommunikation wird stärker und die Anzahl der Beiträge steigt.
  • Gesunde Kultur: Silos werden aufgebrochen, so dass sich die Zufriedenheit der Entwickler(innen) verbessert, was zu einer besseren Bindung und Rekrutierung führt.

Probleme, die InnerSourcing löst

Hier sind einige der Probleme, mit denen große Unternehmen oft konfrontiert sind und die durch InnerSourcing gelöst werden könnten.

Herausforderung Lösung
Kommunikation:  In großen Unternehmen gibt es normalerweise kein einheitliches Team, das auf ein einziges Ziel hinarbeitet. Stattdessen werden die Teammitglieder oft in mehrere, voneinander getrennte Teams mit eigenen Strukturen und eigener Führung aufgeteilt. Die Kommunikationsnormen und Terminologien können zwischen den Teams variieren, und die Kommunikation und der Wissensaustausch sind minimal und ineffektiv zwischen den Silos. Open-Source-Systeme ermöglichen Beteiligung und Beiträge in großem Umfang. Die Kommunikationswege sind direkt und für jeden im Projekt sichtbar. Die Kommunikationshierarchien sind in der Regel flach, so dass unnötige Einflüsse vermieden werden und die Beiträge mit den Stakeholdern verbunden werden.
Entdeckung: Eine Softwarelösung kann in verschiedenen Abteilungen mehrfach erstellt werden, was den Aufwand vervielfacht, einfach weil es den Abteilungen an Kommunikation, Transparenz und Zusammenarbeit mangelt. Oft gibt es keinen Prozess, um zu überprüfen, ob eine Lösung bereits erstellt wurde. Der Vorteil von Open-Source-Projekten ist, dass sie von Natur aus transparent sind. Durch den Zugriff auf das Projekt können Teams herausfinden, ob es bereits eine Lösung für ein bestimmtes Problem gibt. Wenn jemand vor Beginn der Arbeit nicht sucht, haben die anderen Projektbeteiligten vollen Einblick und können eine bereits vorhandene Lösung identifizieren. Open-Source-Projekte fördern die Entdeckung bestehender Lösungen und helfen, doppelte Arbeit zu vermeiden.
Bürokratie: In den meisten kommerziellen Umgebungen gibt es Organisationsstrukturen, die vorschreiben, worauf Teammitglieder zugreifen können. Ein Teammitglied weiß vielleicht, dass es eine Lösung gibt, muss aber den Zugriff auf ein Projekt bei einem/einer Administrator(in) anfordern, was dazu führt, dass Entwickler(in) und Administrator(in) ihren Fokus von wichtigen Aufgaben abwenden. Bei Open-Source-Projekten haben die Teammitglieder uneingeschränkten Zugang zur Arbeit an den Projekten. Diese Transparenz und dieser Zugang verringern den Verwaltungsaufwand und die Verzögerungen bei der Verwaltung von Zugangsanfragen.
Änderungen vornehmen: Wenn Teams in einer traditionellen kommerziellen Umgebung nur Lesezugriff auf ein Projekt haben, haben sie nicht die Berechtigung oder die Fähigkeit, eine Funktion zu bearbeiten oder hinzuzufügen, sondern müssen jemand anderen darum bitten. Wenn die Personen, die für die Änderungen verantwortlich sind, keine Zeit haben oder keinen Sinn darin sehen, haben die Mitwirkenden keine Möglichkeit, etwas zu tun. Das Team, das für die App verantwortlich ist, muss sicherstellen, dass die App die Termine einhält und ordnungsgemäß funktioniert, also hängt der Job von jemandem ab, der die Anwendung pflegt. Auch wenn ein anderes Team von dieser neuen Funktion profitieren könnte, könnte die Anforderung, die Anwendung zu ändern, die Stabilität der Anwendung beeinträchtigen, so dass die Gewährung des Zugangs ein Risiko darstellt. Wenn ein(e) Entwickler(in) keinen Zugang erhält, um die notwendigen Änderungen vorzunehmen, führt dies dazu, dass Teams ihre eigene Codebase oder Anwendung entwickeln, um das Problem zu lösen. Dies kann mehrmals vorkommen, wenn mehrere Personen auf das gleiche Problem stoßen. Das führt dazu, dass viele Apps separat entwickelt werden, um das gleiche Problem zu lösen. Wenn Teams ein Open-Source-Projekt ändern wollen, brauchen sie dafür keine Genehmigung einzuholen. Stattdessen bringen sie die Änderung ein und lassen das System ihre Funktionalität und Gültigkeit testen. In der Praxis forken Teams die Codebase, nehmen Änderungen vor und erstellen einen Merge Request, den andere Entwickler(innen) überprüfen, Fragen dazu stellen und testen können. Die Personen, die für die Genehmigung der Merge Request zuständig sind, haben eine geringere Workload als im anderen Szenario, da sie die zusätzliche Arbeit nicht selbst erledigen mussten und die Funktion bereits getestet wurde, sodass sie wissen, dass sie funktioniert. Außerdem hat dieser Ansatz den Vorteil, dass der Berichtsgenerator insgesamt weniger belastet wird, da er nur noch eine statt acht Codebasen unterstützen muss.

So können Teams InnerSource nutzen

Für Teams, die über verschiedene Zeitzonen hinweg zusammenarbeiten – und das sind heutzutage die meisten Teams – und für Unternehmen mit mehreren Abteilungen ist InnerSource eine einfache Möglichkeit, einen effizienteren Workflow zu schaffen. Teams können Informationssilos aufbrechen und eine effektivere Zusammenarbeit innerhalb des Unternehmens fördern. InnerSource kann auch für eine schnellere Einarbeitung von Entwickler(inne)n genutzt werden und kann Teammitglieder dazu ermutigen, Software an die Open-Source-Gemeinschaft zurückzugeben.

Die Einführung von InnerSource-Projekten bedeutet eine Abkehr von traditionellen Entwicklungsansätzen hin zu dynamischeren, umfassenderen und effizienteren Entwicklungs-Workflows.

Fazit

InnerSource steht für einen grundlegenden Wandel in der Art und Weise, wie Unternehmen an die Softwareentwicklung herangehen. Es verspricht nicht nur eine Verbesserung der Qualität und der Sicherheit von Softwareprodukten, sondern auch einen kulturellen Wandel, der Unternehmen zum Erfolg führt. Der Einsatz von InnerSource-Praktiken versetzt Unternehmen in die Lage, moderne Herausforderungen bei der Softwareentwicklung mit Agilität zu bewältigen und gleichzeitig kollaborative Innovation für Geschäftswachstum zu fördern

Wenn Unternehmen in die Zukunft blicken, ist die Einführung von InnerSource ein strategischer Imperativ, der sie in die Lage versetzt, neue Herausforderungen zu meistern und neue Chancen zu nutzen.

Erfahre, wie GitLab die Softwareentwicklung optimiert

Bist du bereit?

Erfahre mehr darüber, was dein Team mit der umfassendsten KI-gestützten DevSecOps-Plattform erreichen kann.