Un des problèmes majeurs présents dans le développement de projets informatiques est le retard.
Les équipes y sont confrontées de manière récurrente, et qu'il soit comblé par une augmentation de la productivité ou bien reporté sur le client, celui-ci aura un coût.
Malgré l'évolution des méthodes de travail avec la démocratisation du fonctionnement agile, permettant d'être au plus proche du client, les retards affectent toujours bon nombre d'équipes, et il est souvent compliqué de les éviter avec des estimations.
Pourtant, 9 fois sur 10, ces retards sont liés à une mauvaise compréhension du besoin client. Certaines méthodes tendent donc maintenant à travailler sur l'analyse du besoin client tout autant que sur le développement logiciel.
En effet, que les demandes clients soient transmises au travers d'un cahier des charges fonctionnel, d'une discussion orale, ou même d'une réunion en présentiel, leur implémentation dans le produit est liée à un facteur humain. La conformité du projet est ainsi à la responsabilité des différentes parties prenantes, et cette conformité aura tendance à diminuer avec l'ajout d'intermédiaires. Ces différentes personnes impliquées ayant chacune leur moyen de communication, leurs biais cognitifs, et parfois même leurs langues qui leurs sont propres.
Il est donc important d'accorder un soin tout particulier à cette phase de définition et de transmission du besoin, en s'aidant si possible d'outils et de méthodes de travail adaptés.
Afin de déterminer si les retards auxquels on a déjà fait face sont dus à une mauvaise communication client, il est possible de s'appuyer sur différentes métriques.
En effet, qu'il s'agisse de temps passé pendant la réalisation de fonctionnalités ou a posteriori pour corriger une demande client, celui-ci peut la plupart du temps être identifié et évité.
Dans un premier temps, il est intéressant d'analyser le nombre de tickets rouverts a posteriori, suite à une volonté de corriger ou refaire une fonctionnalité qui ne répond pas aux attentes du client. Il peut également s'agir de tickets supplémentaires, créés au cours du projet, et dont le but est uniquement de corriger un fonctionnement qui n'était pas celui attendu initialement.
Ces évolutions peuvent venir de précisions apportées par le client suite à une incompréhension, ou bien même de demandes venant d'un client qui ne savait pas réellement définir ce qu'il voulait au départ, sans qu'il en ait eu lui même conscience.
Dans les deux cas, il est bien souvent possible d'éviter ces problèmes en permettant au client de définir de manière plus précise son besoin. Ce temps passé sur la phase d'analyse en amont du projet sera ensuite rattrapé lors de la phase de développement, une fois les premières livraisons effectuées.
Dans le même genre, certains tickets de bug auront aussi pour origine un manque de définition du besoin. Il peut s'agir de cas d'utilisation particuliers non exposés, ou bien d'un manque de définition des contraintes et de l'environnement.
Pour ces cas là, il est donc possible d'analyser le nombre de tickets de bug créés suite à un manque de précision de l'environnement.
Analyser le nombre de tous ces tickets par rapport au nombre de tickets total du projet permet d'obtenir une idée du pourcentage de retard accumulé à la suite d'incompréhensions ou de manque de détail du besoin client.
Au sein d'une même équipe de développement, il est également possible d'observer des retards liés à une mauvaise compréhension du besoin (par exemple entre Product Owner et développeur).
Pour cela, une autre métrique intéressante à prendre en compte est le « Cycle Time ». Cette valeur mesure la durée nécessaire à la réalisation d'une tâche, depuis ses premiers travaux d'ingénierie jusqu'à sa validation.
Sur les plateformes de gestion de tickets, elle représente le temps entre la prise d'un ticket dans la colonne "To do" et sa fermeture, une fois les tests réalisés. Certaines d'entre elles, comme Azure DevOps, permettent de mesurer automatiquement cette valeur, et d'en obtenir une moyenne sur un ensemble de tickets.
A titre personnel, il m'a déjà été donné d'observer une réduction significative de cette moyenne (environ -30%) entre deux sprints suite à une nouvelle méthode de travail incluant une définition claire du besoin au début de chaque ticket (définition pourtant incluse dans le Cycle Time).
Afin de répondre à ces problèmes de retards, il est donc possible de travailler sur la définition du besoin client, en définissant formellement ou bien le plus clairement possible, et sans ambiguïtés, chaque demande client une à une.
Il est également possible de définir différents scénarios, comme proposés par la méthode Gherkin, pour être le plus exhaustif possible sur l'ensemble des cas d'utilisations rencontrés.
Assurer une traçabilité claire entre une demande client issue du cahier des charges fonctionnel et son développement est également une manière de réduire la durée de réalisation d'un projet, car elle va permettre d'assurer la conformité du produit avec les besoins client.
Améliorer la définition de la demande client peut se faire de plusieurs façons. La plus rigoureuse est celle proposée par les méthodes formelles. Elles permettent de clarifier les exigences et les attentes du projet, ce qui peut aider à prévenir les retards en identifiant les défis et les risques potentiels dès le début du projet et en mettant en place des plans d'action pour y faire face.
De plus, les méthodes formelles pour rédiger un cahier des charges fonctionnel permettent de créer un document rigoureux et complet, qui peut servir de référence pour évaluer les avancées du projet et détecter les éventuelles difficultés en temps opportun. Cela permet de réagir rapidement et de minimiser les retards en veillant à ce que le projet avance de manière efficace et conforme aux attentes.
Cela permet également aux différents intervenants (développeurs, testeurs, gestionnaires de projet, etc.) de comprendre de manière précise ce qui est attendu d'eux et de travailler de manière coordonnée pour atteindre les objectifs fixés.
Les méthodes formelles nécessitent cependant une expertise avancée. Plusieurs solutions existent alors si ces compétences ne sont pas détenues en interne. Tout d'abord, il peut être utile de recourir à des consultants expérimentés qui peuvent apporter leur expertise et aider à la formalisation des exigences. Il est également possible de sensibiliser les employés et de leur fournir une formation adéquate pour qu'ils puissent comprendre les différents aspects de la formalisation des exigences et être en mesure de les mettre en pratique. Enfin, il est surtout important de recourir à des outils et des logiciels spécialisés pour faciliter la formalisation des exigences et aider les employés à travailler de manière plus efficace.
Les outils de gestion des exigences sont des outils informatiques qui permettent de documenter, d'analyser et de suivre les exigences d'un projet. Ils sont particulièrement utiles pour surmonter le problème de la nécessité d'une expertise avancée pour formaliser les exigences, car ils offrent une méthodologie structurée pour capturer les exigences de manière claire et précise. De plus, ils peuvent être utilisés par des personnes ayant différents niveaux d'expertise et permettent de stocker et de partager les informations de manière centralisée, ce qui facilite le travail d'équipe. Les outils de gestion des exigences peuvent également aider à identifier les conflits et les incohérences entre les exigences, ce qui est crucial pour garantir que le projet répondra aux demandes client des utilisateurs finaux.
Formaliser un cahier des charges fonctionnel à l'aide d'un outil d'aide à la spécification présente ainsi de nombreux bénéfices. Tout d'abord, cela permet de capturer les exigences de manière claire et précise, ce qui est crucial pour garantir que le projet répondra aux besoins des utilisateurs finaux. De plus, l'utilisation d'un outil d'aide à la spécification peut faciliter la communication entre les différents acteurs du projet, en leur permettant de partager et de consulter les informations de manière centralisée. Cela peut également aider à identifier et à résoudre les conflits et les incohérences entre les exigences, ce qui est important pour éviter les retards et les coûts supplémentaires. Enfin, un cahier des charges fonctionnel formalisé peut également servir de référence tout au long du projet, en permettant de suivre l'avancement des travaux et de s'assurer que les demandes clients sont respectées. En résumé, l'utilisation d'un outil d'aide à la spécification peut contribuer à la réussite d'un projet en facilitant la gestion des exigences et la communication client.
Page générée en 0.0063 secondes.
Copyright © SPILEn SAS 2020-2022
Template de base par Inovatik