Comme Michael l'a mentionné, proposez une solution standard basée sur des versions / numéros de version, avec une durée de vie raisonnablement longue pour votre industrie (peut-être entrelacée avec une ou plusieurs versions intermédiaires de durée de vie plus courte, si cela est logique pour vos clients typiques).
Donnez à vos clients la possibilité de se lancer dans cette voie de publication standard, peut-être avec une date limite de migration décente en place.
S'ils insistent sur une stratégie d'assistance complète pour les succursales, il suffit de les facturer en conséquence, afin de couvrir correctement tous vos coûts supplémentaires pour offrir une telle assistance entièrement personnalisée - cela n'a de sens que sur le plan commercial. Certains clients migreront pour réduire leurs coûts (ce qui vous aidera à réduire le nombre de succursales personnalisées), d'autres non.
La facturation de l'assistance variable, augmentant progressivement avec l'âge des versions de publication dont les branches personnalisées sont originaires, peut également inciter les clients à migrer plus rapidement vers les nouvelles branches, ce qui permet de fermer plus rapidement les anciennes branches personnalisées. Cela peut aider à réduire le nombre de succursales personnalisées par client - si vous avez des clients qui exécutent simultanément plusieurs versions de votre logiciel.
Assurez-vous que vous ne tombez pas dans le piège de la fusion complète des branches de / vers l'une des branches de publication (standard et personnalisée), toutes les modifications doivent être développées individuellement ou fusionnées.
Étant donné que chacune de ces branches divergera progressivement les unes des autres, le nombre de correctifs nécessitant une personnalisation / un développement individuel augmentera de façon exponentielle (la fusion simple avec un choix de cerises échouera). Vous devez en prendre en compte le coût de développement.
Sans fusion (significative) de branche dans l'image, vous pouvez (et je ne devrais pas insister suffisamment sur son importance) créer des pipelines CI / CD entièrement automatisés pour ces branches, accompagnés d'un bon système de suivi / gestion de correctifs en place, ce qui rend la livraison de correctifs juste de la routine (ou presque).