Close

Vélocité négative : comment relever la limite de complexité


L'un des objectifs les plus courants au sein des organisations d'ingénierie est de livrer rapidement des logiciels de haute qualité.

Il suffit d'observer l'énoncé de mission du CIO ou du CTO de votre entreprise. Il y a de fortes chances qu'il cherche à atteindre cet objectif. Cependant, même s'il s'agit d'un objectif commun, certaines entreprises arrivent à atteindre cet objectif quand d'autres sont bloquées dans le purgatoire de la livraison de logiciels. Certaines équipes mettent régulièrement du nouveau code en production avec peu d'incidents ou d'impact négatif sur les clients, tandis que d'autres connaissent des difficultés pour publier des versions trimestrielles.

L'un des objectifs les plus courants au sein des organisations d'ingénierie est de livrer rapidement des logiciels de haute qualité.

Il suffit d'observer l'énoncé de mission du CIO ou du CTO de votre entreprise. Il y a de fortes chances qu'il cherche à atteindre cet objectif. Cependant, même s'il s'agit d'un objectif commun, certaines entreprises arrivent à atteindre cet objectif quand d'autres sont bloquées dans le purgatoire de la livraison de logiciels. Certaines équipes mettent régulièrement du nouveau code en production avec peu d'incidents ou d'impact négatif sur les clients, tandis que d'autres connaissent des difficultés pour publier des versions trimestrielles.

Qu'est-ce qui provoque ces divergences de performances ?


La complexité de la livraison de logiciels fait la différence entre la livraison rapide de logiciels de haute qualité… ou tout le contraire. C'est la différence entre la danse de la joie hebdomadaire à chaque livraison réussie et une équipe de livraison de logiciels désengagée, frustrée par le fait que des mois de travail sur la dernière version se soldent par six nouveaux bugs et une restauration.

Comparez la vitesse et la qualité des livraisons de produits et de fonctionnalités des start-ups à celles d'une grande organisation établie. Par exemple, dans le secteur financier, les start-ups spécialistes des technologies financières ont réduit la part de marché des grandes banques traditionnelles au cours des dix dernières années. Les grandes banques invoquent souvent les avantages injustes des start-ups spécialistes des technologies financières. En effet, ces dernières opèrent dans un environnement soumis à une moindre surveillance réglementaire et n'ont aucun parc applicatif monolithique hérité à gérer. Des équipes plus petites sont synonymes d'agilité accrue. De plus, elles peuvent évoluer en fonction des besoins des clients. Fondamentalement, les entreprises spécialistes des technologies financières ne sont pas aussi complexes que les banques traditionnelles. Elles peuvent ainsi agir plus rapidement et avec moins de risques. Bien qu'elle puisse ralentir les équipes de développement, la complexité n'est pas toujours mauvaise.

Réseau mondial
Ressource connexe

Contrôlez la multiplication des logiciels

Icône de trois cercles
DÉCOUVRIR LA SOLUTION

Gérez vos composants grâce à Compass

Complexité dans le domaine de la livraison de logiciels


La complexité peut être une bonne chose : la résolution de problèmes complexes est très gratifiante. Cela motive les équipes à relever le défi, à résoudre des problèmes complexes et à chambouler un secteur. À l'inverse, il y a un moment où la complexité ne permet plus de résoudre un problème difficile et a des répercussions négatives sur les équipes de développement.

La complexité organisationnelle joue un rôle clé dans la réduction de l'efficacité des équipes de développement. Le dictionnaire Collins définit la complexité comme « le fait d'avoir de nombreuses parties différentes connectées ou reliées les unes aux autres de manière compliquée ». Concrètement, la complexité organisationnelle est l'ensemble des informations, des dépendances, des changements, des autres équipes, des outils et des demandes, que les équipes de développement doivent gérer lorsqu'elles interagissent avec le reste de l'organisation.

