
Andrew Hanna

Andrew Hanna

Zuerst die Definition: Source-driven Development ist das Modell, in dem Ihr Git-Repository und keine Org die Quelle der Wahrheit fuer Salesforce-Konfiguration und -Code ist. Orgs werden zu ersetzbaren Umgebungen, in die Sie aus dem Repository deployen, statt zu Orten, zwischen denen Sie Aenderungen kopieren. Alles Weitere in diesem Leitfaden folgt aus diesem einen Satz.
In diesem Modell landet jede Aenderung zuerst in der Versionsverwaltung und erst danach in einer Org. Das Repository haelt den gewollten Zustand der Org. Ein Deployment ist der Akt, eine Org an diese Absicht anzugleichen.
Drei praktische Eigenschaften kommen mit:
Org-zu-Org-Deployment, ob per Change Set oder per direktem Vergleich zweier Orgs, nimmt eine lebende Org als Referenz. Das ist der eigentliche Unterschied, und er hat Folgen.
Beachten Sie, was nicht auf der Liste steht: Geschwindigkeit. Source-driven Development ist nicht automatisch schneller. Es ist wiederholbar, und das ist eine andere, haltbarere Eigenschaft.
Source Tracking ist die Plattformfunktion, die festhaelt, welche Komponenten sich in einer Org oder im lokalen Projekt seit dem letzten Abgleich geaendert haben, damit Sie nur das holen, was sich wirklich bewegt hat, statt alles zu retrieven und einen Diff zu lesen.
Woran Teams stossen, ist die Abdeckung. Source Tracking gibt es in Scratch Orgs und in Developer- und Developer-Pro-Sandboxes. Es gibt es nicht ueberall, also muss ein Source-driven-Modell die Umgebungen beantworten, die keine Aenderungen fuer Sie mitschreiben: Full Sandboxes, Partial Copies und Produktion. Genau dort entstehen undokumentierte Aenderungen.
Commiten Sie Source Format. Die beiden Formate beschreiben dieselben Metadaten unterschiedlich:
package.xml-Manifest. Eine Feldaenderung schreibt eine
grosse Datei neu, der Diff traegt also das ganze Objekt und Reviews werden laut.
sfdx-project.json.
Der Effekt liegt in Review und Merge, nicht in der Funktion. Kleine Dateien erzeugen lesbare Diffs und deutlich weniger Konflikte, wenn zwei Personen dasselbe Objekt anfassen, und genau diese Situation soll das Modell ueberstehen.
Das ist die Frage, die die meisten Erklaerungen auslassen, und die entscheidet, ob das Modell den Kontakt mit einem echten Salesforce-Team ueberlebt. Irgendjemand aendert immer etwas in der Produktion: ein Hotfix um Mitternacht, ein Admin, der einen Picklist-Wert ergaenzt, ein Package-Upgrade, das committete Metadaten ueberschreibt.
Entscheiden Sie diese drei Punkte vor der Migration, nicht danach:
Die meisten Salesforce-Teams bestehen aus Admins und Beratern, nicht aus CLI-Nutzern, und genau dort bleiben Migrationen stecken. Ordnen Sie die Schritte so, dass niemand Git lernen muss, um weiterzuarbeiten:
Muss jeder Admin dafuer Git lernen?
Nein. Es verlangt, dass das Repository massgeblich ist. Welche Menschen direkt mit Git arbeiten, ist eine Werkzeugfrage, keine Eigenschaft des Modells.
Muss ich die ganze Org auf einmal ins Source Format bringen?
Nein. Konvertieren Sie pro Package-Grenze oder pro Team. Ein Teil-Repository, das fuer seinen Umfang wirklich massgeblich ist, schlaegt ein vollstaendiges, dem niemand traut.
Ist Source-driven Development dasselbe wie CI/CD?
Nein. Source-driven Development entscheidet, wo die Wahrheit wohnt. CI/CD automatisiert deren Transport in Orgs. Das Erste geht ohne das Zweite, umgekehrt kaum sinnvoll.
Und Metadaten, die sich nicht versionieren lassen?
Manche Einstellungen und Package-eigene Komponenten kommen nicht sauber zurueck. Dokumentieren Sie sie als ausgeschlossen und steuern Sie sie per Verfahren, statt so zu tun, als deckte das Repository sie ab.
Serpent ist genau fuer das hier beschriebene Team gebaut: Das Repository bleibt die Quelle der Wahrheit, waehrend Admins und Berater in Tickets arbeiten, mit Delta-Deployments, Drift-Erkennung und Rollback per Klick obendrauf. Weitere Referenzleitfaeden finden Sie in SF Guides.
Unverbindlich.