Bis vor kurzem hatte ich eine naive Vorstellung von Trunk-based Development:
alle Commits direkt auf main, und sobald CI grün ist, wird auf Produktion deployed.
Meine Interpretation war, Branches seien verpönt, selbst kurzlebige Feature-Branches und Release-Branches erst recht.
Geplant war ein Blog-Artikel, in dem ich schreiben wollte, warum ich das für nicht sinnvoll halte. Bei meiner Recherche habe ich dann jedoch lernen dürfen, dass ich ziemlich daneben lag und die Definition von Trunk-based Development keinesfalls so naiv ist, wie ich dachte:
Release-Branches sind sogar ausdrücklich vorgesehen und kurzlebige Branches, sogar mit Review, sind auch der Normalfall.
Zwar habe ich nie in einem Projekt mitgearbeitet, das von sich behauptet hat, Trunk-based zu arbeiten. Rückblickend war der Workflow einiger dieser Projekte sehr wohl Trunk-based Development. Und meine eigenen Projekte kommen dem Ideal des Trunk-based Development sehr nahe.
Um Workflows genauer einzuordnen, habe ich einen Selbsttest gemäß trunkbaseddevelopment.com gebaut. Gefragt wird nach dem, was im Alltag eines Teams passiert, nicht danach, wie das Team seinen Workflow nennt. Fragen, Optionen und Gewichtung entsprechen meinem aktuellen Recherche-Stand und wahrscheinlich nicht der absoluten Wahrheit. Vertiefungen zu den einzelnen Fragen und auch einzelne kritische Anmerkungen folgen in einer Artikelserie, an der ich gerade schreibe.
(Es werden keine Daten gespeichert oder übertragen; die Auswertung läuft vollständig im Browser.)Der Wert ist eine Selbsteinschätzung anhand der Praktiken von trunkbaseddevelopment.com, kein Messergebnis.
Was das Ergebnis bedeutet und was nicht#
Der Umsetzungsgrad beschreibt nach meinem Verständnis, wie viele der Praktiken, die trunkbaseddevelopment.com für Trunk-based Development nennt, ein Team im Alltag tatsächlich umsetzt, gewichtet nach ihrer Bedeutung für kurze Integrationsabstände. Er ist eine Selbsteinschätzung, kein Messwert: Der Test fragt nur nach dem, was mir dafür typisch erscheint, und nur so ehrlich, wie geantwortet wird. Dies soll auch kein Qualitätsmaß sein: Ein hoher Wert ist nicht „besser“ als ein niedriger, denn vermutlich kommt es mehr darauf an, welche Arbeitsweise zum jeweiligen Kontext passt. Wer bewusst mit langlebigen Feature-Branches arbeitet, bekommt hier einen niedrigen Wert und kann trotzdem einen gut funktionierenden Workflow haben.
Dieser Artikel ist mit Unterstützung von KI entstanden.