Plus la complexité organisationnelle est élevée, plus il est difficile de livrer rapidement des logiciels de haute qualité, car les équipes passent plus de temps à naviguer dans l'organisation qu'à résoudre des problèmes complexes. Les organisations en plein essor se rendent rapidement compte que les équipes de développement atteignent une limite de complexité. Cette limite correspond au niveau de complexité que les équipes peuvent gérer avant que cela n'ait un impact sur la satisfaction professionnelle et sur la qualité et la vitesse de développement des logiciels. Il peut donc sembler logique que la réduction de la complexité organisationnelle permette aux équipes de se concentrer sur la résolution des problèmes complexes, en livrant des logiciels plus rapidement et de façon plus qualitative. Voyons pourquoi ce n'est pas nécessairement le cas.

Comment savoir si vous approchez de la limite de complexité ?


Atteindre la limite de complexité peut sembler inévitable, mais certains signes indiquent que les équipes s'en approchent. Tout d'abord, il convient de préciser qu'il n'y a aucune métrique absolue permettant de savoir à quel point vous êtes proche de la limite de complexité, mais les indicateurs suivants peuvent vous donner une idée.

L'indicateur le plus clair qu'une équipe a atteint la limite de complexité ? Elle passe plus de temps à gérer la complexité organisationnelle qu'à résoudre les problèmes complexes sur lesquels elle devrait se concentrer. L'analyse des métriques DORA du délai d'exécution des changements (vitesse) et du taux d'échec des changements (qualité) montre si les équipes ralentissent ou accélèrent au fil du temps. Même si d'autres facteurs influencent ces métriques, elles constituent un bon indicateur de l'efficacité de l'équipe.

La satisfaction des développeurs est un autre indicateur de la complexité organisationnelle à laquelle les équipes de développement sont confrontées. Plus que tout autre profil, les personnes qui occupent des rôles de développeurs aiment passer leur temps à résoudre des problèmes complexes, et détestent les tâches inutiles qui se présentent. Le faible niveau de satisfaction des développeurs indique clairement que la complexité organisationnelle pose problème à votre équipe de développement.

Best for managing microservices: Compass

Compass hero screen.

Compass is an ideal server management tool. It simplifies handling microservices architectures by putting disconnected data about engineering work and teamwork together in one central, searchable location. 

Compass' features include: 

  • Get full visibility into service details with relevant APIs, libraries, documentation, key health metrics, latest deployment activities, on-call schedules, and more.
  • Document and track upstream and downstream dependencies and understand performance impact across teams and services.
  • View all incidents, deployments, and other critical activities for a service and its dependencies in one place.

Best for CI/CD: Bitbucket Pipelines

Bitbucket pipeline screenshot.

CI/CD is an acronym for continuous integration and continuous deployment

Bitbucket Pipelines is a CI tool that automates processes. It works right out of the box with Bitbucket, an Atlassian cloud-based version control system. It can use code to manage pipelines, letting users commit pipeline definitions and start builds fast. Bitbucket Pipelines also has CD features that allow you to deploy projects to live infrastructure.

Part of the CI/CD development process is to build microservices. Bitbucket Pipelines fosters efficiency by simplifying workflows and integrating with Bitbucket's cloud version control system.

Best for ITSM: Jira Service Management

Jira Service Management is an add-on for Jira Software, a microservices-based application that lets you control IT services, such as incident, problem, and change management. Jira Service Management’s ITSM features allow IT teams to provide excellent service. There are several reasons why that is the case: 

  • Flexibility: JSM's collaborative approach can help streamline service delivery processes.
  • Automation: The automation suite can help automate recurring tasks.
  • Integration: JSM integrates seamlessly with other Atlassian tools.
  • Security: It encrypts all data in transit using TLS 1.2+.
  • Scalability: JSM is an agile ITSM product that can scale up to the enterprise level.

Best for documentation: Confluence

