Comment éviter une situation de branchageddon lorsque vous travaillez avec de grandes organisations?
Nous travaillons avec un certain nombre de grandes organisations financières dont l'approche consiste à ne pas mettre à jour les logiciels, mais uniquement les correctifs de sécurité élevés / critiques et les fonctionnalités sur mesure. Ces organisations prendront uniquement des correctifs et des versions personnalisées entre les mises à jour majeures. Les mises à jour majeures peuvent être espacées de plusieurs années et entraîner des coûts élevés. Cette approche nous amène (la maison du logiciel) à avoir une branche de notre code par client principal, qui supporte tous les coûts et les inefficacités d'une branche à long terme.
Mes questions à la communauté sont:
- Avez-vous rencontré des approches d'acceptation des mises à jour similaires de la part de vos clients?
- Quelles suggestions avez-vous pour aider à travailler avec cette approche?
- Quelles suggestions avez-vous pour aider les organisations à changer les approches de prise de mises à jour logicielles?
Réponses:
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).
la source
Peut-être que si vous mainteniez des succursales par version plutôt que par client, cela pourrait aider à réduire leur nombre?
Sinon, la seule façon de vraiment s'en éloigner est de pouvoir héberger le logiciel vous-même et de passer à un modèle SaaS où vous ne pourrez en conserver qu'une seule version.
la source