睦勝 Geek
Qui sait quand il faut combattre et quand il faut s'en abstenir sera victorieux.

[METHODOLOGIE] Le rapport d’incident


27/11/2012

La semaine dernière, je reçois un mail de notification de notre plateforme de planification et reporting d’incident :

Ticket d’incident n°XYZ-012345
Type : BUG
Priorité : Bloquant
Sujet : Problème sur les champs d'upload des formulaires du site.
Description : Il y a un pb au niveau du bouton « Choisissez un fichier » cela se mélange avec « Aucun fichier choisi ». Problème sur Chrome, sur FireFox Ok.
Rapporteur : Le chef de projet fonctionnel du site

 

Dans un premier temps (assez long, je l’admets), je me suis énervé. Et pour tout avouer, nous étions dans un climat de conflit ouvert avec cette personne ce qui a provoqué une réaction disproportionnée de ma part quant au traitement de ce rapport d’incident. Certes, j’ai été factuel dans ma réponse mais je l’ai fait sur un ton belliqueux, plein d’ironie et de moquerie. Ce qui n’a pas plu et n’était surtout pas malin. Puis, le calme revenant, je me suis dit qu’un peu de pédagogie ne ferait pas de mal. Je vous propose donc ce petit article pour faciliter votre communication avec les développeurs.

Qu’on utilise une plateforme de rapport de bugs ou de gestion de projet (Mantis, Jira, Bugzilla, Redmine…) ou un système moins élaboré (mail, téléphone, pigeon voyageur, signaux de fumée…), il est important d’être précis dans ses termes lorsqu’un signale un incident (ou ce que l’on pense être un incident) à une équipe de développement. Cela permet d’une part de ne pas froisser les développeurs, d’autre part de les guider précisément dans la recherche et la reproduction de l’incident et donc leur faciliter la tâche dans la résolution de cet incident.

 

Prenons le cas cité plus haut.
L’incident est signalé comme étant un « bug […] bloquant […] sous Chrome mais pas sous Firefox ».

La première chose à faire est de vérifier qu’il s’agit bien d’un bug. Généralement, on a un modèle de référence (soit une plateforme d’intégration, soit des maquettes, soit des spécifications fonctionnelles…). Dans notre situation, ce n’était pas un bug dans la mesure où ce type de champ de formulaire n’avait été prévu nulle part (d’où l’intérêt, quand on se lance dans la construction d’un site web, de prévoir à l’avance toutes les fonctionnalités que l’on souhaite avoir, même si on ne les propose que longtemps après le lancement). Il se trouve que par chance, certains navigateurs se comportaient bien vis à vis-à-vis de l’affichage de ce type de champ.

La deuxième chose à faire est de bien qualifier la priorité accordée à ce type d’incident. Dans notre cas, il avait été qualifié de bloquant. Dans notre jargon, « bloquant » signifie que le bug empêche totalement l’utilisation de la fonctionnalité proposée. Ce qui, dans notre système de priorité, équivaut à « Alerte noire ! Passage en DEFCON 1 ! On laisse tomber toute tâche en cours et on se consacre à la résolution de cet incident ». Il se trouve qu’en réalité, il n’y avait rien de bloquant. Tout fonctionnait parfaitement. Le bouton permettant d’ouvrir la fenêtre de sélection du fichier était accessible, réagissait bien au clic et faisait son office. Nous étions donc en présence d’un problème purement cosmétique. Sa priorité aurait dû être mineure.

La troisième chose à faire est de vérifier la reproductibilité de l’incident sur l’ensemble des plateformes courantes de nos utilisateurs. Sur nos sites, la majorité des internautes utilisent, dans l’ordre, Internet Explorer (allant de la version 7 à la version 9, IE6 étant virtuellement mort et IE10 encore en gestation), Firefox, Chrome, Safari. Visiblement, le test a été effectué… partiellement et certainement pas avec les navigateurs les plus représentatifs. Un test sous IE7 aurait montré que le bouton avait une forme différente (ce qui donnait un indice quant à la véritable nature du « bug »). Un test sous IE8 et IE9 confirmé la différence entre les navigateurs (et révélé un véritable bug d’affichage qui nous avait échappé). Un test sous Safari aurait montré que l’anomalie de placement du bouton affectait également le navigateur d’Apple.

La quatrième (ou 3° bis si vous préférez) est de préciser le contexte de reproduction du bug le plus précisément possible. URL (elle était présente dans le rapport d’incident mais je ne souhaite pas la révéler), plateforme (Windows/Mac/Linux) et version, navigateur et version, présence éventuelle d’une publicité un peu spéciale (un pavé extensible qui grandit au survol de la souris, un habillage, un pied de page extensible…), réseau d’entreprise… Ce dernier point n’est pas négligeable. Nombre des bugs d’affichage qui nous sont remontés sont dus à la présence d’un proxy d’entreprise qui empêchait la mise à jour correcte des feuilles de style.

 

Au final, il s’avère que les navigateurs basé sur le moteur Webkit (Safari, Chrome, Chromium, Rockmelt…) bénéficie d’une sécurisation accrue des champs d’envoi de fichiers et la conséquence de cette fonctionnalité est que le bouton de parcours du disque est placé dans le champ et non pas après le champ… Ce que certains ne savent/remarquent pas mais qui, selon moi, doit faire partie des connaissances générale d’un chef de projet web.

A propos de Young Sun TAN :

Young Sun TAN est un geek webophile, technophile, bidouilleur et gourmet.

Sur la toile depuis 1995 avec sa première page web (une biographie de Beaumarchais pour le compte du collège Beaumarchais de Paris), il revendique une identité de "digital native". Après une Terminale S au Lycée Louis-le-Grand à Paris et un Master en Informatique option Ingénierie Informatique - Systèmes d'Information, il a entamé une carrière d'analyste web et est désormais Project Leader pour le Groupe Lagardère. Il compte parmi ses réalisations les sites de Celebrity Cruises, Royal Caribbean ainsi que Gulli, Canal J, Tiji et Europe 1.

Menant un veille constante sur les évolutions du web et du développement, son expertise couvre le PHP-MySQL, le framework jQuery ainsi que le CMS eZPublish et Symfony pour lequel il a une affection toute particulière.

Côté détente, il affectionne tout particulièrement les bonnes tables et les bons plans foodista. Bien que la street food occupe une place de premier choix dans son cœur ventre, il n'est pas allergique à une excursion gastronomique ou bistronomique.

Retrouvez Young Sun TAN sur :