[MELDEN] Von der Vision zum Code: Ein Leitfaden zur Ausrichtung der Geschäftsstrategie auf die Ziele der Softwareentwicklung ist veröffentlicht!
HOL ES DIR HIER

Trunk-basierte Entwicklung: Der Schlüssel zu schnelleren und sichereren Software-Releases

readtime
Last updated on
February 17, 2025

A QUICK SUMMARY – FOR THE BUSY ONES

Kofferraumentwicklung: Die wichtigsten Erkenntnisse

  • Trunk-Based Development (TBD) vereinfacht den Entwicklungsprozess durch die Verwendung eines einzigen Hauptzweigs, wodurch die Komplexität der Zusammenführung mehrerer Zweige reduziert wird und die Codebasis stabil und aktuell bleibt.
  • TBD unterstützt die kontinuierliche Integration, sodass Teams kleine, häufige Änderungen direkt am Trunk vornehmen können. Dieser Ansatz minimiert Merge-Konflikte, beschleunigt die Release-Zyklen und stellt sicher, dass der Code immer einsatzbereit ist.
  • Durch die Integration automatisierter Tests und regelmäßiger Code-Reviews fördert TBD einen hohen Standard an Codequalität, wodurch technische Schulden reduziert werden und Probleme frühzeitig erkannt und behoben werden können.
  • Die Arbeit von einer einzigen, gemeinsamen Niederlassung aus fördert die Zusammenarbeit in Echtzeit, bringt die Teammitglieder zusammen und fördert eine Kultur der kontinuierlichen Integration, die gut zu agilen und DevOps-Praktiken passt.

TABLE OF CONTENTS

Trunk-basierte Entwicklung: Der Schlüssel zu schnelleren und sichereren Software-Releases

Schnellere Veröffentlichungen durch Trunk-basierte Entwicklung

Bei der Trunk-basierten Entwicklung handelt es sich um ein fortschrittliches Branching-Modell, das eine schnelle und zuverlässige Softwarebereitstellung unterstützt. Durch die Konsolidierung von Codeänderungen in einem einzigen, gemeinsamen Branch (oder „Trunk“) können Teams Merge-Konflikte reduzieren, die kontinuierliche Integration (CI) optimieren und die allgemeine Codequalität verbessern.

In diesem Artikel werden wir Folgendes untersuchen:

  • Was Trunk-Based Development ist und warum sie wichtig ist
  • Wie es sich von anderen Verzweigungsmodellen unterscheidet
  • Die wichtigsten Vorteile und Herausforderungen
  • Best Practices für eine erfolgreiche Implementierung
  • Fallstudien aus der Praxis, die ihre Auswirkungen belegen

Die Engpässe, die Ihr Entwicklungsteam behindern

Für viele CTOs ist der Umgang mit fehlgeschlagenen Releases und verpassten Deadlines zu einer frustrierenden Realität geworden. Lange Entwicklungszyklen, verzögerte Funktionen und komplexe Zusammenführungen führen oft zu Integrationskonflikte und Missverständnisse zwischen Teammitgliedern — Hindernisse, die den Fortschritt behindern und rechtzeitige Veröffentlichungen gefährden. Wenn jeder Tag voller dieser Herausforderungen ist, hat man leicht das Gefühl, ständig aufzuholen und zu versuchen, Probleme zu lösen, die die Dynamik Ihres Teams verlangsamen.

Klingt vertraut? Du bist nicht allein. Diese Engpässe sind häufige Problembereiche in der Softwareentwicklung und veranlassen viele Technologieführer, nach Lösungen zu suchen, die Arbeitsabläufe rationalisieren und Produkte schneller auf den Markt bringen. Wie machen sie das? Wir haben 75 globale CTOs und Technologieführer gefragt, wie sie Geschäftsziele pünktlich erreichen. 59,2% von ihnen gaben an, dass es sich um eine Kombination aus strategischen Prozessen und agilen Frameworks handelt. Diese Statistik stammt aus unserem Bericht „Von der Vision zum Code: Ein Leitfaden zur Ausrichtung der Geschäftsstrategie auf die Ziele der Softwareentwicklung“, das sich auf die Perspektiven von Engineering, Delivery, Business und DevOps bei der Entwicklung eines erfolgreichen digitalen Produkts konzentriert.

How to deliver business objectives on time

Wie Trunk-basierte Entwicklung Ihren Arbeitsablauf verändern kann

