
Serpent Team

Andrew Hanna

Kurz gesagt: Waehlen Sie Ihr Branching-Modell aus zwei Eingaben, Teamgroesse und Sandbox-Topologie, und aus nichts sonst. Unter etwa vier Mitwirkenden mit nur Developer-Sandboxes: ein Main-Branch und kurzlebige Feature-Branches. Zwischen vier und zehn mit einer Partial Copy fuer UAT: ein Release-Branch je Release, mehr nicht. Darueber, oder mit einer Full Sandbox und festem Change-Fenster, verdient GitFlow seine Zeremonie. Branch pro Umgebung ist eine Compliance-Entscheidung, keine technische.
Drei Dinge, und nur drei: wo laufende Arbeit lebt, wie eine Aenderung in die naechste Umgebung befoerdert wird, und was wahr sein muss, bevor etwas die Produktion erreicht. Alles andere ist Diagrammschmuck.
Salesforce-Teams verrechnen sich hier, weil der allgemeine Engineering-Rat etwas voraussetzt, das auf der Plattform nicht gilt: dass ein Branch Ihnen auch einen Ort zum Ausfuehren gibt.
Ein langlebiger Branch, main, der immer abbildet, was Produktion sein
sollte. Feature-Branches leben Tage, nicht Wochen, und kommen ueber einen Pull Request
zurueck. Die wenigsten beweglichen Teile, die wenigsten Konflikte, die haerteste
Disziplin.
main fuer ausgelieferten Code, develop fuer integrierte
Arbeit, dazu Release- und Hotfix-Branches. Gebaut fuer geplante Releases und fuer die
Pflege einer laufenden Version, waehrend die naechste entsteht. Kostet einen
zusaetzlichen dauerhaften Branch und viel Mergen.
Ein Branch je Org: Dev, UAT, Staging, Produktion. Meist das Erste, was Teams bauen, weil es aussieht wie die Org-Landschaft, die sie ohnehin haben. Die Befoerderung wird zum Merge zwischen Umgebungsbranches, was ordentlich klingt und in Merges von Merges plus regelmaessigem Cherry-Picking endet.
Hier hoeren die meisten Branching-Artikel auf, und hier faellt die eigentliche Entscheidung.
develop, Ihr Sandbox-Bestand rechtfertigt ihn nicht.
Auffaellig ist, wie wenig die Release-Kadenz vorkommt. Kadenz ist ein Ergebnis Ihrer Sandbox-Topologie, keine unabhaengige Eingabe, und Teams, die nach Wunschkadenz waehlen, bekommen einen Prozess, den ihre Umgebungen nicht tragen.
main mit der Produktion ab und behandeln Sie die Differenz
als echtes Backlog, nicht als Kuriositaet. Dort stecken meist die Ueberraschungen.
Das Modell, das den Kontakt mit einem echten Team ueberlebt, ist das von der Pipeline erzwungene, nicht das im Onboarding-Dokument. Muss sich ein Berater die Branch-Regeln merken, brechen sie in der ersten vollen Release-Woche. Serpent arbeitet ticketbasiert mit Git im Hintergrund, sodass Branch, Pull Request und Befoerderungspfad aus dem Ticket kommen statt aus dem Gedaechtnis. Weitere Pipeline-Leitfaeden finden Sie in unserer SF-Guides-Bibliothek.
Ist Trunk-based fuer ein Admin-Team realistisch?
Ja, und meist einfacher als GitFlow, weil es nur einen Branch zu verstehen gibt. Entscheidend ist die Disziplin kurzer Branches, nicht Git-Routine.
Brauchen wir einen Git-Branch pro Sandbox?
Nein. Eine Sandbox ist ein Deployment-Ziel. Ein Branch je Org ist die Hauptursache fuer Merges von Merges und dauerhaftes Cherry-Picking.
Wie lange darf ein Salesforce-Feature-Branch leben?
Tage. Ein Sprint ist die Obergrenze. Danach kosten Metadaten-Drift und Profilkonflikte mehr, als der Branch einbringt.
Wie funktionieren Hotfixes bei Trunk-based?
Vom letzten ausgelieferten Commit abzweigen, korrigieren, validieren, ausrollen und sofort zurueck in main mergen, damit der Fix beim naechsten Release nicht verloren geht.
Aendert sich das Modell fuer 2GP-Paketteams?
Ja. Nach Paketversion branchen und in Scratch Orgs testen. Umgebungsbranches modellieren eine Org-Landschaft, in die ein Paketteam gar nicht ausliefert.
Unverbindlich.