Les méthodologies agiles fêtent leurs 20 ans. Elles atteignent l’âge adulte alors que leur petit frère, le DevOps, né vers 2007, attaque sa crise d’adolescence.

Au moment de souffler les bougies, où en sommes-nous ?

En deux décennies, on est passé d’un focus purement développement informatique, essentiellement destiné à supprimer « l’effet tunnel » du cycle en V, à une logique bien plus large d’optimisation des opérations et de conduite de projet.

 

« Used » cases

Dans un premier temps, les intervenants ont privilégié l’aspect technique des pratiques agiles, en particulier avec la mise en place des développements en cascade et des « sprints » cycliques. Mais rapidement, les équipes fonctionnelles et marketing ont surfé sur la vague en mettant en avant l’implication des utilisateurs. Ainsi naquit le règne du « Use Case » et du « Product Owner ». Mais si ces concepts sont toujours d’actualité, les évolutions plus récentes ont plus concerné la méthodologie de projet au sens large.

L’agile a dans un premier temps élargi son influence à l’ensemble du pilotage de projet d’ingénierie, devenant une part entière du métier de PMO. Le principe des livraisons rapides, rapprochées, et appelant une réaction des donneurs d’ordres et utilisateurs à des fins d’amélioration continue s’est étendu à un périmètre produit dépassant largement le cas des livrables informatiques.

Plus récemment, l’Agile a percé les frontières du projet pour s’attaquer à l’outil de production dans son ensemble, puis à l’entreprise toute entière.

Être « Agile » consiste désormais à optimiser en continu l’efficacité de l’ensemble des processus de conception, développement, tests et livraisons. Il s’agit en particulier de démarrer le processus de validation technique et d’acceptance par les utilisateurs dès le début du cycle de développement. Ceci dans le but de détecter les complexités, défauts ou modifications des attentes des utilisateurs au plus tôt.

On est donc passé du « Use Case » au « Used Case », chaque cycle pouvant tout autant changer le produit que le cahier des charges, garantissant par la même occasion que ce qui sera livré sera à jour.

DevOps

Durant les périodes de croissance économique de la dernière décennie, l’attente principale des entreprises en matière de développement informatique est passée de la réduction des coûts à l’optimisation du « Time to Market ». Il convient de regagner rapidement les parts de marché et cela nécessite des pipelines de livraison à gros débit. Cela implique une collaboration continue entre les développeurs, les testeurs, les équipes de surveillance de la production et de support d’infrastructure. Dans le monde du développement informatique, ceci est à la base des process, outils et infrastructures DevOps.

La logique de « software factory » pousse désormais les équipes à mettre en œuvre des pipelines d’intégration et de livraisons continues et transparentes (CI/CD) et les outils associés. Cette automatisation du workflow permet non seulement d’améliorer la qualité du produit et sa vitesse de production, mais aussi le monitoring temps réel de ceux-ci.

D’une certaine manière, le DevOps permet ainsi son propre contrôle.

IA et Machine Learning

L’Intelligence Artificielle et le Machine Learning s’intègrent progressivement dans les processus de développement et de test. L’IA peut détecter, apprendre et suggérer différents styles de codage et composants réutilisables, permettant aux développeurs de coder plus rapidement. Une fois le code développé, l’IA peut l’analyser et proposer des optimisations, telles que la refactorisation, la suppression de certaines vulnérabilités ou le respect des normes de codage ou de qualité.

Pour la qualification et la validation, des outils robotisés compatibles avec l’IA/ML permettent ainsi de concevoir, coder et exécuter des tests automatisés. Certains mécanismes « d’autoguérison » peuvent même détecter et résoudre de manière proactive les problèmes avant même qu’ils ne surviennent. Le cercle vertueux sous-jacent étant que, plus les outils d’IA sont appelés à tester le code, plus ils apprennent et deviennent à même de créer des tests stables et de les maintenir.

Mais surtout, les outils d’Intelligence Artificielle sont capables d’analyser très rapidement de larges volumes de données au sein des pipelines de développement DevOps, et d’en faire une synthèse digeste, qui propose aux parties prenantes des décisions éclairées. Cette simplification dans la perception de l’ensemble des données projets rend les processus plus rapides, légers et intelligents. Là aussi, le cercle est vertueux : plus le pipeline est simplifié, plus il devient aisé de l’analyser et donc de le simplifier et de l’accélérer davantage.

Que reste-t-il du Scrum et de l’XP ?

Depuis 2001, les pratiques agiles ont donc bien grandi. Et les bénéfices attendus ont été au rendez-vous. Mais cette maturité, la confiance donnée aux outils intelligents et la force de l’habitude dans nos « sprints », « stand up meetings » et développements, ne doivent pas nous faire oublier les principaux défis de l’agilité qui restent d’actualité :

  • Les équipes doivent être organisées autour d’un produit et non d’un projet.
  • L’industrialisation de l’agilité, surtout concernant des produits, systèmes et organisations complexes, ne doit pas imposer ses processus aux équipes.
  • Et rien ne remplacera jamais l’excellence technique.