An dieser Stelle kommt Trunk-Based Development (TBD) ins Spiel. Dieser optimierte Ansatz zur Versionskontrolle ist zu einer bevorzugten Lösung für Teams geworden, die ihren Softwarebereitstellungsprozess verbessern und Verzögerungen reduzieren möchten. TBD konzentriert sich auf eine einzige, stabile Hauptniederlassung und macht es so einfacher, Integrationskonflikte zu minimieren, technische Schulden zu reduzieren und schnelle, zuverlässige Releases zu ermöglichen.

Mit TBD, Sie werden in der Lage sein, eine kontinuierliche Integrationsmentalität anzunehmen, bei der Codeänderungen kleiner, häufiger und einfacher zu verwalten sind. Die Vorteile sind beträchtlich: weniger Überraschungen in letzter Minute, minimierter technischer Aufwand und eine stärkere Abstimmung zwischen den Teams. Diese Vorgehensweise bildet die Grundlage für Agilität und Schnelligkeit, sodass Sie Ihren Benutzern neue Funktionen und Verbesserungen mit größerer Zuversicht zur Verfügung stellen können.

Und die Ergebnisse? Viele Teams stellen fest, dass TBD ihre Release-Zykluszeiten verkürzt, sodass sie Produkte früher auf den Markt bringen, schnell iterieren und in Echtzeit auf Kundenfeedback reagieren können. Dieser Ansatz löst nicht nur Probleme; er ermöglicht es Ihrem Team, mehr zu erreichen und gleichzeitig den Entwicklungsprozess weniger stressig und auf lange Sicht nachhaltiger zu gestalten.

Durch die Einführung einer runkbasierten Entwicklung Sie beseitigen nicht nur Engpässe, sondern positionieren Ihr Team auch für kontinuierliche Innovation und Wachstum — damit Sie wirkungsvolle Produkte schneller und zuverlässiger als je zuvor auf den Markt bringen können.

Lassen Sie uns nun ohne weitere Umschweife in die Details eintauchen.

Kofferraumbasierte Entwicklung erklärt

Trunk based development definition
Kofferraumentwicklung: Definition und Vorteile

Trunk-Based Development (TBD) ist ein leistungsstarker Ansatz zur Versionskontrolle, der entwickelt wurde, um die Geschwindigkeit, Sicherheit und Effizienz von Softwareversionen zu verbessern. Durch die Betonung der kontinuierlichen Integration und der häufigen Zusammenarbeit TBD passt sich nahtlos an Agile- und DevOps-Praktiken anund eignet sich daher ideal für Teams, die ihre Bereitstellungszyklen beschleunigen und die Codequalität verbessern möchten. Wie unser DevOps-Ingenieur in dem Bericht sagte „Von der Vision zum Code: Ein Leitfaden zur Ausrichtung der Geschäftsstrategie auf die Ziele der Softwareentwicklung“:

Worum geht es bei Trunk-basierter Entwicklung?

Im Mittelpunkt steht die Trunk-Based Development dreht sich um einen einzelnen, gemeinsam genutzten Branch — den sogenannten „Trunk“ —, an dem Entwickler häufig Codeänderungen vornehmen. Im Gegensatz zu herkömmlichen Branching-Strategien, die auf langlebigen Feature-Branches basieren, ermutigt TBD Entwickler, kleine, schrittweise Änderungen direkt in den Trunk zu integrieren. Dies minimiert das Risiko komplexer Merge-Konflikte und ermöglicht schnelles Feedback, da der Code ständig in kleineren, überschaubaren Segmenten getestet und überprüft wird.

TBD in der Praxis

In einem typischen TBD-Arbeitsablauf Release-Branches werden als Snapshots erstellt, wenn der Code zur Bereitstellung bereit ist. Diese Zweige sind in der Regel kurzlebig und gehen nach der Veröffentlichung sofort wieder in den Stamm über, sodass der Stamm weiterhin die einzige Informationsquelle ist. Dieser Prozess hält die Codebasis stabil und reduziert die Anhäufung technischer Schulden.

In Szenarien, in denen Teams mehrmals am Tag veröffentlichen, sinkt der Bedarf an Release-Branches. Änderungen werden oft direkt in den Trunk übertragen und sofort bereitgestellt, wodurch sichergestellt wird, dass der Haupt-Branch immer einsatzbereit ist.

Während sich TBD hauptsächlich auf die Entwicklung neuer Funktionen im Trunk konzentriert, gibt es Fälle, in denen Bugfixes möglicherweise ausgewählt und auf aktive Release-Branches angewendet werden müssen. Solche Situationen sind jedoch weniger häufig, da Die Philosophie von TBD betont die proaktive Integration von Fixes in die Hauptzweige, was den schnellen Iterations- und kontinuierlichen Verbesserungszyklus weiter unterstützt.

