Variation et cartes de contrôle¶
Tout ce rapport repose sur une idée formulée par Walter Shewhart dans les années 1920 aux Bell Telephone Laboratories : tout processus varie, et la question utile n'est pas « pourquoi ce résultat est-il différent du précédent ? » mais « cette différence est-elle habituelle ? ». Ce chapitre pose les définitions dont toutes les parties suivantes ont besoin.
Deux sortes de variation¶
L'intuition¶
Chronométrez dix fois votre trajet domicile-travail. Vous n'obtiendrez jamais deux fois la même durée : un feu rouge de plus, un piéton, un bus devant vous. Cette variation n'a pas de cause unique identifiable ; elle est faite d'une multitude de petites causes toujours présentes. Un jour, vous mettez vingt minutes de plus : un accident a fermé une voie. Cette variation-là a une cause, identifiable, qui n'est pas toujours présente.
Les définitions¶
Shewhart parlait de causes aléatoires et de causes assignables. W. Edwards Deming, son disciple, a popularisé les termes encore utilisés aujourd'hui :
| Terme | Définition | Exemple logiciel |
|---|---|---|
| Cause commune | Source de variation inhérente au processus tel qu'il est conçu, présente en permanence | Le bruit de mesure d'un benchmark ; le non-déterminisme d'un modèle de langage |
| Cause spéciale (ou assignable) | Source de variation extérieure au fonctionnement habituel, identifiable, ponctuelle ou nouvelle | Un runner de CI plus lent ; une nouvelle version de modèle ; un prompt modifié |
| Processus maîtrisé (in control) | Processus dont la variation ne provient que de causes communes | Une suite de tests dont la durée fluctue autour d'une valeur stable |
Erreur fréquente : « maîtrisé » ne veut pas dire « bon »
Un processus maîtrisé est un processus prévisible, pas un processus satisfaisant. Un agent qui réussit de façon stable 60 % de ses tâches est parfaitement maîtrisé. Pour l'améliorer, il faut changer le système (meilleur modèle, meilleurs outils, meilleures instructions) ; chercher une cause spéciale à chaque échec est inutile, puisque les échecs font partie de son fonctionnement normal.
Les deux erreurs possibles¶
Face à un résultat inhabituel, on peut se tromper de deux façons :
- Traiter une cause commune comme une cause spéciale : on cherche un coupable là où il n'y a que du bruit, et on « corrige » le processus. Deming a montré que cette réaction aggrave la variation (voir Pièges).
- Traiter une cause spéciale comme une cause commune : on laisse passer un vrai changement en le prenant pour du bruit.
Il est impossible d'éliminer les deux erreurs à la fois. La carte de contrôle est un outil pour choisir le compromis entre les deux.
La carte de contrôle¶
Le principe¶
Une carte de contrôle est un graphique chronologique des mesures d'un processus, sur lequel on trace :
- une ligne centrale, la moyenne du processus ;
- une limite de contrôle supérieure et une limite inférieure, placées à trois écarts-types de part et d'autre de la ligne centrale.
Un point hors des limites est un signal : il est peu probable qu'il soit dû aux seules causes communes, et il justifie une recherche de cause.
Pourquoi trois écarts-types¶
Le choix de Shewhart est économique, pas mathématique. Pour une variable gaussienne, la probabilité qu'un point tombe à plus de trois écarts-types de la moyenne est :
où \(Z\) est la mesure standardisée (centrée sur la moyenne et divisée par l'écart-type) et \(\Phi\) la fonction de répartition de la loi normale centrée réduite. Autrement dit, un processus parfaitement maîtrisé déclenche une fausse alarme environ une fois tous les 370 points. Shewhart a jugé empiriquement que c'était un bon équilibre entre enquêtes inutiles et signaux manqués.
La notion d'ARL¶
L'ARL (Average Run Length, longueur moyenne de séquence) est le nombre moyen de points tracés avant la première alarme. C'est l'unité de mesure de toute règle de détection, et elle se décline en deux valeurs :
| Notation | Signification | On veut |
|---|---|---|
| \(\text{ARL}_0\) | Nombre moyen de points avant une alarme quand rien n'a changé | Grand (peu de fausses alarmes) |
| \(\text{ARL}_1\) | Nombre moyen de points avant une alarme après un vrai changement | Petit (détection rapide) |
Pour la seule règle « un point au-delà de 3σ », \(\text{ARL}_0 = 1/0{,}0027 \approx 370\). Le script de vérification (§1 et §2) le confirme par simulation, et calcule qu'après un décalage durable de la moyenne d'un écart-type, cette même règle met en moyenne 44 points à le détecter. C'est lent — et c'est pour accélérer cette détection que les règles de Western Electric ont été inventées (chapitre suivant).
La carte XmR : la carte du logiciel¶
Le problème¶
Dans l'industrie, on mesure souvent des sous-groupes : cinq pièces prélevées toutes les heures. Dans le logiciel, on a plutôt une mesure à la fois : la durée d'un build, le temps de cycle d'un ticket. Il faut alors une carte pour valeurs individuelles.
La construction¶
La carte XmR (valeurs individuelles et étendues mobiles), popularisée par Donald Wheeler sous le nom de process behavior chart, procède ainsi :
- calculer la moyenne \(\bar{x}\) des valeurs ;
- calculer les étendues mobiles : la valeur absolue de la différence entre chaque point et le précédent, \(\text{mR}_i = |x_i - x_{i-1}|\) ;
- calculer leur moyenne \(\overline{\text{mR}}\) ;
- placer les limites naturelles du processus :
Le coefficient 2,66 vient de \(3 / d_2\), où \(d_2 \approx 1{,}128\) est la constante qui relie l'étendue moyenne de deux valeurs gaussiennes à leur écart-type. On peut aussi tracer une seconde carte, celle des étendues mobiles, dont la limite supérieure vaut \(3{,}268 \times \overline{\text{mR}}\).
Pourquoi les étendues mobiles et pas l'écart-type global
L'écart-type de toutes les données mélange la variation de court terme (le bruit) et les éventuels changements de niveau (le signal). Si le processus a changé en cours de série, l'écart-type global grossit, les limites s'élargissent, et le changement devient invisible. Les étendues mobiles, elles, ne mesurent que la variation d'un point au suivant : un changement de niveau ne les affecte qu'une fois. C'est ce qui rend la carte XmR capable de détecter un changement dans les données mêmes qui servent à calculer ses limites.
C'est aussi la faiblesse de la « carte de contrôle » de Jira, qui trace une bande d'écart-type global (voir Temps de cycle).
Les cartes pour les proportions et les comptages¶
Beaucoup de mesures du développement ne sont pas des grandeurs continues :
| Carte | Mesure | Exemple |
|---|---|---|
| Carte p | Proportion de « défectueux » dans un lot de taille \(n\) | Part des runs d'agent qui échouent aux tests, par lot de 50 |
| Carte c | Nombre de défauts par unité, unités de taille constante | Nombre d'erreurs d'outils par run |
| Carte u | Nombre de défauts par unité de taille, taille variable | Défauts par millier de lignes modifiées |
Pour la carte p, si \(\bar{p}\) est la proportion moyenne et \(n\) la taille du lot, les limites sont :
La largeur dépend de \(n\) : avec des petits lots, les limites sont très larges et la carte ne détecte que des changements énormes. C'est le point central du chapitre Mesurer un agent.
À retenir
- La variation a deux sources : les causes communes, toujours là, et les causes spéciales, qui signalent un changement.
- Une carte de contrôle place des limites à 3σ : environ une fausse alarme tous les 370 points sur un processus gaussien maîtrisé.
- L'ARL mesure toute règle de détection : grand quand rien ne change, petit après un changement.
- Pour le logiciel, la carte de référence est la XmR, qui estime la dispersion par les étendues mobiles ; pour les taux de réussite, c'est la carte p.