CRÉER DE LA VALEUR POUR L’ENTREPRISE
La méthodologie agile peut peut-être se résumer à 2 mots ‘interaction’ et ‘itération’ : avoir une interaction avec le métier et prendre les bonnes décisions, avoir toutes les compétences dans l’équipe, réaliser un produit conforme aux attentes et le tester régulièrement, le montrer aux parties prenantes et réajuster au fur et à mesure.
La qualité est une des composantes centrales de la méthodologie agile dont les bénéfices sont indéniables et incontestés.
Sans changer les règles de développement et donc sans pénaliser la qualité, l’agilité permet à l’équipe de livrer en priorité les fonctionnalités attendues, en fonction du marché et des besoins et, ainsi, de créer de la valeur pour l’entreprise.
En adaptant l’effort au besoin, en évitant la sur-qualité et en maximisant le retour sur investissement tout en étant réactif, la méthodologie agile privilégie une mise en œuvre pragmatique de la qualité avec, en ligne de mire, la satisfaction des utilisateurs.
Qualité, productivité et réactivité sont donc intimement liées de même que gestion des priorités, échange, communication et collaboration.
Evidemment, les bonnes pratiques et toutes les techniques de développement consistant à créer un code utile, robuste, durable, pérenne et documenté vont également contribuer à améliorer encore la qualité.
Et si cette recette qui fonctionne sur les développeurs était appliquée aux équipes d’exploitation ?
En embarquant davantage le métier en amont et en prolongeant ces principes d’agilité en aval avec les équipes de déploiement et les Ops, la démarche DevOps est née.
APPRENTISSAGE ET AMÉLIORATION CONTINUE
Tout comme l’Agilité, DevOps n’est pas une finalité en tant que telle. Il est plutôt question d’apprentissage et d’amélioration continue. Au-delà de la problématique de livrer plus de logiciels, il faut livrer des logiciels de meilleure qualité plus rapidement, sans sacrifier la fiabilité et la stabilité.
Pour s’assurer du maintien de cette qualité en permanence, la pratique de tests doit également être menée en continu. L’entreprise gagne en flexibilité et améliore la qualité de service pour ses clients en temps réel et de manière automatique.
L’automatisation est également une des clés de la réussite. Les bénéfices de l’industrialisation des développements et des processus associés sont multiples et notamment :
- La réduction des temps de déploiement : avec une incidence directe sur les coûts des projets de développement.
- La réduction de l’intervention humaine : limite les risques d’erreurs et, surtout, donne l’opportunité aux développeurs de se focaliser sur des tâches à plus haute valeur ajoutée.
Des synergies intéressantes peuvent être obtenues lorsque la démarche s’intègre dans un processus de livraison continue. La livraison et le déploiement continus permettent non seulement, de produire des solutions logicielles sur des cycles courts mais aussi de s’assurer en permanence que chaque modification apportée n’a pas ou n’aura pas d’incidence sur le bon fonctionnement
C’est également un changement culturel qui doit s’opérer pour permettre aux équipes d’être soudées, d’avoir les mêmes objectifs fondamentaux et de collaborer efficacement en instaurant, par exemple, les revues de code et le pair programming. Un des secrets de la réussite est de donner confiance aux équipes pour qu’elles trouvent elles-mêmes leurs solutions et se les approprient. En rapprochant les équipes, on crée une dynamique vertueuse et de l’engagement !
Enfin, l’amélioration continue implique de mettre en place les KPI y compris lorsque le logiciel est opérationnel :
- Pour mesurer : en incluant dans la boucle les équipes de support qui sont en première ligne des remontées client
- Mais aussi partager les succès : notamment l’optimisation du temps passé sur des opérations automatisées, l’investissement de ce temps sur des tâches à plus forte valeur ajoutée ou encore toutes les données liées à l’amélioration de l’expérience client.