Les machines à glace molle de McDonald's sont tristement célèbres pour tomber en panne, et en 2020 les clients n'avaient aucun moyen de savoir qu'une machine était hors service sans se déplacer au restaurant. En octobre de cette année-là, l'ingénieur logiciel basé en Allemagne Rashiq Zahid a lancé McBroken, une carte qui colore chaque McDonald's des États-Unis en vert ou en rouge selon que sa machine à glace fonctionne ou non. Sa méthode : rétro-ingénierer l'API de commande interne de la chaîne et tenter d'ajouter un McSundae à un panier dans chaque établissement. Si l'application accepte l'article, la machine fonctionne ; si elle le refuse, elle est en panne.

La sonde a dû être ajustée. Interroger toutes les minutes faisait identifier l'application comme un bot et coupait l'accès ; ajouter un McSundae toutes les 30 minutes garde la carte à jour et satisfait ses critères de détection humaine. Zahid a commencé avec les établissements McDonald's en Allemagne, se déplaçant à vélo entre les restaurants berlinois pour vérifier les données de McBroken par rapport à la réalité, et ne s'est étendu aux États-Unis qu'ensuite. Le tableau qu'il dressait était sans détour : un peu moins de 10 pour cent des machines américaines en panne dans tout le pays au moment de la rédaction, près de 24 pour cent à New York, environ 20 pour cent à Seattle et à peu près 14 pour cent dans la région de Washington, DC.

Une tentative antérieure, l'application de Raina McLeod en 2017 créée après une envie de McFlurry non satisfaite, reposait sur des signalements participatifs et ne valait que ce que valaient ses utilisateurs ; interroger directement la source de commande a rendu les données de McBroken plus précises et plus actuelles. McDonald's n'a pas combattu le projet — le cadre chargé des communications et des relations gouvernementales David Tovar a publiquement remercié Zahid, le qualifiant de véritable fan et reconnaissant que la chaîne avait des « opportunités » sur les douceurs — et Business Insider a rapporté que des franchisés cherchaient leurs propres solutions.

Ne pas s'appuyer sur des signalements participatifs de pannes — sonder l'API de commande. Si l'application permet d'ajouter une glace au panier, la machine fonctionne ; si elle refuse, elle est en panne.

L'application de commande est de facto une API d'état des machines : sa logique de panier sait déjà quels établissements ne peuvent pas servir de glace.

Un panier synthétique ne coûte rien et est toujours frais, contrairement aux signalements participatifs qui se dégradent avec l'attention des utilisateurs.

La cadence de 30 minutes a été le pivot — assez rapide pour rester à jour, assez lente pour paraître humaine à l'application.

La carte dénonce sans accuser : elle énonce simplement ce que l'application de commande implique déjà pour chaque établissement.

Quand une entreprise ne publie pas ses données d'état, son interface de transaction les divulgue malgré tout. Une sonde bien choisie qui échoue exactement quand la chose est en panne vaut mieux qu'une armée de signalements humains.

McDonald's n'a jamais agi contre le bot : David Tovar a salué publiquement l'effort (« Seul un véritable fan de McDonald's irait jusque-là ») et a reconnu que l'entreprise avait des opportunités pour satisfaire davantage de clients sur les douceurs. Business Insider a rapporté le même mois que des franchisés prenaient l'affaire en main et cherchaient des solutions pour que les machines fonctionnent plus souvent.

VÉRIFIEZ LES SOURCES

Les sources

  1. Bot orders $18,752 of McSundaes every 30 min. to find if machines are working Ars Technica · arstechnica.com ·