Par Frédéric Miche, Application Delivery Management, Solutions Architect France & Belux, Micro Focus
Aujourd’hui, l’engouement des équipes informatiques pour les méthodes agiles, convaincues de leur bien-fondé, est indéniable. L’effet tunnel des méthodes traditionnelles de type cycle en V a en effet souvent fait souffrir ces mêmes équipes par le passé. Il n’était pas rare, par l’application des approches de type cycle en V, de livrer des applications obsolètes à l’issue de projets s’étalant parfois sur plusieurs années. Les marchés, les réglementations, les technologies ou tout simplement les besoins client ont pu évoluer entre temps.
Avec la montée en puissance de l’adoption des méthodes agiles, beaucoup d’éditeurs de logiciels proposent des outils d’animation d’équipes agiles dont certains sont aujourd’hui largement adoptés par la communauté. Ces outils sont en particulier utilisés pour la gestion des backlogs de produit et de release, la planification et le suivi des itérations ainsi que pour la gestion et le suivi des anomalies. Au-delà de ces fonctionnalités de base, nous vous proposons d’évoquer ici les 5 points clés pour bien choisir sa solution agile d’entreprise.
De la qualité en continu
Si les pratiques de développement agile et DevOps ont permis de développer et de déployer plus rapidement les produits, beaucoup s’accordent à penser que l’accélération du time to market a aussi parfois été obtenue au détriment de la qualité des produits livrés. Les pratiques d’intégration continue sont aujourd’hui entrées dans les mœurs, ce qui est encore loin d’être le cas pour ce qui concerne la qualité en continu, dans une approche DevOps ou pas.
Les outils agiles se doivent de proposer des fonctionnalités de gestion de la qualité. Et par qualité il faut entendre au sens large l’analyse de la sécurité, de la performance et de l’adéquation fonctionnelle des produits. Tous les tests ne pouvant pas être automatisés, il faut également disposer de la prise en charge des tests manuels. Les tableaux de bord de suivi des niveaux qualité doivent ainsi consolider les résultats de tous les types de test manuel et automatisé, unitaires, d’intégration et de recette, de sécurité, de performance et fonctionnel aussi bien au niveau API qu’IHM. Le support de l’approche BDD est également intéressant dans ce sens qu’il permet d’impliquer les product owners dans les processus de validation.
A ce titre, il est intéressant de considérer des outils logiciels agiles offrant nativement un module de gestion de la qualité comme composante intégrée de la solution
De l’intégration avec la chaîne d’outils CI/CD
Avec l’adoption des pratiques agiles et DevOps, l’objectif de pouvoir soutenir un rythme effréné d’innovations, le nombre et la complexité des configurations à prendre en compte (équipements mobiles, OS, taille d’écrans, navigateurs ou conditions d’accès réseau), ainsi que la complexité et l’hétérogénéité des environnements imposent d’avoir recours à l’automatisation des processus.
Les tests automatisés doivent pouvoir être exécutés à la suite de la création des builds depuis les serveurs d’intégration continue afin de pouvoir mesurer les niveaux qualité en continu des livrables.
Dès lors, une étape incontournable dans la mise en place d’outils logiciels agiles consiste à les connecter aux serveurs d’intégration continue. Et ce, quelles que soient les technologies choisies dans ce domaine, afin de savoir ce qu’il se passe au niveau des pipelines de livraison.
Du support de l’agilité à l’échelle de l’entreprise
L’adoption de l’agilité au niveau d’une équipe de développement ou d’un projet porte son lot de succès significatifs au sein de bon nombre d’organisations informatiques. Ces succès en appellent au déploiement des méthodes agiles à une plus grande échelle, à savoir à celle de l’entreprise. L’enjeu est alors de permettre la coordination de multiples équipes de développement, appartenant parfois à des directions différentes. De par les objectifs non nécessairement alignés de ces différentes équipes et de leur vision souvent partielle du système d’information dans son ensemble, elles peuvent ne pas mesurer complètement l’impact des décisions qu’elles prennent à leur niveau.
Raisonner à l’échelle du système d’information de l’entreprise s’avère nécessaire afin de pouvoir prendre en compte certaines demandes d’évolutions provenant des métiers. Ainsi l’adoption de l’agilité à l’échelle peut devenir une nécessité lorsqu’il s’agit d’adresser des projets de plus grande ampleur. C’est avec cet enjeu que les frameworks dits d’agilité à l’échelle (le plus connu est sans nul doute Safe) sont apparus pour proposer avec plus ou moins de succès un cadre organisationnel afin d’assurer la coordination des équipes et garantir la cohérence au niveau du système d’information dans son ensemble.
Il est dans ce domaine intéressant de considérer des outils logiciels agiles ayant été conçus ou ayant évolué pour proposer nativement le support des frameworks d’agilité à l’échelle dès lors où une initiative de déploiement d’un tel framework a été décidée.
Du besoin de capacités analytiques avancées
Avec l’adoption de l’agilité à l’échelle de l’entreprise et la mise en place de processus DevOps, il est important de pouvoir disposer d’une solution intégrant des capacités analytiques avancées. Il s’agit de proposer une vue globale et prédictive de la qualité. Pour cela il faut être en mesure de connecter la solution à l’ensemble des outils de la chaîne d’outils DevOps (chacune des équipes de développement utilise parfois des outils différents) pour en collecter et agréger les données techniques.
Pour ce faire, la solution logicielle agile doit se positionner comme une véritable plateforme de gouvernance en proposant la collecte des données des pipelines, relatives aux changements apportés aux codes sources, aidant à l’analyse des causes originelles des échecs de création de builds, facilitant l’analyse des résultats d’exécution de tous les types de tests automatisés par technique de clustering. Cela permet d’identifier certaines causes communes d’échecs et renseigne sur l’état des déploiements automatisés des produits dans les environnements. Ces capacités avancées permettent une analyse efficace des niveaux de qualité, de sécurité et de performance, la mesure des progrès accomplis et l’identification de l’impact des changements. Les responsables produits peuvent ainsi prendre les bonnes décisions sur la base d’indicateurs pertinents qui fournissent une visibilité de bout en bout.
L’exploitation de l’ensemble de ces informations doit permettre la production de tableaux de bord portant des indicateurs clés d’un point de vue métier en mettant en évidence les domaines métier pour lesquels les objectifs qualité définis ne sont pas atteints (effort de test insuffisant, SLA non atteints, niveau de couverture fonctionnelle insuffisant, cycles de résolution des anomalies anormalement longs, temps nécessaire entre prise en compte et déploiement d’une nouvelle feature,…) tout en améliorant la prise de décision au travers du prisme de l’impact business.
Du choix d’une solution pérenne
Pour adresser les challenges de l’agilité à l’échelle de l’entreprise, de la qualité en continu sur l’ensemble du cycle de vie des produits et des capacités analytiques avancées au niveau des processus agiles et DevOps, une solution logicielle agile doit pouvoir s’inscrire dans la durée pour les organisations soucieuses de la pérennité de leurs investissements en matière d’outils logiciels. Ces solutions doivent se positionner comme de véritables plateformes de gouvernance des pratiques agiles et DevOps à l’échelle de l’entreprise. Le caractère stratégique du choix d’une telle solution pour une entreprise passe intrinsèquement par la nécessité de s’engager avec un éditeur offrant des gages de pérennité, aspect d’autant plus important en cette période d’incertitude économique.