
Andrew Hanna

Andrew Hanna

La définition d'abord : le développement piloté par la source est le modèle où votre dépôt Git, et aucune org, fait autorité sur la configuration et le code Salesforce. Les orgs deviennent des environnements jetables vers lesquels vous déployez depuis le dépôt, plutôt que des endroits entre lesquels vous copiez des changements. Tout le reste de ce guide découle de cette phrase.
Dans ce modèle, chaque changement arrive d'abord dans le contrôle de version et seulement ensuite dans une org. Le dépôt contient l'état voulu de l'org. Un déploiement est l'acte de rendre une org conforme à cette intention.
Trois propriétés pratiques l'accompagnent :
Le déploiement d'org à org, par change sets ou par comparaison directe de deux orgs, prend une org vivante comme référence. C'est la vraie distinction, et elle a des conséquences.
Notez ce qui n'est pas dans cette liste : la vitesse. Ce modèle n'est pas automatiquement plus rapide. Il est reproductible, ce qui est une propriété différente et plus durable.
Le source tracking est la fonction de la plateforme qui enregistre quels composants ont changé dans une org ou dans votre projet local depuis la dernière synchronisation, afin de ne récupérer que ce qui a réellement bougé au lieu de tout retirer et de lire un diff.
La limite que l'on rencontre est la couverture. Le source tracking est disponible dans les scratch orgs et dans les sandboxes Developer et Developer Pro. Il ne l'est pas partout, donc un modèle piloté par la source doit répondre pour les environnements incapables de suivre les changements : sandboxes full, copies partielles et production. Ce sont exactement les orgs où naissent les changements non documentés.
On commite le source format. Les deux formats décrivent les mêmes métadonnées différemment :
package.xml. Modifier un champ
réécrit un gros fichier, donc le diff embarque tout l'objet et la revue devient
bruyante.
sfdx-project.json.
L'effet porte sur la revue et la fusion, pas sur la fonction. De petits fichiers donnent des diffs lisibles et bien moins de conflits quand deux personnes touchent le même objet, et c'est précisément la situation que ce modèle existe pour survivre.
Le source format ne décompose pas tout pour autant. Les profiles, permission sets et sharing rules atterrissent toujours dans de gros fichiers partagés, donc deux personnes qui modifient le même profile peuvent encore entrer en conflit. Décidez qui possède ces fichiers avant de migrer. Le source tracking ne couvre pas non plus tous les types de métadonnées : consultez le Metadata Coverage Report avant de supposer qu'un type est suivi.
C'est la question que la plupart des explications évitent, et celle qui décide si le modèle survit au contact d'une vraie équipe Salesforce. Quelqu'un modifiera toujours quelque chose en production : un correctif à minuit, un admin qui ajoute une valeur de liste, une mise à jour de package qui réécrit des métadonnées que vous aviez commitées.
Tranchez ces trois points avant la migration, pas après :
La plupart des équipes Salesforce sont des admins et des consultants, pas des utilisateurs de CLI, et c'est là que les migrations calent. Ordonnez les étapes pour que personne n'ait à apprendre Git pour continuer à travailler :
Encore sur les change sets ? Commencez par passer des change sets au contrôle de source, puis automatisez la livraison avec une pipeline CI/CD Salesforce sur GitHub Actions. Ou laissez-nous mener la migration avec vous.
Faut-il que chaque admin apprenne Git ?
Non. Il faut que le dépôt fasse autorité. Qui manipule Git directement est un choix d'outillage, pas une propriété du modèle.
Faut-il convertir toute l'org en source format d'un coup ?
Non. Convertissez par frontière de package ou par équipe. Un dépôt partiel réellement faisant autorité sur son périmètre vaut mieux qu'un dépôt complet auquel personne ne se fie.
Est-ce la même chose que le CI/CD ?
Non. Le modèle piloté par la source décide où vit la vérité. Le CI/CD automatise son transport vers les orgs. Le premier peut exister sans le second, l'inverse n'a guère de sens.
Et les métadonnées non versionnables ?
Certains paramètres et composants appartenant à un package ne font pas l'aller-retour proprement. Documentez-les comme exclus et pilotez-les par procédure au lieu de prétendre que le dépôt les couvre.
Est-ce la même chose que Salesforce DX ?
Non. Salesforce DX est l'outillage et le format de fichiers ; le développement piloté par la source est la pratique qui fait du dépôt, et non de l'org, la source de vérité.
Faut-il des scratch orgs pour adopter ce modèle ?
Non. Les scratch orgs aident, mais les sandboxes avec source tracking le prennent aussi en charge, donc vous pouvez adopter le modèle sans workflow scratch org complet.
Serpent est conçu pour exactement l'équipe décrite ici : le dépôt reste la source de vérité pendant que les admins et consultants travaillent dans des tickets, avec déploiements delta, détection de dérive et retour arrière en un clic par-dessus. D'autres guides de référence sont dans SF Guides.
Sans engagement.