Trunk based development gives more flexibility and control

Kofferraumentwicklung: Vergleich mit anderen Modellen

Trunk-basierte Entwicklung im Vergleich zu Feature-Branch

Die Verwaltung und Umgestaltung von Code, der in langlebigen Filialen angesammelt wurde, kann kostspielig und zeitaufwändig sein. Trunk Based Development wiederum ist eine Methode, die den technischen Aufwand durch kontinuierliche Integration und kleinere, leichter zu handhabende Code-Updates minimiert.

Das Zusammenführen kleinerer und häufigerer Codeänderungen unterscheidet TBD von Feature-Branching (auch bekannt als Feature-Based Deployment), wo Code-Updates nicht so zahlreich und regelmäßig sind. Außerdem sind sie in der Regel größer als bei Trunk-Based Development.

Darüber hinaus arbeiten im Fall von TBD alle Softwareingenieure in Echtzeit an derselben Codebasis, und eine solche Zusammenarbeit ermöglicht es, Änderungen zu verfolgen, zu testen und bei Bedarf umgehend zu reagieren. Im Gegenzug Bei der funktionsbasierten Entwicklung wird davon ausgegangen, dass bestimmte Teams isoliert an separaten Zweigen arbeiten — und es kann lange dauern, bis sie ihre Code-Updates Teil des Haupt-Repositorys machen.

Die wichtigsten Unterschiede:

  • Entwicklung auf Trunk-Basis ist ideal für Teams, die häufigen Releases und kollaborativen Workflows Priorität einräumen. Durch die direkte Zusammenführung kleiner, regelmäßiger Änderungen in den Trunk können Teams technische Schulden reduzieren, Merge-Konflikte minimieren und jederzeit eine einsatzbereite Codebasis aufrechterhalten.
  • Verzweigung von Merkmalen ermöglicht es Entwicklern, isoliert an einzelnen Funktionen zu arbeiten. Dies kann zwar bei größeren Projekten effektiv sein, kann aber zu komplexen, zeitaufwändigen Zusammenführungen und höheren technischen Schulden führen, wenn Filialen veraltet sind.

Trunk-basierte Entwicklung im Vergleich zu GitFlow

TBD ist auf Geschwindigkeit und Agilität ausgelegt, da sich Entwickler direkt auf einen einzigen Hauptzweig festlegen, was eine kontinuierliche Integration und schnelle Bereitstellung unterstützt. Gitflow hingegen ist ein strukturierteres Branching-Modell, das sich für Projekte mit geplanten Release-Zyklen eignet. Es basiert auf mehreren langlebigen Branches (wie Master-, Develop- und Feature-Branches) und bietet einen detaillierteren Arbeitsablauf für Feature-Entwicklung, Releases und Hotfixes. Beide Ansätze haben ihre Vorteile und werden in unterschiedlichen Entwicklungskontexten eingesetzt.

Die wichtigsten Unterschiede:

  • Filialstruktur und Integration: TBD unterhält einen einzigen Hauptzweig, in dem alle Änderungen häufig übernommen werden, was eine schnellere Feedback-Schleife und weniger Konflikte unterstützt. Im Gegensatz dazu verwendet Gitflow mehrere Branches für unterschiedliche Zwecke (z. B. Feature, Develop, Release), was zu komplexeren Zusammenführungsprozessen führen kann, aber eine isolierte Feature-Entwicklung und klarere Release-Zyklen ermöglicht.
  • Strategie veröffentlichen: TBD ist auf kontinuierliche Integration und Bereitstellung ausgerichtet und eignet sich daher ideal für Teams, die häufig und iterativ bereitstellen müssen. Gitflow eignet sich jedoch besser für Projekte mit definierten Release-Zyklen, da es Teams ermöglicht, Code auf speziellen Release-Branches zu stabilisieren, bevor sie in die Produktion überführt werden.

Vorteile der trunkbasierten Entwicklung

Es gibt viele Gründe, warum sich erfolgreiche Unternehmen für Trunk-Based Development (TBD) entscheiden. Einer der größten Vorteile dieses Ansatzes ist, dass reduziert die Komplexität von Zusammenführungen und hält den Code auf dem neuesten Stand und optimiert. Mit weniger Entwicklungslinien und kleineren, häufigen Zusammenführungen können Teams die Kopfschmerzen massiver Integrationsereignisse vermeiden.

