web-dev-qa-db-fra.com

Comment empêcher le processus CI / CD d'être suspendu pendant que de grands changements se produisent?

Il s'agit plus d'une procédure et peut-être d'un problème philosophique.

L'équipe de développement dans laquelle je suis est divisée en équipes Scrum ou Squads qui travaillent sur le même produit. Parfois, l'une ou l'autre de ces escouades devrait se lancer dans quelque chose de `` grand '', comme une refonte d'une fonctionnalité ou d'un composant de base, une mise à niveau de la base de données, etc.

L'approche actuelle adoptée par l'équipe consiste à bloquer la version actuelle et à ne fusionner que le travail de cette équipe pour la construction nocturne. D'autres équipes poursuivent toujours leurs objectifs de sprint, mais il leur est interdit de fusionner les billets dans la construction nocturne, empêchant ainsi la qualification des billets. Essentiellement, tous les autres travaux sont bloqués, à l'exception du "grand" changement.

Quelles sont nos options pour gérer ou au moins gérer la situation mais de manière plus efficace? Il convient également de noter que les escouades sont géographiquement distinctes.

6
redflour

C'est exactement le problème que Hewlett Packard a rencontré lors de la refonte de sa solution. Vous pouvez en lire plus dans ce livre ( version courte ).

Fondamentalement, vous devez concevoir votre transition pour permettre à l'ancienne et à la nouvelle version de coexister pendant la transformation. Le problème est que cela complique les choses et demande plus d'efforts. Et si cela nécessite souvent une architecture en place pour permettre une telle transition progressive. Mais c'est plus souvent possible que les développeurs et les architectes ne veulent l'admettre.

Vraiment, prendre de grands changements architecturaux et les transformer en chaîne de petits changements progressifs est au cœur de l'agile, et je dirais de l'ingénierie, des compétences. Vous devez simplement leur rappeler que vous allez bien avec un coût éventuellement accru d'une transition plus douce et plus progressive.

Il est difficile de vous donner une réponse précise, étant donné que les différents changements nécessitent des approches et des solutions différentes pour les rendre plus progressifs. Avoir à la fois l'ancienne et la nouvelle version en même temps est souvent le cas. La compatibilité descendante est également souvent observée dans ces scénarios. Les indicateurs de fonctionnalité sont également une bonne idée.

En relation :

6
Euphoric