Confluence is a collaborative documentation tool. It’s ideal for creating and sharing documentation, critical in microservices architectures. Confluence offers a wide range of Confluence templates for various setups, including those using Kubernetes and Docker, a microservices tool that helps developers build, deploy, and run containers. 

Confluence templates include multiple features and apps to help you capture, distribute, and update your technical documentation. Also, with Confluence, you can centralize all your documentation in one place and grant access to users only to what they need.

Best for bug tracking: Jira Software

JSW issues screenshot.

Jira Software excels at bug tracking and project management. It provides a platform to track, prioritize, and resolve bugs effectively through an easily navigable interface. Jira Software's bug-tracking features contribute significantly to successful microservices management. They also address the potential for software sprawl.

With Jira Service Management, Jira's capabilities extend to streamline IT service management, including incident, problem, and change management within microservices and monolithic architecture.

Best for monitoring and logging: Prometheus

Prometheus is an open-source tool developers use to manage microservices. It collects extensive metrics, including counters, gauges, histograms, and summaries, that comprehensively view the application's performance. Prometheus also assists in real-time troubleshooting by providing a comprehensive monitoring and alerting system that enables developers and IT teams to identify and resolve issues promptly.

Best for testing microservices APIs: Postman

The distributed nature of microservices architectures significantly hamper traditional testing methodologies. Testing the entire system becomes complex and time-consuming because each microservice is an independent component. This is where a specific microservices testing tool like Postman comes in handy.

Postman simplifies the process of testing microservices APIs. Developers love that it can automate testing, enabling faster and more accurate results.

Some of the ways Postman simplifies the process of testing microservices APIs include: 

  • Visual request builder: Postman's visual request builder makes it easy to construct HTTP requests without writing code. 
  • Request collections: Postman allows you to organize your API requests into collections, making it easy to group related requests and share them with other team members.
  • Predefined tests: Postman provides a library of predefined tests that you can use to validate the responses from your API requests. 
  • Test scripts: Postman allows you to write test scripts using JavaScript, giving you more control over your tests and enabling you to automate complex testing scenarios.

Comment savoir si vous approchez de la limite de complexité ?


Atteindre la limite de complexité peut sembler inévitable, mais certains signes indiquent que les équipes s'en approchent. Tout d'abord, il convient de préciser qu'il n'y a aucune métrique absolue permettant de savoir à quel point vous êtes proche de la limite de complexité, mais les indicateurs suivants peuvent vous donner une idée.

L'indicateur le plus clair qu'une équipe a atteint la limite de complexité ? Elle passe plus de temps à gérer la complexité organisationnelle qu'à résoudre les problèmes complexes sur lesquels elle devrait se concentrer. L'analyse des métriques DORA du délai d'exécution des changements (vitesse) et du taux d'échec des changements (qualité) montre si les équipes ralentissent ou accélèrent au fil du temps. Même si d'autres facteurs influencent ces métriques, elles constituent un bon indicateur de l'efficacité de l'équipe.

La satisfaction des développeurs est un autre indicateur de la complexité organisationnelle à laquelle les équipes de développement sont confrontées. Plus que tout autre profil, les personnes qui occupent des rôles de développeurs aiment passer leur temps à résoudre des problèmes complexes, et détestent les tâches inutiles qui se présentent. Le faible niveau de satisfaction des développeurs indique clairement que la complexité organisationnelle pose problème à votre équipe de développement.

Relever la limite de complexité


Why is monitoring and testing important in microservices architecture?

Pour retrouver l'efficacité de l'équipe de développement, les entreprises doivent relever la limite de complexité. Cette action implique essentiellement d'augmenter le degré de complexité organisationnelle que chaque équipe peut gérer avant que cela n'ait un impact sur la satisfaction au travail, ainsi que sur la qualité et la vitesse avec lesquelles l'équipe livre des logiciels.

