Les pièges statistiques¶
Les règles de Western Electric ont été calibrées pour des mesures gaussiennes, indépendantes, sur une carte, par des équipes qui n'ajustaient pas le processus sans cause. Les mesures du développement logiciel violent souvent ces quatre conditions. Ce chapitre mesure ce que chaque violation coûte, avec le script de vérification.
1. L'asymétrie¶
Le problème¶
Les durées (temps de cycle, durée de build, durée d'un run d'agent) et les comptages (tokens, appels d'outils) sont presque toujours asymétriques à droite : bornés à zéro d'un côté, avec une longue traîne de valeurs extrêmes de l'autre.
Ce que ça coûte¶
Le script (§3) applique une carte XmR à 200 000 points sans aucun changement de processus :
| Données | Règle 1 seule | Règles 1 à 4 de Western Electric |
|---|---|---|
| Gaussiennes | 0,29 % des points | 1,86 % |
| Log-normales (σ = 1) | 3,38 % | 9,34 % |
| Logarithme des log-normales | 0,26 % | 1,83 % |
Deux leçons :
- la règle 1 seule est relativement robuste : elle sonne une douzaine de fois trop souvent sur des données très asymétriques, mais reste sous 4 %. Wheeler défend cette robustesse de la carte XmR pour des distributions modérément asymétriques ;
- les règles de séquences ne le sont pas, parce qu'elles supposent qu'un point a autant de chances de tomber au-dessus qu'en dessous de la moyenne. Dans une loi asymétrique à droite, la médiane est sous la moyenne.
Le remède
Pour une grandeur strictement positive et asymétrique, tracer la carte sur son logarithme. Le comportement redevient exactement celui de référence. Les limites se reconvertissent en unités d'origine par exponentielle (elles deviennent asymétriques, ce qui est correct).
Pourquoi les pourcentages de points ne sont pas 1/ARL
Pour des données gaussiennes, l'ARL des quatre règles est 91,75, ce qui ferait 1,09 % de points en alarme. Le tableau en compte 1,86 %. La différence vient du fait que les alarmes des règles de séquences s'enchaînent : quand 8 points de suite sont du même côté, le 9e l'est souvent aussi, et la règle sonne à nouveau. L'ARL compte le délai avant la première alarme ; le pourcentage compte toutes les alarmes.
2. L'autocorrélation¶
Le problème¶
Une série est autocorrélée quand chaque valeur dépend de la précédente. La durée d'un build dépend de l'état du cache, qui dépend du build précédent ; la latence d'un service dépend de la charge, qui évolue lentement.
Ce que ça coûte¶
Le script (§3) simule une série autoregressive d'ordre 1 de coefficient 0,7 (chaque valeur vaut 0,7 fois la précédente plus un bruit) :
- règle 1 seule : 10 % des points en alarme ;
- quatre règles de Western Electric : 41 %.
La carte devient inutilisable. La cause : les étendues mobiles mesurent la différence entre points voisins, que l'autocorrélation rend petite. Les limites sont trop serrées.
Limite importante
L'autocorrélation est la violation la plus grave des quatre, et la plus fréquente dans les métriques d'infrastructure. Les remèdes sont plus lourds : tracer la carte sur les résidus d'un modèle de série temporelle, espacer les mesures, ou passer à la détection de points de rupture comme l'ont fait MongoDB, Mozilla et Chromium (voir Intégration continue).
3. La multiplication des cartes¶
Le problème¶
Un orchestrateur d'agents expose facilement trente métriques. Si chacune a sa carte, les fausses alarmes s'additionnent.
Ce que ça coûte¶
Avec \(m\) cartes indépendantes d'ARL en contrôle \(\text{ARL}_0\), la probabilité d'au moins une fausse alarme par point est :
Le script (§6), avec un point par jour :
| Nombre de cartes | Règle 1 seule | Règles 1 à 4 |
|---|---|---|
| 1 | Une fausse alarme tous les 370 jours | Tous les 92 jours |
| 10 | Tous les 37 jours | Tous les 10 jours |
| 30 | Tous les 13 jours | Tous les 3,6 jours |
Une équipe qui reçoit une fausse alarme tous les trois jours cesse d'enquêter au bout de deux semaines. C'est l'histoire des tests instables de Google, où 84 % des passages au rouge étaient des fausses alarmes (voir Intégration continue).
Le remède
Moins de cartes, moins de règles par carte. Réserver les quatre règles à deux ou trois caractéristiques critiques ; sur les autres, la règle 1 seule, ou une carte CUSUM réglée pour un ARL en contrôle élevé (chapitre précédent).
4. Le sur-ajustement (l'entonnoir de Deming)¶
L'expérience¶
Deming illustrait le danger de corriger un processus maîtrisé avec l'expérience de l'entonnoir : on lâche des billes à travers un entonnoir au-dessus d'une cible, et on note où elles tombent. Plusieurs stratégies de correction sont comparées :
- règle 1 : ne jamais bouger l'entonnoir ;
- règle 2 : après chaque bille, déplacer l'entonnoir de l'écart observé, en sens inverse, pour « compenser ».
Ce que ça coûte¶
Le script (§7) simule la règle 2 : la variance des positions double exactement (rapport mesuré : 2,00). Compenser un écart aléatoire ajoute la variance de la correction à celle du processus.
La forme logicielle du sur-ajustement
- modifier un prompt système après chaque réponse décevante ;
- ajouter une clause à un skill après chaque échec d'un agent ;
- changer de modèle parce que le dernier run a raté ;
- relancer un benchmark jusqu'à obtenir un « bon » chiffre et ajuster le seuil en conséquence.
Chacune de ces réactions traite une cause commune comme une cause spéciale. La partie Skills y revient en détail.
5. La loi de Goodhart¶
Dernier piège, social plutôt que statistique : une mesure qui devient un objectif cesse d'être une bonne mesure. Pour une carte de contrôle, cela signifie qu'une caractéristique surveillée ne doit pas devenir une cible individuelle — ni pour une équipe humaine (le DORA le rappelle pour ses propres métriques), ni, surtout, pour un agent entraîné à optimiser ce qu'on mesure (voir Causes spéciales propres aux agents).
À retenir
| Piège | Effet mesuré | Remède |
|---|---|---|
| Asymétrie | Règles 1-4 : de 1,9 % à 9,3 % de points en alarme | Logarithme |
| Autocorrélation | Règles 1-4 : 41 % de points en alarme | Résidus ou détection de rupture |
| Multiplication | 30 cartes : fausse alarme tous les 3,6 jours | Moins de cartes et de règles ; CUSUM |
| Sur-ajustement | Variance ×2 | Ne corriger qu'après une cause trouvée |
| Goodhart | Mesure manipulée | Mesure hors de portée du producteur |