Au début de ma carrière, je déboguais à l'instinct. Quelque chose cassait, je fixais le code, je modifiais quelque chose, je redéployais, j'espérais. Parfois ça marchait. Souvent, ça aggravait les choses.
Quand on construit des systèmes dont les gens dépendent, on ne peut pas se permettre de deviner. J'ai développé un framework pour déboguer systématiquement. Ce n'est pas glamour, mais ça fonctionne à chaque fois.
Le framework : ISOLATE
I — Identifie le symptôme (pas la cause) S — Scope le rayon d'impact O — Observe les données (logs, métriques, traces) L — Liste les hypothèses (minimum 3) A — Évalue chaque hypothèse avec des preuves T — Teste le correctif en isolation E — Explique ce qui s'est passé (postmortem)
Laissez-moi vous guider à travers un exemple concret.
Cas réel : Tableau de bord qui charge en 30 secondes
I — Identifie le symptôme. Les utilisateurs signalent que le tableau de bord qualité met plus de 30 secondes à charger. Localement, il charge en 2 secondes. Uniquement en production.
Ne sautez pas encore sur « c'est un problème de base de données » ou « c'est un problème réseau ». Décrivez simplement ce que vous voyez.
S — Scope le rayon d'impact. Est-ce que ça concerne tous les utilisateurs ou certains en particulier ? Tous les navigateurs ? Quand cela a-t-il commencé ? Corrélé à un déploiement ?
Dans ce cas : tous les utilisateurs, commencé il y a 3 jours, aucun déploiement dans cette fenêtre. Cela élimine « nous avons livré du code cassé » comme cause.
O — Observe les données.