L'ingénierie de plateforme est un concept important qui vise à relever la limite de complexité au sein d'une organisation. Des équipes d'ingénierie de plateforme solides se concentrent sur la réduction de la charge cognitive des équipes de développement, en faisant abstraction de la complexité de l'organisation dans leur travail quotidien. Lorsqu'elle est correctement implémentée, ce type d'ingénierie permet aux équipes de rééquilibrer l'essentiel de leurs efforts en faveur de la résolution des problèmes les plus complexes, tout en consacrant moins de temps à la complexité organisationnelle.

What are some common challenges in monitoring microservices?

C'est pourquoi Atlassian a créé Compass, une plateforme dédiée à l'expérience des développeurs. Compass contribue à relever la limite de complexité en permettant aux équipes de développement de parcourir facilement la complexité organisationnelle grâce au catalogue de composants, aux métriques et aux cartes de performances, et de se concentrer sur la création d'une culture d'ingénierie saine. Ici, le point à retenir est que la complexité organisationnelle n'a pas diminué au sein d'Atlassian. En réalité, elle a continué à croître à mesure qu'une part de plus en plus importante de l'organisation migrait vers une architecture de microservices. Nous avons réduit le temps passé par les équipes de développement à gérer cette complexité. C'est ce qui fait la différence entre un projet de simplification et le fait de relever la limite de complexité.

Atlassian compte plus de 10 000 employés et plus de 17 000 composants logiciels. Pourtant, nos équipes de développement fonctionnent en grande partie avec une liberté digne de celle d'une start-up, en livrant des logiciels de haute qualité. La clé de notre réussite ? Relever la limite de complexité pour améliorer l'efficacité de l'équipe de développement.

Voici deux actions pour commencer à relever votre limite de complexité :

  • Suivre et évaluer vos métriques DORA. Comment se portent les métriques DORA pour votre équipe ? Si vous ne les suivez pas déjà, les métriques DORA sont intégrées de série à Compass.
  • Comprendre et évaluer la satisfaction des développeurs. Comment se sentent les développeurs au sein de vos équipes de développement ? La plupart des organisations mènent des enquêtes de satisfaction auprès de leurs employés. Demandez les résultats, répartis par domaine fonctionnel, pour obtenir des informations sur la satisfaction des développeurs. Les questions clés comprennent l'évaluation des affirmations suivantes :
    • Je suis fier de mes livraisons
    • Le niveau de stress lié à mon travail est gérable
    • Je comprends en quoi mon travail contribue aux objectifs de l'entreprise

Par ailleurs, Compass recueille ces informations lors du rituel CheckOps, au cours duquel les équipes partagent leurs impressions sur la semaine écoulée, ainsi que des informations sur ce qui aurait pu être amélioré.

Pour relever la limite de complexité, il faut combiner des outils, des processus et des rituels. Une plateforme dédiée à l'expérience des développeurs telle que Compass peut vous aider à comprendre l'intégrité du système, à cartographier les dépendances et à créer des rituels continus. Cela contribue à relever la limite de complexité et à libérer le potentiel des équipes de livraison de logiciels au sein de votre organisation.

Essayez Compass gratuitement sans plus attendre.

What are some best practices for monitoring and testing microservices?

To test and monitor microservices effectively, use monitoring data, set the proper alert levels, automate tests, set up continuous integration and delivery pipelines, and regularly test their performance and security. These methods ensure that your platforms work reliably. 

Join the Atlassian Community for more Microservices articles and discussions.


Partager cet article
Thème suivant

Lectures recommandées

Ajoutez ces ressources à vos favoris pour en savoir plus sur les types d'équipes DevOps, ou pour les mises à jour continues de DevOps chez Atlassian.

Illustration DevOps

Communauté Compass

Illustration d'une équipe surmontant des obstacles

Tutoriel : Créer un composant

Illustration d'une carte

Lancez-vous gratuitement avec Compass

Inscrivez-vous à notre newsletter DevOps

Thank you for signing up