Post de Alexandre Manuel

Voir le profil de Alexandre Manuel, visuel

Python Software Engineer | Python/Django Developer | Ingénieur Systèmes Embarqués

Bug du jour : joyeux anniversaire au 30 novembre ! 🎉 Aujourd'hui est un jour spécial. On est le 30 novembre, et ça me rappelle une histoire à la fois drôle et frustrante, histoire vraie, racontée par un ami à qui c'est arrivé, qui montre bien comment un bug peut avoir des conséquences inattendues… et être bien difficile à expliquer. Un jour, des milliers de clients reçoivent un email leur souhaitant : "Joyeux anniversaire ! Un cadeau vous attend en magasin ! 🎁" Résultat : afflux imprévu en magasins, confusion générale, des clients pas forcément ravis, et une chaîne de magasins dans le pétrin. Chez l'entreprise qui gère les mails marketing, panique à bord. Que s'est-il passé, et surtout pourquoi ce jour là ? le 30 novembre n'est en rien une date particulière, non ? Alors, pourquoi le 30 novembre ? Tout remonte à la base de données. Pour les clients sans date de naissance renseignée, une valeur par défaut était utilisée : date(0). Et voilà comment ce fameux "0" a été interprété par le système : - Le mois avant janvier : décembre. - Le jour avant le 1er décembre : le 30 novembre. On a donc un programme qui tourne tous les jours, compare la date de naissance à la date du jour, et envoie un mail à tous les clients dont c'est l'anniversaire. Ce qui paraît logique pour un programme (à sa façon) devient très difficile à comprendre sans cette explication. Et c’est là que ça coince. Le vrai casse-tête, c’est d’expliquer ça. Imaginez-vous en train de répondre à un client en colère, ou d’essayer de clarifier la situation à des équipes qui ont autre chose à gérer que les subtilités d’une "date zéro". C’est une gymnastique : rendre compréhensible une logique qui, soyons honnêtes, n’a rien d’intuitif. Ce que ça m’a appris ? C’est toujours impressionnant de voir à quel point de petits détails peuvent avoir un gros impact. Mais surtout, ça montre que dans notre métier, le plus dur n’est pas toujours de résoudre le problème, mais de l’expliquer clairement à ceux qui en subissent les conséquences. Et vous, ça vous est déjà arrivé de devoir expliquer un bug à quelqu’un qui ne voyait pas pourquoi c’était si compliqué ?

Identifiez-vous pour afficher ou ajouter un commentaire

Explorer les sujets