Le bonheur des recettes utilisateur. Ces jours de test intensif sur des fonctionnalités qui marchaient la veille mais se plantent lamentablement devant le client. La plupart du temps, c'est à ce moment que l'on se rend compte que ce qu'on a développé ne correspond pas aux attentes du clients (cf phase 5 du cycle en v). Stephen nous offre un exemple d'échec de recette utilisateur en léger décalage avec nos habitudes éditoriales, j'ai hésité à le publier mais finalement l'histoire qui n'est pas vraiment un WTF reste une anecdote amusante.
Il y a quelque temps j'ai rejoint une équipe d'ingénieurs en charge de l'implémentation d'un grand projet d'illumination nocturne. Ce projet était basé à Newcastle et consistait à piloter 142 projecteurs lumineux. Des lumières étaient installées le long d'un pont, éclairant chaque face de la structure triangulaire. L'idée était de faire passer des vagues de couleurs sur le pont avec différents facteurs comme la vitesse de défilement ou la luminosité de l'affichage. Ce projet constitue le plus grand projet d'éclairage artistique du Royaume-Uni.
Lors de l'étude du projet nous avions identifié quelques contraintes. Le pont qui accueillait notre projet était utilisé pour du trafic ferroviaire, et comportait donc des feux de signalement. Nous avons donc pensé un à système pour éviter qu'une couleur projetée ne puisse être confondue avec une couleur d'un feu de signalisation. Ce système de sécurité mettait en oeuvre deux pc en réseaux, un système de détection des trains, ainsi que des procédures de sécurité en cas de panne. En gros, chaque seconde, le "PC Contrôleur de l'affichage" demandait au "Pc de Sécurité" si un train était en approche. En cas de réponse positive, les couleurs projetées sur le pont seraient automatiquement pastellisées(plus douces) pour ne pas gêner la lecture du conducteur du train (pas du journal mais du feu de signalisation). De plus, si le "Pc de Sécurité" ne répondait pas pendant plus de 15 secondes, les lumières passaient automatiquement en mode pastellisé, et seraient même désactivées après quelques secondes supplémentaires. Bref, tout avait été pensé pour éviter que des couleurs trop vives soient affichées lors du passage d'un train.
Lors de la recette, les conducteurs et les inspecteurs ferroviaires allaient devoir vérifier que la lecture des feux de signalisation ne posaient pas de problème en mode pastellisé. Ainsi, une soirée de Novembre (vers 2h du matin), alors que le trafic normal avait cessé pour la nuit, les lumières furent allumées et l'on démarra le grand test du système. Chaque couleur vive fut appliquée sur le pont. Alors que le conducteur s'approchait du pont, les couleurs passèrent automatiquement dans leur version pastelle. Le premier test était passé, restait maintenant à tester que le conducteur verrait correctement chaque couleur vis à vis des deux couleurs de signalisation : ambre et vert.
Le test du "Lumières rouges avec le feu ambre et le feu vert" se déroula sans problème. Tout comme "Lumières ambres sur feu ambre et feu vert". "Lumières Bleues sur feu ambre et feu vert" passa sans problème, "Lumière verte sur feu ambre" aussi. A vrai dire, seul le tout dernier test de visibilité échoua : "Lumière verte pastellisée sur feu vert" !? Même après avoir discuté avec les responsables ferroviaires, nous dûmes revoir nos copies. Nous pouvons seulement présumer que le conducteur du train, agacé que l'on allume des lumières sur son pont, décida de faire le difficile sur le dernier test.
Pourra-t-on un jour nous pardonner d'avoir failli laisser passer un train ... au signal vert.
On imagine l'exaspération des équipes de développement devant ce refus de validation utilisateur qui va à l'encontre du bon sens. Cependant, après les récents accidents ferroviaires, on comprend aisément l'obstination des commissaires. Pour ceux qui ont la fibre artistique vous pouvez aller voir une vidéo du projet.