Pourquoi le développement s'oppose-t-il aux opérations?

14

Je suis encore étudiant, mais je ne connais pas les opérations et mon anglais est toujours mauvais.

Ma question est: pourquoi le développement s'oppose-t-il aux opérations ? Quand le développement s'oppose-t-il aux opérations?

Heav1est
la source

Réponses:

24

Le but de DevOps est que le développement ne doit pas s'opposer aux opérations, mais plutôt se soutenir mutuellement.

Traditionnellement, en raison des déploiements en cascade et des mises à jour à grande échelle, le développement causait aux opérations une variété de problèmes lors du déploiement en raison de tests inadéquats, de la modification des environnements de serveur, la liste s'allonge encore et encore. Essentiellement, les mises à jour étaient trop importantes pour que l'équipe des opérations puisse les déployer efficacement sans que des problèmes ne surviennent au cours du processus. Ces problèmes pourraient expliquer pourquoi vous pensez que le développement s'oppose aux opérations .

D'un autre côté, DevOps travaille à réduire la taille des mises à jour, à diminuer les environnements rigides et à améliorer généralement le transfert de l'application entre le développement et les opérations en augmentant le nombre de fois où le transfert se produit chaque année. L'augmentation du nombre de déploiements entraîne moins de maux de tête pour les opérations, car ils ont automatisé une grande quantité de travail nécessaire pour mettre à jour les produits ou mieux anticiper et préparer les mises à jour.

Tldr: DevOps vise à annuler la théorie selon laquelle le développement s'oppose aux opérations en créant un état d'esprit où les opérations et le développement travaillent ensemble pour déployer fréquemment des produits de manière opportune et facilement reproductible.

Tortue
la source
"augmenter le nombre de fois où le transfert a lieu chaque année." En fait, dans une organisation DevOps hautement fonctionnelle, ce serait continu. Testé en continu, intégré, livré et déployé en production.
Travis Thompson
2
Je ne pense pas que vous puissiez dire cela sans équivoque. Le déploiement continu ne convient pas à tous les projets, il doit être envisagé au cas par cas.
Adrian
12

Je pense que vous avez déjà reçu des réponses complètes, mais vous avez dit que votre anglais n'est pas excellent, alors je vais essayer de fournir une réponse très brève et compréhensible:

  • L'objectif principal du développement est d'apporter des changements.
  • L'objectif principal des opérations est de maintenir l'environnement stable.

Ces deux choses sont en conflit. Cela dit, le développement et les opérations ne doivent pas s’opposer. Ils devraient travailler ensemble pour s'assurer que les deux objectifs peuvent être atteints. C'est le but de DevOps.

Gabe
la source
11

La tension entre le développement et les opérations est souvent causée par un mauvais alignement des incitations et des tentatives d'optimisation au sein de l'équipe.

Les développeurs sont souvent jugés par la vitesse et la quantité de problèmes qu'ils peuvent résoudre et fusionnés dans le référentiel de code et leur récompense n'est souvent pas liée au fait que le code fonctionne ou fonctionne correctement. Beaucoup moins d'évolutivité, de performances et d'autres facteurs.

Les opérations sont souvent jugées sur la stabilité de l'environnement et la qualité du fonctionnement du code en production, mais rarement sur la qualité du processus permettant d'apporter rapidement des changements.

Cela crée le problème où les développeurs sont incités à créer beaucoup de code et à le jeter par-dessus le mur à l'équipe des opérations et l'équipe des opérations est incitée à accepter le moins de changements possible pour assurer la stabilité de l'environnement.

DevOps est en quelque sorte l'ensemble de solutions à ce problème:

  • Certains d'entre eux peuvent être organisationnels, où les processus et les incitations des équipes peuvent changer. Par exemple, si le travail des développeurs est uniquement marqué comme terminé lorsqu'il est en cours de production depuis un certain temps, il n'y a eu aucun problème et l'équipe d'exploitation accepte de s'approprier le code. De même, les opérations peuvent être jugées davantage sur la vitesse à laquelle le code est accepté, tandis que l'environnement est encore dans certaines limites de stabilité.
  • Une autre partie de la solution peut être dans la communication et la cross-polination, où vous intégrez des personnes opérationnelles dans l'équipe de développement et vice versa. Vous brisez le mur entre ces équipes et les ingénieurs DevOps sont souvent le résultat de ce type de pontage.
  • Les outils prenant en charge des processus tels que l'intégration continue et le déploiement continu sont un autre élément de la solution, qui peut augmenter la vitesse des changements, tout en conservant une haute qualité et une récupération rapide de l'environnement de production en cas de problème par le biais de la restauration du code ou de la progression rapide d'un correctif. en production.