Und die Übernahme dieses Ansatzes hat weitere Vorteile, wie zum Beispiel:

  • Beschleunigung der Softwareentwicklung,
  • Verbesserung der Sicherheit, Zuverlässigkeit und Effizienz von Softwareversionen,
  • Aufrechterhaltung einer hohen Codequalität durch häufiges Testen und Code-Reviews,
  • passt perfekt zu den CI/CD-Praktiken,
  • Verwendung von Feature-Umschaltern,
  • Verbesserung der organisatorischen Leistung,
  • Erhöhung der Softwarestabilität,
  • damit Unternehmen der Zeit immer einen Schritt voraus sind,
  • Minimierung der mit der Softwareentwicklung verbundenen Risiken, einschließlich Zusammenführungskonflikten, technischen Schulden und Bereitstellungsfehlern.

Letzterer Vorteil ergibt sich aus der Förderung häufiger Integration und kontinuierlicher Bereitstellung, was CTOs dabei hilft, reibungslosere und vorhersehbarere Softwareentwicklungszyklen zu gewährleisten. Durch die Verwendung derselben Codebasis können Entwickler effektiver zusammenarbeiten und so einen einheitlichen, optimierten Arbeitsablauf schaffen.

Da alle Codeänderungen sofort im Hauptstamm sichtbar sind, werden nachfolgende Schritte — wie Testen und Bereitstellen — schneller und einfacher. Diese Zusammenarbeit in Echtzeit macht es einfacher, Probleme frühzeitig zu erkennen und zu lösen, was zu einem agileren und effizienteren Entwicklungsprozess führt.

Bedeutung von Trunk-basierten Workflows in CI/CD

Einer der Hauptvorteile der Einführung des TBD-Ansatzes ist die Unterstützung bei der Umsetzung von Continuous Integration/Continuous Delivery (CI/CD). Darüber hinaus kann Trunk-Based Development sogar als Trunk-Based Development bezeichnet werden ein wichtiger Enabler von CI und damit CD.TBD erleichtert die Durchführung von Continuous Integration/Continuous Delivery, weil optimiert Zusammenführungs- und Integrationsphasen. Bei Trunk Based Development geht es vor allem darum, kleine, häufige Codeänderungen zu einem gemeinsamen Hauptzweig (oder einem „Trunk“) zusammenzuführen und gleichzeitig viele langlebige Branches zu vermeiden. TBD bietet noch mehr Vorteile, wenn es mit CI/CD-Praktiken kombiniert und automatisiert wird. Einige dieser Vorteile umfassen:

  • sicherzustellen, dass die Codebasis immer einsatzbereit ist,
  • weniger Fehler aufgrund häufiger Tests, Integrationen und Validierungen,
  • Bugs in einem frühen Stadium zu erkennen,
  • Geld sparen durch höhere Effizienz,
  • kürzere Markteinführungszeit,
  • höhere Softwarequalität.

CI-Tools integrieren Codeänderungen automatisch in den Trunk. Aber bevor sie das tun, überprüfen automatisierte Tests jeden Commit, um sicherzustellen, dass diese Aktualisierungen die gemeinsame Codebasis, an der alle Teammitglieder arbeiten, nicht schädigen.

Grundprinzipien der runkbasierten Entwicklung

Prinzip 1: Pflegen Sie einen einzigen, langlebigen Stammast

  • Der Kern von TBD ist ein einziger, langlebiger Hauptzweig — der sogenannte „Trunk“ —, in den alle Entwickler Code einspielen. Im Gegensatz zu anderen Branching-Strategien, bei denen mehrere langlebige Branches für verschiedene Funktionen oder Releases erstellt werden, verwendet TBD einen einzigen Branch als primäre Informationsquelle für die Codebasis.
  • Dieses Prinzip minimiert die Komplexität, die mit dem Zusammenführen mehrerer Zweige verbunden ist, und sorgt dafür, dass die Codebasis stabil und jederzeit einsetzbar ist. Indem Teams sich direkt an den Trunk binden, stellen sie sicher, dass ihre Arbeit häufig in die Hauptcodebasis integriert wird, wodurch das Risiko von Merge-Konflikten und technischen Schulden im Laufe der Zeit reduziert wird.

Prinzip 2: Verwenden Sie kurzlebige Feature-Branches für fokussierte Aufgaben

  • TBD konzentriert sich zwar hauptsächlich auf die Verwendung eines einzelnen Stammes, ermöglicht jedoch kurzlebige Feature-Branches. Diese Branches werden für bestimmte Aufgaben oder Funktionen verwendet, sollten aber nur für einen kurzen Zeitraum existieren — in der Regel ein oder zwei Tage. Sobald die Arbeit an diesen Zweigen abgeschlossen ist, werden sie wieder mit dem Stamm zusammengeführt und gelöscht.
  • Diese Praxis unterstützt die Betonung der häufigen Integration von TBD. Indem die Entwickler Filialen kurzlebig halten, minimieren sie das Risiko großer, komplexer Zusammenschlüsse und tragen dazu bei, die Abstimmung innerhalb des Teams aufrechtzuerhalten.

