DevOps : comment apporter une réelle valeur aux clients

DéveloppeursProjets

La pratique DevOps permet d’accélérer et d’optimiser le développement et le déploiement des logiciels à l’aide de processus automatisés tels que le déploiement continu.

L’époque à laquelle les équipes travaillaient sur un projet pendant des mois (voire des années) avant de l’envoyer en production est révolue. Aujourd’hui, en raison des attentes clients de plus en plus exigeantes et de l’intensité de la concurrence, même les cycles de deux semaines sont devenus trop longs. 

Les entreprises souhaitent pouvoir envoyer en production leurs nouvelles fonctionnalités aussi vite que possible, à raison d’un envoi par semaine, par jour ou même par heure. Ce processus accéléré leur permet de s’adapter aux évolutions du marché et aux avancées technologiques. Il permet également de garder un rythme similaire à celui des autres acteurs du marché.

Mais le principal avantage réside dans la valeur ajoutée continue que les entreprises peuvent apporter à leurs clients, par l’optimisation de leur vitesse et leur fiabilité. Mais comment les entreprises peuvent-elles y parvenir ? Grâce à DevOps.

La pratique DevOps permet aux organisations d’accélérer et d’optimiser le développement et le déploiement des logiciels à l’aide de processus automatisés tels que le déploiement continu. Elle rassemble ainsi les développeurs, le personnel opérationnel et les autres parties prenantes de la chaîne de valeur du déploiement des logiciels.

DevOps permet de gagner du temps en accélérant le déploiement et en éliminant les temps morts

Quelles phases du cycle de développement d’un logiciel sont les plus chronophages ? Aussi surprenante soit-elle, la réponse est : aucune. Le temps perdu n’est pas à attribuer à une phase en particulier, mais aux temps morts entre chaque étape. Ainsi, les développeurs attendent que les analystes commerciaux leur fournissent les exigences. Les testeurs attendent que les développeurs terminent le code, et ces derniers attendent le retour des testeurs sur son fonctionnement.

Ensuite, les développeurs et les testeurs attendent que les administrateurs système déploient les nouvelles versions dans différents environnements. Enfin, ces administrateurs attendent que toutes les parties prenantes leur donnent la raison de l’échec des déploiements.

Voici la triste vérité : de nombreuses entreprises déploient des efforts importants pour réaliser des tâches sans valeur. L’attente ne génère aucune valeur. Pourtant, il n’est pas rare que les processus mis en place par les organisations intègrent ce temps d’attente. Refaire sans cesse les mêmes tests manuels n’apporte aucune valeur. Il s’agit pourtant d’une pratique répandue.

Enfin, le fait de déléguer le déploiement à un autre service alors que l’équipe en charge de l’application peut s’en charger en exécutant une simple commande n’apporte aucune valeur. Et pourtant, le déploiement est souvent géré par plusieurs services distincts.

DevOps facilite la collaboration entre les équipes

Qui est responsable d’un produit ? En général, la réponse est « personne en particulier ». Chacun est responsable d’une phase ou d’un aspect spécifique de son cycle de développement. Toutefois, personne n’est responsable du produit de A à Z. Pour compliquer encore davantage le processus, les collaborateurs se concentrent souvent uniquement sur le rôle qui leur a été assigné.

Les développeurs ne pensent pas toujours à la façon dont leur travail influe sur les phases de test et de déploiement, dans la mesure où ces dernières ne sont pas sous leur responsabilité. Ils ne savent probablement même pas comment leurs applications sont testées ou déployées. Le même constat peut être fait pour tous les services.

Les administrateurs système n’imaginent probablement pas le temps nécessaire pour créer des tickets Jira dans le cadre d’un déploiement. Aucune équipe ne pense au cycle complet de l’application, car les responsabilités sont réparties de manière indépendante. La communication entre les équipes est limitée, celles-ci ne comprenant pas dans quelle mesure leurs actions influent les unes sur les autres.

DevOps aide à créer un lien entre ces équipes en développant un sentiment d’empathie entre toutes les parties prenantes du cycle de vie d’une application. Cette pratique a pour but de regrouper tous les acteurs d’un projet dans une équipe unique sous la direction d’un seul responsable de produit.

DevOps permet de décloisonner les activités, car les équipes sont désormais autonomes et pleinement responsables de tout ce qui est en lien avec leur application, de bout en bout. Elles sont en charge des exigences, du développement, des tests, du déploiement et de la production, et même des tâches en lien avec la surveillance et l’avertissement en cas d’incident. Elles ont un contrôle total sur le cycle de vie de leur application. Par conséquent, le transfert de tâches à d’autres équipes ou services devient inutile. Ainsi, il n’y a pas besoin de passer par d’inefficaces tickets Jira, emails ou autres contraintes administratives.

DevOps est une question d’évolution culturelle qui vise à créer des équipes autonomes en charge de l’ensemble du cycle de vie d’une ou de plusieurs applications. Ainsi, la création de « services DevOps » et le recrutement d’« ingénieurs DevOps » vont totalement à l’encontre de ce que ce concept tente d’accomplir. DevOps ne cherche pas à créer plus de silos ni à renommer les services existants. Il cherche plutôt à faire collaborer les équipes dans le but d’atteindre un objectif commun : le déploiement de nouvelles fonctionnalités à la production.

Lorsque l’équipe travaille de manière soudée, concentrée sur un seul produit, la communication est améliorée, les frais administratifs diminuent et les responsabilités sont claires. Le fait de travailler ensemble et de comprendre la manière dont les actions d’un service influent sur les autres crée de l’empathie. Résultat : la productivité et la qualité augmentent, alors que les coûts et les délais de mise sur le marché diminuent.

L’élimination des temps morts et l’automatisation des processus répétitifs font immanquablement gagner du temps aux équipes. Grâce à cela et à l’amélioration de la collaboration entre les différents acteurs du cycle de vie d’une application, les équipes peuvent se consacrer à des tâches à plus forte valeur ajoutée en dédiant leurs efforts et leur temps à la résolution des problèmes et à l’innovation.

Pour que cette dernière soit optimale, l’ensemble des acteurs de l’entreprise doit être impliqué. L’entreprise sera alors à même d’évoluer en ne se contentant plus de rattraper ses concurrents, mais en relevant les défis d’aujourd’hui et de demain.

Auteur
En savoir plus 
Developer Advocate
CloudBees
Viktor Farcic est Developer Advocate chez CloudBees
En savoir plus 

Livres blancs A la Une