- Une équipe d’environ 45 ingénieurs suspend chaque trimestre pendant une semaine la roadmap, le design et les réunions pour organiser une « semaine Fixit », consacrée à la résolution de petits bugs et de problèmes de productivité
- Lors de ce Fixit, 189 bugs ont été corrigés, avec 40 participants, une médiane de 4 corrections par personne et jusqu’à 12 bugs fermés pour un même ingénieur
- Des mécanismes comme la règle de résolution en moins de 2 jours, un système de points et de classement, ainsi que des t-shirts en récompense renforcent la motivation et le moral de l’équipe
- L’usage d’outils d’IA a accéléré l’exploration du code et les propositions de correction, en réduisant le coût des changements de contexte
- Fixit est perçu comme une pratique qui améliore la qualité du produit et renforce la cohésion de l’équipe, tout en ravivant le plaisir de résoudre de petits problèmes
Le concept de Fixit et son mode de fonctionnement
- Fixit est une semaine intensive de correction de bugs organisée chaque trimestre, durant laquelle le travail normal sur la roadmap, le design et les réunions est entièrement suspendu
- Les ingénieurs y corrigent de petites erreurs ou sources de perte de productivité qui gênaient les utilisateurs et les développeurs
- Exemples : un message d’erreur resté flou pendant 2 ans, un glitch apparaissant lors de l’usage simultané du scroll et du zoom, ou encore des lenteurs de tests retardant la CI
- Il y a deux règles
- Aucun bug ne doit prendre plus de 2 jours
- Le travail doit se concentrer sur l’amélioration pour l’utilisateur final ou sur la productivité des développeurs
- Un système de points et un classement permettent de visualiser la participation, et des t-shirts en récompense sont attribués dans différentes catégories comme « premier bug corrigé » ou « bug le plus agaçant corrigé »
Résultats de Fixit
- Résultats de ce Fixit
- 189 bugs corrigés, 40 participants, médiane de 4 par personne, maximum de 12
- Cas marquants
Les effets de Fixit
-
Côté produit : précision et finition
- Un bon produit se caractérise par l’attention portée aux détails et la cohérence
- Fixit offre l’occasion de faire progresser la qualité du produit d’un cran en éliminant de petits irritants que les utilisateurs ne remarquent pas toujours directement
-
Côté individuel : la satisfaction d’une exécution concrète
- C’est une manière de retrouver le sentiment d’accomplissement immédiat des débuts de carrière : « repérer un problème → le corriger → le déployer »
- Pendant Fixit, l’accent est mis moins sur “que construire ?” que sur “comment améliorer ?”, ce qui permet d’accumuler rapidement de petites victoires
-
Côté équipe : moral et collaboration renforcés
- Quand 40 personnes réparties sur deux fuseaux horaires corrigent des bugs en même temps, l’énergie de toute l’organisation monte d’un cran
- Partage des corrections en temps réel dans le chat, publication de captures d’écran, démonstrations… les échanges sont très actifs
- Chaque matin, le nombre de corrections, le nombre de participants et le classement sont partagés pour renforcer la motivation
Conditions de réussite d’un Fixit
-
Préparation en amont
- Tout au long de l’année, les bugs sont tagués comme « good fixit candidate » puis, la semaine précédant Fixit, classés en petits, moyens et gros (0,5 / 1 / 2 jours)
- Des points de 1, 2 et 4 leur sont attribués selon leur taille, et une liste priorisée est préparée
- Cette préparation est la clé pour éviter la confusion du premier jour
-
La règle de la limite à 2 jours
- Dans le passé, un bug s’est révélé plus complexe que prévu et a consommé toute la semaine Fixit
- Depuis, la règle est de stopper au-delà de 2 jours et de renvoyer le sujet au backlog, afin de préserver un sentiment d’accomplissement continu
-
La taille de l’équipe participante
- Au départ, avec 7 personnes, il y avait des résultats, mais pas vraiment d’adhésion à l’échelle de l’organisation
- C’est autour de 40 personnes qu’une masse critique s’est formée, maximisant l’énergie collective et l’immersion
-
La gamification
- Les points privilégient le fun plutôt que la précision (1 / 2 / 4 points)
- Les contributions sont reconnues largement : première correction, bug le plus agaçant, etc.
- Le dispositif est séparé de l’évaluation de performance, pour préserver une motivation purement participative
- Grâce aux normes sociales et à la taille de l’équipe, les abus du système sont presque inexistants
Le rôle des outils d’IA
- L’IA allège l’un des principaux défis de Fixit : le coût des changements de contexte
- En explorant rapidement les fichiers concernés et en les résumant, elle réduit la charge cognitive
- Exemples
- Au final, cela accélère l’accès à un point de départ, et dans certains cas permet une correction immédiate
Critiques adressées à Fixit et réponses
-
« Est-ce que cela ne veut pas dire que les bugs sont ignorés le reste du temps ? »
- C’est vrai en partie, mais cela compense une réalité : les petits bugs irritants (papercut bugs) passent souvent après le reste dans les priorités
- Fixit est un moyen de réserver explicitement du temps pour traiter ces « petits problèmes, mais importants »
-
« Mettre la roadmap sur pause, n’est-ce pas du gaspillage ? »
- Mobiliser 40 personnes pendant une semaine représente un coût important, mais celui-ci est compensé par une meilleure finition du produit et une hausse de la satisfaction utilisateur
- Les gains de productivité liés à l’accélération des tests, à des messages d’erreur plus clairs et à des workflows raccourcis perdurent sur le long terme
-
« Ce n’est pas une méthode réservée aux grandes entreprises ? »
- Même une petite équipe peut l’adapter avec un « Fixit Friday » ou un mini Fixit de 2 jours
- L’essentiel est de disposer de temps protégé et concentré ainsi que d’un effort d’amélioration collectif
La valeur fondamentale de Fixit
- L’objectif officiel est d’améliorer la qualité du produit et la productivité des développeurs
- La raison officieuse est « le plaisir de réparer quelque chose »
- Fixit est présenté comme un élément essentiel pour raviver la satisfaction des périodes plus simples et préserver une culture de fabrication produit attentive aux détails
2 commentaires
Cela me rappelle la culture « pit stop » de Baemin. J’ai entendu dire qu’elle n’existe plus aujourd’hui.
Commentaires sur Hacker News
J’aime bien l’idée, mais la phrase « un bug ne devrait pas prendre plus de 2 jours » me paraît étrange
En pratique, il est presque impossible de prédire combien de temps cela prendra avant d’avoir corrigé le bug
Cela dit, sauf si un gros refactoring est nécessaire, je pense que ça dépasse rarement une journée
En général, je traite les bugs selon leur gravité ou leur priorité. Plus un bug est grave, plus il est souvent facile à trouver de manière surprenante
Une fois la cause identifiée, la résolution est rapide
Nous avons analysé les logs pendant des années sans trouver la cause, avant de découvrir qu’il était reproductible à 100 % avec une combinaison précise d’état de la base et de commit
Après avoir signé un NDA, nous avons créé un binaire de reproduction minimal et automatisé le tout avec un script PowerShell, et Microsoft l’a corrigé en un mois
En interne, cela ressemblait à un buffer overflow, mais je n’en suis pas certain
Si on passait toute une semaine à corriger des bugs sans accumuler de story points dans Jira, plusieurs managers débarquaient pour demander pourquoi la vélocité baissait
La leçon que j’en ai tirée, c’est qu’il vaut mieux éviter les bugs difficiles et abandonner tôt les tâches qui ne rapportent pas de points
Impossible de savoir si le problème vient du code, du compilateur ou du matériel, et les bugs composites dus à plusieurs facteurs entremêlés sont parfois impossibles à reproduire isolément
Dans ce genre de cas, l’accumulation de rustines rapides finit plus tard par transformer une vraie correction de bug en rework massif
Et dans des environnements à faible confiance, même un bug mineur ne peut pas être corrigé immédiatement à cause des procédures Jira
Quand je travaillais chez Meta, on faisait une Fix-it Week chaque trimestre
Au début, je pensais que la direction se souciait de la qualité, mais en réalité c’était plutôt une période autorisée pour accumuler de la dette technique
On essayait de corriger des bugs pendant une semaine, mais avec toute la dette déjà accumulée, on ne résolvait presque rien
Sinon, du nouveau code s’empile sur le bug et cela devient une base instable
La vidéo de conférence de John Romero insiste sur la même philosophie
Les développeurs y traitaient les TODO laissés plus tôt et augmentaient le nombre de LOC, et certains allaient jusqu’à écrire volontairement du mauvais code pour le « corriger » plus tard afin de gonfler artificiellement le nombre de diffs
Autrement dit, un moment pour traiter des problèmes non urgents mais agaçants
Il est plus important que la direction explique honnêtement les priorités business et montre clairement l’impact des bugs sur les utilisateurs
J’ai déjà vécu le cercle vicieux où, pendant le développement de fonctionnalités, les urgences et les changements de priorité se répétaient sans cesse
Au final, le système devient rempli de contournements, et ni les clients ni les développeurs n’en sont satisfaits
Dans ce genre de situation, on se dit qu’il aurait mieux valu tout arrêter dès le départ pour faire une correction de fond
La communication se coupe, et les dirigeants s’agitent dans tous les sens en se contentant de donner des ordres
Les développeurs deviennent les pompiers de tous les problèmes, et la fuite finit par être la seule solution
Plus la vitesse baisse, plus les dirigeants paniquent et réaffectent le projet dans tous les sens, ce qui nourrit le chaos et une culture toxique
J’ai toujours travaillé avec la philosophie « la correction des bugs d’abord »
Si les fonctionnalités existantes ne marchent pas correctement, je n’en développe pas de nouvelles
Cela permet de maintenir une base de code sans bugs et d’améliorer la productivité de l’équipe
Surtout en frontend, avec les problèmes liés à la diversité des environnements, un état totalement sans bug est presque impossible
Et comme la définition d’un « bug » est floue, il arrive aussi que des managers classent comme bug une fonctionnalité qu’ils veulent
Par exemple, une erreur sur une page d’API presque jamais utilisée peut être moins importante qu’une nouvelle fonctionnalité
La plupart sont mineurs, donc la direction préfère les nouvelles fonctionnalités
J’exploite un petit produit SaaS et je respecte le principe « corriger les bugs en priorité »
Je résous d’abord les bugs signalés par les clients avant de travailler sur de nouvelles fonctionnalités
Avec cette approche, le nombre de nouveaux bugs découverts diminue progressivement et les corrections deviennent plus simples
D’un point de vue business, ce n’est peut-être pas optimal, mais du point de vue de la qualité et de la confiance des clients, c’est la meilleure stratégie
Les clients adorent quand un bug qu’ils ont signalé est corrigé en quelques heures
Des dispositifs comme la Fix-it Week encouragent au contraire à retarder la correction des bugs
Cela crée l’excuse : « on fera ça plus tard pendant la Fix-it Week »
À la place, il vaudrait mieux inclure explicitement du temps de maintenance dans la planification trimestrielle ou des sprints
Cela donne aux développeurs une légitimité pour corriger les bugs immédiatement et installe une culture d’amélioration continue
La Fix-it Week serait mieux utilisée comme une mini-hackathon avec de petites améliorations ou des POC
Dans une ancienne entreprise, on répétait toujours le même cycle
Ce schéma était le signe d’une culture d’entreprise défaillante. Tant qu’on ne réserve pas du temps pour corriger les bugs au quotidien, rien ne change
Cela m’a rappelé le Joel Test proposé autrefois par Joel Spolsky
Sa cinquième question était : « Corrigez-vous les bugs avant d’écrire du nouveau code ? »
Vingt-cinq ans plus tard, cela reste un critère toujours pertinent
Lien vers le texte original
Je suis d’avis qu’il ne faut pas attribuer de score ni d’estimation de taille aux bugs
S’il faut vraiment leur donner un score, autant mettre 2 partout, ce sera juste en moyenne
La correction de bugs doit être gérée en mode Kanban, en les traitant par ordre d’importance et en les terminant dans le temps imparti
Je suis l’auteur du billet. Je suis ravi de voir une discussion aussi animée
Ce n’était pas un substitut à l’hygiène technique ni à la résolution de gros problèmes