Prinzip 3: Führen Sie häufig Änderungen durch, um eine kontinuierliche Integration zu ermöglichen

  • Eines der Grundprinzipien von TBD ist die kontinuierliche Integration. Entwicklern wird empfohlen, kleine, schrittweise Änderungen mehrmals täglich direkt am Trunk vorzunehmen. Dieser schnelle Integrationszyklus reduziert den Umfang jeder Codeänderung und erleichtert so das Testen, Überprüfen und Debuggen.
  • Diese Vorgehensweise entspricht der Continuous Integration (CI) und stellt sicher, dass der Trunk in einem stabilen, einsatzbereiten Zustand bleibt. Eine häufige Integration hilft auch dabei, Probleme frühzeitig zu erkennen und zu lösen, wodurch das Risiko kostspieliger, zeitaufwändiger Reparaturen zu einem späteren Zeitpunkt verringert wird.

Prinzip 4: Automatisieren Sie Tests und Qualitätskontrolle für jeden Commit

  • Automatisiertes Testen ist in TBD unerlässlich, um einen hohen Standard an Codequalität aufrechtzuerhalten. Jeder Commit in den Trunk sollte automatisch eine Reihe von Tests auslösen, darunter Unit-, Integrations- und End-to-End-Tests. Diese Tests stellen sicher, dass der Code jederzeit stabil und funktionsfähig ist.
  • Zur Qualitätskontrolle können auch statische Codeanalysen und automatisierte Code-Reviews gehören, die dabei helfen, potenzielle Bugs, Stilverstöße und Sicherheitslücken zu erkennen. Durch die Automatisierung dieser Prozesse können Teams die Codequalität aufrechterhalten, ohne sich auf manuelle Prüfungen verlassen zu müssen. Dadurch wird die Feedback-Schleife beschleunigt und die Zuverlässigkeit der Codebasis erhöht.

Prinzip 5: Setzen Sie auf kontinuierliche Code-Reviews und kollaborative Praktiken

  • Codeüberprüfungen sind eine bewährte Methode in TBD, die die Teamzusammenarbeit und den Wissensaustausch unterstützen. Teams sollten einen strukturierten Code-Review-Prozess einrichten, bei dem jede Commit- oder Pull-Anfrage von einem oder mehreren Teammitgliedern überprüft wird, bevor sie in den Trunk aufgenommen wird.
  • Dieser Prozess trägt nicht nur zur Aufrechterhaltung der Codequalität bei, sondern ermöglicht es Entwicklern auch, voneinander zu lernen, Erkenntnisse auszutauschen und potenzielle Probleme frühzeitig zu erkennen. In einer noch offenen Umgebung, in der Zusammenarbeit von entscheidender Bedeutung ist, fördern regelmäßige Code-Reviews eine Kultur der Rechenschaftspflicht und kontinuierlichen Verbesserung.

Prinzip 6: Halten Sie den Kofferraum immer in einem einsatzbereiten Zustand

  • In TBD befindet sich der Trunk immer in einem einsatzbereiten Zustand. Das bedeutet, dass der Code im Trunk jederzeit für die Produktion freigegeben werden kann. Um dieses Prinzip zu unterstützen, sollten Teams Deployment-Pipelines in ihr CI/CD-Setup integrieren, sodass automatische Bereitstellungen immer dann möglich sind, wenn Änderungen in den Trunk übernommen werden.
  • Durch die Pflege eines bereitstellbaren Trunks ermöglicht TBD Teams, neue Funktionen, Bugfixes und Updates schnell zu veröffentlichen. Dies unterstützt agile Arbeitsabläufe, reduziert die Vorlaufzeit für Änderungen und ermöglicht es dem Team, schnell auf Kundenfeedback und Marktanforderungen zu reagieren.

Wer benutzt TBD?

Google nutzt Trunk-Based Development (TBD), um seine umfangreiche Codebasis stabil und jederzeit einsetzbar zu halten. Durch das Zusammenführen kleiner, häufiger Änderungen direkt im Trunk ermöglicht Google schnelle und zuverlässige Releases, minimiert Merge-Konflikte und ermöglicht eine kontinuierliche Integration, um mit der schnellen Entwicklung Schritt zu halten.

