Gérer les conflits entre développeurs et opérationnelles

Share

Conflits_dev_ops

Les entreprises traditionnelles divisent leurs équipes par type de travail. Par cette organisation, les équipes sont isolées l’une de l’autre. Certains départements s’occupent spécifiquement de la programmation. Plusieurs compagnies ont un département dédié au test des applications. En effet, selon eux, déployer un logiciel vers la production et l’entretenir demandent d’autres compétences que la programmation. Un département opérationnel a vu le jour. Chaque département est conduit par un manager spécialisé dans le domaine. Fractionner les différentes branches de telle manière semble contribuer à une bonne gestion, pourtant cela va générer des conflits.

Conflits au cours du déploiement

Chaque département définit ses objectifs en fonction de la répartition du travail. Le département de développement peut être mesuré par sa vitesse dans l’implémentation de nouvelles fonctions, alors que le département opérationnel peut être jugé par la durée de disponibilité du serveur et le temps de réponse de l’application.

Conflits après le déploiement

Parfois, le travail des équipes opérationnelles est considéré comme réussi lorsque les paramètres sont stables et immuables. De l’autre côté, le développement est considéré productif lorsque l’équipe a opéré plusieurs changements. Cet engrenage rend la collaboration entre les deux groupes peu probable car il crée des conflits sur les motivations, le processus et les outils.

 Les conflits sur la performance

Les équipes de développement et opérationnelles ont chacune leur point de vue sur ce qu’est la performance :

  • Les développeurs misent sur le besoin de changement: nouvelles fonctionnalités, corrections des bugs par exemple. L’équipe se base sur les demandes de changement. Ils s’attendent à ce que leur travail soit déployé sur l’application en production.
  • Les opérationnels ont peur du changement. Une fois le logiciel livré, l’équipe opérationnelle veut éviter que des changements se fassent sur le logiciel. Ce qui assurerait la stabilité des conditions des systèmes en production.

Le conflit entre les deux groupent ne peut être résolu que lorsque leurs objectifs respectifs soient alignés. Autrement les deux entités sont confinées comme dans des silos séparés :

 conflits_devops

Les opérations comme goulot d’étranglement

Optimisation horizontale

L’approche d’optimisation horizontale implique la limitation du nombre de composants utilisable dans une infrastructure. Ce qui réduit la configuration d’options au moment de choisir l’architecture adéquate. Dans cette configuration, les opérations ont la plus grande priorité. De ce fait, il est possible de trouver et d’appliquer des synergies entre les éléments en équilibrant les charges par des techniques, en réduisant le nombre des différentes topologies du système ou en gardant que les compétences nécessaires de l’équipe. L’approche d’optimisation horizontale se concentre sur l’utilisation des composants de l’architecture. L’équipe opérationnelle préfère ce procédé. En effet, de cette manière, le département opérationnel peut optimiser son utilisation des composants d’une infrastructure tout en gérant ses services. Dans les entreprises, les opérations font souvent partie du service de gestion informatique.

Les opérations et l’ITSM (IT System Management)

Les opérations peuvent être intégrées dans le service de gestion informatique (en anglais « IT service management » ou ITSM). Par ITSM, on entend la gestion de l’organisation des processus et la livraison aux utilisateurs des services informatiques. Pour la plupart des entreprises, la vision de l’ITSM commence et s’arrête à la réception du service. Cependant, il englobe en effet, beaucoup plus que les services aux entreprises. Plus que de soutenir un service sur l’ensemble des opérations et des unités d’une entreprise, l’ITSM nécessite une plus grande collaboration dans la fourniture des ressources. Même si les opérations et les entreprises s’alignent dans certains cas, cette association est conduite par la gestion du service et par la gestion de l’optimisation de l’infrastructure. Avec DevOps, les approches d’Agile sont appliquées aux opérations en plus du développement.

 DevOps à la rescousse

Au cours des dernières années, beaucoup de personnes ont travaillé à appliquer les approches d’Agile aux opérations. Ce procédé visait à éliminer le mur entre le développement et les opérations et à résoudre le conflit structurel entre les deux départements.  Grâce au partage des expériences et des solutions possibles, le mouvement DevOps a vu le jour. Les processus par lesquels a été formé le mouvement et par lesquels les solutions ont été fournies et discutées, sont identiques au début du mouvement Agile. Dans une autre perspective, DevOps vise à étendre Agile aux opérations.

DevOps une approche d’équipe

La comparaison des tâches et des points de vue de l’équipe développement et de l’équipe opérationnelle montre que les deux parties ont chacune différents objectifs. Ce qui conduit au conflit. L’équipe du développement recherche le changement (par exemple, nouvelles fonctionnalités, correction de bugs), alors que l’équipe opérationnelle aspire à la stabilité. Souvent, ces deux groupes sont précisément payés pour effectuer ces tâches :

  • L’équipe de développement obtient des bonus si le logiciel est livré,
  • L’équipe opérationnelle est récompensée si les systèmes en production sont stables.

De ce fait, le département de développement désire fournir plus de nouvelles fonctionnalités et l’équipe opérationnelle préfère éviter de mettre toute nouvelle version en production. Chaque équipe poursuit leurs buts respectifs en se focalisant sur leur tâche individuelle et en accomplissant leur obligation pour obtenir une attention positive de la part de la direction. Pour atteindre leurs objectifs respectifs, le développement et les opérations utilisent souvent leurs propres processus et outils. Chaque groupe cherche à optimiser ses processus et ses outils. Pour un meilleur résultat local. Bien que ces approches semblent correctes de chaque point de vue,  le flux total du logiciel est réduit et l’objectif du projet (ou de l’entreprise) est contrecarré.

Avec l’approche DevOps, le rôle du développeur est composé de programmeurs, de testeurs, d’agents assurant la qualité et des experts des opérations. Ensemble, ils développent un logiciel et aident à le livrer à l’utilisateur.

Save

Save

Save

Save

Save

Save

Save

Save

Posted in Agilité d'entreprise and tagged , , , .

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *