Je vous ai déjà parlé de différentes méthodes de gestion de projet. Entre autre, j’ai déjà écrit des articles sur le cycle en V et le cycle itératif, ainsi que sur les méthodes agiles. Ces méthodes, et plus particulièrement les méthodes agiles, sont globalement axées sur la gestion des développements. Comprenez par là que leur but est d’arriver à la création d’un produit fini avec le meilleur rapport qualité/coût/délai.
Bien souvent, quand on met en place une méthode de travail, on se focalise sur les phases de réalisation du travail. Puis on s’intéresse à ce qui a lieu en aval, le processus qualité et les étapes de livraison. Par contre, on aborde assez rarement la manière dont les spécifications sont réalisées et gérées.
C’est paradoxal : à quoi bon améliorer les processus de développement, si le travail à effectuer est mal défini ?
Spécifications agiles
Une − mauvaise − réponse est apportée par certaines personnes qui interprètent mal les principes agiles. Quand on applique les méthodes agiles, on cherche la satisfaction du client plutôt que l’accomplissement d’un cahier des charges figé. Malheureusement, cela se traduit parfois par la disparition de toute forme de spécification. Au lieu d’apporter une souplesse salutaire, cela peut conduire à un va-et-vient incessant entre le client et l’équipe technique en charge de la réalisation.
La mise en place de cycles itératifs a pour but évident de fluidifier le cheminement expression-de-besoin / spécification / réalisation. À chaque itération, le besoin du client est écouté, analysé, interprété, rediscuté. Les zones d’ombre sont identifiées et laissées de côté pour les prochaines itérations.
Le corollaire de cela, c’est que chaque itération doit pouvoir être réalisée dans des conditions essentielles de stabilité. La méthode Scrum prévoit d’ailleurs deux rôles bien spéciaux : le product owner représente le client et peut répondre aux questions concernant le produit ; le scrum master protège l’équipe des requêtes impromptues.
Mon expérience
J’ai déjà expliqué dans un précédent article comment nous appliquons les méthodes agiles dans mon entreprise. Pour résumer : des cycles de développement d’un mois, séparés en sprints hebdomadaires ; 2 ou 3 sprints de développement, un sprint de stabilisation (tests, débugs), un sprint de MEP (mise en pré-production, validation, mise en production).
La mise en place de ces cycles a eu des effets très positifs. Nous perdons moins de temps tout en augmentant la qualité de notre travail. Nous continuons à identifier les points qui peuvent être encore améliorés.
L’application de cette méthode de travail a toutefois mis en exergue les lacunes que nous avions au niveau de la gestion de nos spécifications fonctionnelles. C’est assez facile de s’en rendre compte : pour qu’un projet soit développé, il faut que sa spécification soit écrite et validée avant la fin du mois précédant le cycle de développement. Si la spec n’est pas prête ou si elle est incomplète, elle devrait être simplement refusée et repoussée au cycle d’après ; mais bien souvent, cela a amené à des négociations concernant les dates de livraison, le niveau de précision, ou la latitude de validation technique autorisée sur les spécifications fonctionnelles.
Ce qui m’a amené à réfléchir au processus global qui mène à l’élaboration des spécifications. PLUS »