Facebook verlässt sich auch auf TBD, um eine kontinuierliche Integration und schnelle Bereitstellungen aufrechtzuerhalten. Teams nehmen kleine, gezielte Commits an die Hauptleitung vor, die automatisch getestet wird. Dieser Ansatz ermöglicht es Facebook, seine Plattform kontinuierlich zu verbessern und mit neuen Funktionen zu experimentieren, ohne die Produktion zu unterbrechen.

Atlassian nutzt TBD, um Arbeitsabläufe zu rationalisieren und technische Schulden zu reduzieren. Durch die Minimierung langlebiger Filialen können die Teams von Atlassian komplexe Zusammenschlüsse vermeiden und sich auf agile Releases konzentrieren, die sich an den Kundenanforderungen orientieren. Sie priorisieren das Umschalten von Funktionen, sodass sie Updates schrittweise einführen und Funktionen auf der Grundlage von Feedback in Echtzeit anpassen können.

Weiter zur Implementierung: So implementieren Sie Trunk-Based Development

Es gibt einige Dinge, über die man sich im Vorfeld Gedanken machen und vorbereiten muss. Sie müssen sicherstellen, dass Ihrem Team ein CI-System und ein Versionskontrollsystem zur Verfügung stehen und dass ein Code-Review-Prozess und automatisierte Testverfahren implementiert wurden. Natürlich muss die gesamte Entwicklungsarbeit in ein einziges Repository verlagert werden, und den Entwicklern muss beigebracht werden, regelmäßig Code-Updates vorzunehmen. Dieser Schritt erfordert einen umfassenden Kulturwandel innerhalb der Organisation, der am Anfang möglicherweise schwer zu bewerkstelligen ist. Damit diese Änderungen reibungslos und einfacher zu handhaben sind, kann es erforderlich sein, diesbezüglich einen erfahrenen Berater einzustellen.

Um TBD erfolgreich zu implementieren, sind mehrere Schritte erforderlich:

How to implement trunk based development - 5 steps to take
Wie implementiert man Trunk-basierte Entwicklung?

Lassen Sie uns das nun genauer analysieren.

Schritt 1: Richten Sie die richtigen Tools ein

Die effektive Implementierung von Trunk-Based Development hängt von einem gut konfigurierten Versionskontrollsystem und einer Einrichtung für kontinuierliche Integration (CI) ab. Diese Tools werden für die Verwaltung der häufigen Zusammenführungen und Tests benötigt, die in TBD erforderlich sind.

  • Nutze eine Plattform wie Git, das Trunk-basierte Workflows durch Funktionen wie Branching, Merging und Pull Requests unterstützt.
  • Richte deine ein Versionskontrollsystem zur Verstärkung des TBD-Workflows. Sie können beispielsweise Regeln konfigurieren, nach denen Entwickler ihren Code innerhalb eines bestimmten Zeitrahmens wieder in den Trunk zusammenführen müssen.
  • Verwenden Sie Zugriffskontrollen, um zu verwalten, wer sich direkt für den Trunk anmelden kann. Einige Teams erlauben möglicherweise allen Entwicklern, Code direkt zusammenzuführen, während andere möglicherweise Genehmigungen oder Überprüfungen für bestimmte Branches benötigen.
  • Wählen Sie ein CI-Tool, das sich gut in das von Ihnen gewählte Versionskontrollsystem integrieren lässt, um eine nahtlose Automatisierung zu gewährleisten. Diese Tools können so konfiguriert werden, dass sie jeden Commit automatisch erstellen und testen, was für die Aufrechterhaltung eines einsatzbereiten Trunks unerlässlich ist.
  • Konfigurieren Sie Ihr CI-System so, dass es bei jedem Commit eine Reihe automatisierter Tests (Einheiten-, Integrations- und Regressionstests) ausführt.
  • In TBD wird der Code kontinuierlich integriert und sollte sich immer in einem einsatzfähigen Zustand befinden. Richten Sie Trigger ein, um Änderungen automatisch oder halbautomatisch bereitzustellen, nachdem sie die CI-Pipeline passiert haben.
  • Integrieren Sie für eine reibungslosere Bereitstellung ein Tool zur Verwaltung von Feature-Flaggen wie Starte Darkly oder Split.io. Mithilfe von Feature-Flags können Sie unvollständige Features im Trunk zusammenführen, ohne die Produktion zu beeinträchtigen, sodass Teams unabhängig an verschiedenen Funktionen arbeiten können.

Schritt 2: Implementieren Sie automatisierte Tests und Code-Reviews

