heygrc
Ingénieriethe heygrc team

Les faux positifs sont la seule métrique qui compte pour un bot de conformité

Un relecteur qui crie au loup est ignoré, et un relecteur ignoré ne détecte rien. Pour un outil de conformité, la précision est l'enjeu principal.

Il existe un mode de défaillance qui tue les relecteurs automatisés, et ce n'est pas le fait de manquer un vrai problème. C'est de signaler un faux problème. La première fois qu'un outil indique à un ingénieur que son changement n'est pas conforme et qu'il a tort, l'ingénieur perd quelques minutes. La deuxième fois, il commence à douter de l'outil. À la cinquième, il ignore systématiquement ses commentaires, y compris celui qui était juste.

Pour un relecteur de conformité, c'est l'enjeu central. Un bot ignoré ne détecte rien, donc la seule métrique qui compte vraiment est la fréquence à laquelle il a tort.

Un faux positif coûte plus cher que sa taille ne le laisse penser

Un faux positif ne vous coûte pas un seul commentaire ignoré. Il vous coûte la crédibilité de tous les commentaires suivants. La confiance dans un relecteur automatisé n'est pas additive, c'est une réputation, et une réputation se détruit plus vite qu'elle ne se construit. Un relecteur qui a tort même une petite fraction du temps n'est pas 'plutôt bon' : c'est une source constante de commentaires qui apprennent à votre équipe à cesser de les lire.

C'est pourquoi un outil de conformité ne peut pas considérer le rappel comme le chiffre principal. Détecter davantage n'a aucune valeur si la détection est si bruyante que les gens finissent par l'ignorer.

La conformité est plus difficile à maîtriser que les bugs

Un signalement de bug est vérifiable : le relecteur peut souvent voir si le code est incorrect. Un signalement de conformité demande au relecteur de faire confiance à une deuxième chose qu'il ne peut pas voir directement : la correspondance entre ce changement et un contrôle dans un cadre normatif. 'Cela semble non conforme' est invérifiable et donc sans valeur : c'est le type de sortie vague qui habitue les gens à ignorer l'outil.

La seule façon de rendre un signalement de conformité vérifiable est de citer le contrôle exact, au bon niveau de granularité, afin que l'ingénieur puisse vérifier la réclamation. Une constation qui indique 'ISO 27001:2022 A.8.15' peut être consultée et confirmée. Une constation qui indique 'améliore votre posture de conformité' ne peut pas l'être, et ne devrait jamais être publiée.

Notre approche

Deux engagements découlent de cela. Premièrement, chaque constation soulevée par heygrc mentionne la clause de contrôle spécifique, afin qu'elle soit vérifiable plutôt que basée sur une impression. Deuxièmement, nous privilégions la précision, c'est-à-dire la rareté des erreurs dans les constations, plutôt que de poursuivre un chiffre de rappel vaniteux, car un relecteur de conformité qui inspire confiance vaut mieux qu'un relecteur qui signale tout. Nous préférons dire moins et avoir raison que de signaler davantage et être ignorés.

Un relecteur de conformité bruyant est pire que l'absence de relecteur, car au moins ce dernier n'habitue pas votre équipe à ignorer le prochain avertissement. heygrc est conçu pour être discret, précis et juste, et nous le tenons à cette exigence.

evalsfalse-positivestrustcode-review