Aller au contenu

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 :

\[ 1 - \left(1 - \frac{1}{\text{ARL}_0}\right)^m \]

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