Automatisierte Tests sind in TBD von entscheidender Bedeutung. Jeder Commit in den Trunk sollte eine Reihe von Tests (Komponententests, Integrationstests usw.) auslösen, um die Stabilität der Codebasis sicherzustellen. Implementieren Sie einen strukturierten Code-Review-Prozess, um die Codequalität aufrechtzuerhalten und bei jeder Zusammenführung Feedback zu geben. Diese Methoden helfen dabei, Fehler frühzeitig zu erkennen und einen hohen Standard an Codequalität aufrechtzuerhalten.

Trunk based development requires a strong testing culture

Schritt 3: In ein einzelnes Repository wechseln

Zentralisieren Sie Ihre Entwicklungsarbeit, indem Sie den gesamten Code in ein einziges Repository verschieben. Dies ermöglicht Entwicklern eine einfache Zusammenarbeit und stellt sicher, dass alle von derselben Informationsquelle aus arbeiten. Die Arbeit in einer einheitlichen Umgebung verhindert isoliertes Arbeiten, was in Feature-Branch-Workflows ein häufiges Problem ist.

Schritt 4: Ermutigen Sie zu regelmäßigen Updates

Um den TBD-Prinzipien gerecht zu werden, müssen sich Entwickler zur Gewohnheit machen, kleine, regelmäßige Updates am Trunk vorzunehmen. Dies erfordert eine Änderung der Herangehensweise der Teams an die Entwicklung und eine Abkehr von der langfristigen, isolierten Feature-Arbeit. Ermutigen Sie Ihr Team, den Code häufig zu übertragen, um große, komplexe Zusammenführungen zu vermeiden.

Schritt 5: Fangen Sie an, eine Kultur der Zusammenarbeit zu fördern

Die Implementierung von TBD beinhaltet mehr als nur die Änderung von Prozessen; sie erfordert einen kulturellen Wandel innerhalb Ihres Unternehmens. Entwickler müssen sich mit der häufigen Zusammenarbeit und dem regelmäßigen Teilen ihrer Arbeit auskennen. Dies kann einige anfängliche Herausforderungen mit sich bringen, insbesondere für Teams, die an Branching-Funktionen gewöhnt sind. Die Bereitstellung von Schulungen und Ressourcen, um Entwickler bei diesem Übergang zu begleiten, ist unerlässlich.

Herausforderungen, auf die Sie Ihr Team vorbereiten müssen

Erhöhtes Risiko, den Kofferraum zu brechen

Bei häufigen Commits an eine einzelne Hauptzeile können selbst kleinere Probleme die gesamte Codebasis stören. Um dies zu bewältigen, ist eine starke CI/CD-Pipeline mit automatisierten Tests, die Unit-, Integrations- und End-to-End-Tests umfassen, unerlässlich. Teams sollten Richtlinien durchsetzen, nach denen jeder Commit vor der Zusammenführung automatisierte Tests bestehen muss. Unvollständige Tests oder Lücken in der Testabdeckung können schnell dazu führen, dass ein Trunk nicht bereitgestellt werden kann. Daher ist die Aufrechterhaltung einer hohen Testqualität und schneller Feedback-Zyklen von entscheidender Bedeutung.

Abhängigkeit von umfassender Testautomatisierung

TBD ist stark auf automatisierte Tests angewiesen, weshalb eine gründliche Testabdeckung unerlässlich ist. Lücken in der Testabdeckung erhöhen die Wahrscheinlichkeit, dass unentdeckte Probleme in den Teststamm aufgenommen werden, was zu Instabilität führt. Teams müssen in robuste Testsuiten und automatisierte Build-Systeme investieren, die Fehler sofort erkennen. Darüber hinaus sind Testgeschwindigkeit und Zuverlässigkeit wichtige Faktoren, da langsame oder inkonsistente Tests den Integrationsprozess behindern können.

Komplexität der Verwaltung von Funktionsumschaltungen

Mithilfe von Funktionsumschaltern können unerledigte Arbeiten sicher ausgeführt werden. Die Verwaltung von Umschaltern wird jedoch komplex, wenn sie sich häufen. Jedes Feature-Flag steht für bedingte Codepfade, die, wenn sie nicht markiert sind, die Codebasis überladen und Fehler verursachen können. Um diese Komplexität zu reduzieren, benötigen Teams einen Prozess, um alte Schalter zu bereinigen und aktive Schalter genau zu überwachen. Die Verwendung eines speziellen Feature-Management-Tools wie LaunchDarkly kann dazu beitragen, diesen Prozess zu rationalisieren und technische Schulden zu reduzieren.