Jiri Klouda
la source
7

La plupart des organisations gèrent la complexité en décomposant leur organisation en parties fonctionnelles et en exigeant que chaque partie comprenne comment s'améliorer. C'est ce qu'on appelle souvent l'approche du «silo».

Il est important de comprendre pourquoi cette approche en silo bloque le succès de l'entreprise et échoue souvent à améliorer l'organisation dans son ensemble. Et cela n'affecte pas uniquement le développement et les opérations - il affecte tous les autres silos fonctionnels au sein d'une grande organisation tels que l'équipe d'assurance qualité, les finances, la gestion des produits et des projets.

Comme les gestionnaires de chaque silo fonctionnel doivent s'améliorer en réduisant les coûts ou en augmentant la vitesse, leur réaction est souvent:

  • Je suis totalement submergé par la résolution des problèmes du dernier effort d'amélioration. Laisse-moi tranquille.
  • Que voulez-vous que je fasse, remplisse mes responsabilités ou travaille sur des projets d'amélioration? Je n'ai pas le temps de faire les deux.
  • Pas encore! Voici un autre programme du mois.

Avec ces réactions typiques, tout cadre qui lance un effort d'amélioration mineur est rarement accueilli avec enthousiasme. Les gestionnaires se retrouvent en concurrence féroce avec d'autres domaines fonctionnels sur les ressources nécessaires pour exécuter leurs améliorations. Donc, pas étonnant que la commande pour améliorer intensifie les batailles interfonctionnelles!

Même lorsqu'un manager achève sa partie d'un projet d'amélioration, il rencontre alors d'autres domaines fonctionnels et d'autres organisations (fournisseurs, entrepreneurs, etc ...) qui n'ont pas fait leur travail. Cela diminue ou annule totalement les résultats.

Cette tension interfonctionnelle ne se limite pas aux efforts d'amélioration. Elle est au cœur même de la prise de décision quotidienne et du jugement sur l'efficacité de la gestion dans une organisation. Voici un exemple concret:

Un directeur financier a été invité à "s'améliorer". Il a décidé de bloquer l'embauche d'entrepreneurs qui coûtaient plus cher que le prix nominal accepté sur le marché. Il a mis en œuvre la nouvelle politique et a déclaré avoir économisé 1 million de dollars cette année. Les développeurs et les services informatiques ne pouvant pas embaucher des sous-traitants pour les aider à utiliser les conteneurs et l'orchestration de conteneurs, car ces sous-traitants sont chers. Le directeur des opérations informatiques de la même entreprise a calculé que le fait de ne pas améliorer son infrastructure coûtait à l'entreprise bien plus de 100 000 $ de dépenses supplémentaires chaque mois. À ce rythme, les économies annuelles liées à l'embauche d'entrepreneurs ont été rongées avant la fin de l'année.

Vous pouvez imaginer que la relation entre ces deux domaines fonctionnels n'était pas exactement lovey-dovey.

Ces conflits interfonctionnels sont motivés par l'approche en silo, où l'organisation mesure chaque silo en amélioration de manière indépendante. Si vous êtes un centre de coûts, l'amélioration signifie naturellement une plus grande efficacité ou une réduction des coûts au sein de votre silo.

Dans ce cadre de référence, les coûts sont considérés comme obéissant à la règle "additive". Les coûts de chaque silo additionnés sont égaux au coût total de l'organisation. Par conséquent, les gestionnaires considèrent que toute réduction des coûts dans leur domaine est «bonne», car ils voient une traduction directe en économies pour l'entreprise dans son ensemble. Dans ce cadre de référence, les efforts d'amélioration sont répartis partout pour attaquer les coûts et les gaspillages dans toute l'organisation.

Un excellent exemple lorsque les équipes de développement commencent à travailler Agile et à pousser le code vers le contrôle qualité et les opérations toutes les deux semaines au lieu de chaque trimestre comme elles le faisaient auparavant. Le contrôle qualité et les opérations ne sont pas prêts pour un tel changement et sont blâmés pour avoir ralenti. Encore une fois, cela ne contribue pas beaucoup à l'amour entre les gens dans le développement et les opérations.

Evgeny
la source