Hoher Kooperations- und Kommunikationsaufwand

TBD erfordert, dass alle Teammitglieder mit derselben Codebasis arbeiten und häufig Commits durchführen, was die Notwendigkeit einer Zusammenarbeit in Echtzeit erhöht. Teams benötigen klare Protokolle für Codeüberprüfungen, schnelles Feedback und Konfliktlösung, um die Abstimmung aufrechtzuerhalten. Tools wie Slack oder Microsoft Teams sind in Kombination mit Code-Review-Plattformen wie GitHub oder GitLab unerlässlich, um eine kontinuierliche Kommunikation sicherzustellen. Die Teamkultur muss jedoch auch regelmäßige Interaktionen und schnelle Reaktionszeiten unterstützen.

Skalierung mit größeren Teams

Wenn Teams wachsen, steigt auch die Anzahl der Commits im Trunk, was Konflikte und Integrationsprobleme verstärken kann. Große Teams müssen sich möglicherweise in kleinere, fokussierte Gruppen mit speziellen Verantwortlichkeiten aufteilen, um Engpässe zu vermeiden. Fortschrittliche CI/CD-Systeme mit parallelisierten Test- und Build-Funktionen sind entscheidend, um das höhere Änderungsvolumen effizient zu bewältigen und den Trunk stabil zu halten. Durch die Implementierung von Schutzmaßnahmen für Filialen, automatisierten Rollbacks und Überwachungstools wie Datadog oder New Relic wird eine schnelle Problemerkennung gewährleistet und Ausfallzeiten minimiert.

Trunk-basierte Entwicklung abgeschlossen

Trunk-Based Development (TBD) ist eine ideale Strategie für Teams, die die Entwicklung beschleunigen und eine hohe Codequalität aufrechterhalten möchten. Durch die Optimierung der Zusammenarbeit und die Förderung der kontinuierlichen Integration ermöglicht TBD schnelle, zuverlässige Softwareversionen, mit denen Sie der Konkurrenz immer einen Schritt voraus sind. Dieser Ansatz reduziert Merge-Konflikte, minimiert den technischen Aufwand und sorgt dafür, dass die Codebasis immer einsatzbereit ist.

Mit TBD können Sie eine schnellere Markteinführung erreichen, Kosten senken und die allgemeine Unternehmensleistung verbessern. Kein Wunder, dass Unternehmen wie Facebook, Microsoft und Google TBD als Kernbestandteil ihres Entwicklungsprozesses erkannt haben.

Suchen Sie nach einer zuverlässigen Methode, um Ihre Release-Effizienz zu steigern und Merge-Konflikte zu vermeiden? Erwägen Sie, TBD zu einem Teil Ihres DevOps-Lebenszyklus zu machen.

Frequently Asked Questions

No items found.

Our promise

Every year, Brainhub helps 750,000+ founders, leaders and software engineers make smart tech decisions. We earn that trust by openly sharing our insights based on practical software engineering experience.

Authors

Olga Gierszal
github
IT-Outsourcing-Marktanalyst und Redakteur für Softwaretechnik

Enthusiast für Softwareentwicklung mit 8 Jahren Berufserfahrung in der Technologiebranche. Erfahrung im Outsourcing von Marktanalysen, mit besonderem Schwerpunkt auf Nearshoring. In der Zwischenzeit unser Experte darin, technische, geschäftliche und digitale Themen auf verständliche Weise zu erklären. Autor und Übersetzer nach Feierabend.

Leszek Knoll
github
CEO (Chief Engineering Officer)

Mit über 13 Jahren Berufserfahrung in der Technologiebranche. Technologisch begeistert, geek und Mitbegründer von Brainhub. Kombiniert seine technische Expertise mit Geschäftswissen.

Olga Gierszal
github
IT-Outsourcing-Marktanalyst und Redakteur für Softwaretechnik

Enthusiast für Softwareentwicklung mit 8 Jahren Berufserfahrung in der Technologiebranche. Erfahrung im Outsourcing von Marktanalysen, mit besonderem Schwerpunkt auf Nearshoring. In der Zwischenzeit unser Experte darin, technische, geschäftliche und digitale Themen auf verständliche Weise zu erklären. Autor und Übersetzer nach Feierabend.

Leszek Knoll
github
CEO (Chief Engineering Officer)

Mit über 13 Jahren Berufserfahrung in der Technologiebranche. Technologisch begeistert, geek und Mitbegründer von Brainhub. Kombiniert seine technische Expertise mit Geschäftswissen.

Read next

No items found...

previous article in this collection

It's the first one.

next article in this collection

It's the last one.