— Où est-ce qu’on en était ?
— On a identifié 2 agrégats dans le système formé par ton équipe de développement, dénotés par 2 variables facile à observer, et même à dénombrer :

  • les CHANGEMENTS apportés au logiciel
  • les rapports d’INCIDENTS

— D’accord.
— Plus on apporte de changements, plus on a de risque de recevoir des rapports d’incidents. Plus on a d’incidents, plus on apporte des changements.
— Et où est-ce qu’on va avec ça ?
— On va, on va… essayer de creuser ton problème si tu veux bien t’accrocher un peu. On cherche d’autres aggrégats. Qu’est-ce qui ferait qu’on aurait beaucoup plus d’incidents pour un nombre de changements pas plus élevé ?
— Facile : si on produisait plus de bugs.
— C’est à dire ? Un exemple ?
— Le logiciel ne se comporte pas comme attendu. Exemple, ticket #4802: “Null Pointer Exception”.
— Pour qu’il y ait un incident, il faut donc un DYSFONCTIONNEMENT, c’est à dire un comportement résultant d’un changement et qui ne répond pas à une ATTENTE. On a 2 nouveaux agrégats :\

  • un changement sur la conception peut créer un DYSFONCTIONNEMENT
  • si ce comportement ne matche pas une ATTENTE, alors on peut avoir, après un certain délai, un rapport d’INCIDENT

— Soit.
— Donc un incident, c’est la rencontre entre une attente et un dysfonctionnement du système.\

CHANGEMENTS → DYSFONCTIONNEMENTS —&—|D|→ INCIDENTS
ATTENTES —&—|D|→ INCIDENTS
INCIDENTS → CHANGEMENTS

système — Oui mais non : tous les tickets ne sont pas des bugs. Prend celui-ci, #4807 : “La somme des arrondis doit être égal à l’arrondi de la somme. Veuillez revoir”. On a un défaut de calcul, on attendait l’application de cette règle. C’est juste qu’on ne le “savait” pas encore. Ce n’était écrit nulle part.
— On ne peut pas tout décrire à l’avance. Un autre exemple ?
— “La requête prend trop de temps”. Bien sûr ! Cet utilisateur a lancé une requête qui fait le produit de 2 longues tables !
— On a un comportement correct, mais vu comme un dysfonctionnement, du fait d’une attente irréaliste.
— Et celui-là : “Pourriez vous ajouter les pourcentages…”, ce n’est pas un incident.
— Là on a un comportement correct, et une nouvelle attente, en quelque sorte.
— Bon. Qu’est-ce qu’on tire de tout ça ?
— Plusieurs choses :

ATTENTES et DYSFONCTIONNEMENTS ne sont pas des agrégats aussi facile à dénombrer que les 2 premiers, parce qu’on ne peut pas compter ce que l’on ne connaît pas encore. On va les représenter avec une forme spéciale, par ex. un nuage.

Il y a différentes sources d’incidents :

  • dysfonctionnement (null pointer exception ?!)
  • attentes incomprises (et l’arrondi ?)
  • fonctionnement incompris (requête irréaliste)
  • nouvelles attentes (svp des pourcentages)

Dans chaque cas, on en apprend plus sur les dysfonctionnements et/ou les attentes.

En somme tes incidents sont comme un révélateur en photo (argentique) : c’est une fois la photo révélée qu’on identifie les défauts…
— Oui. Le problème c’est que la révélation arrive un peu tard !

Stay Tuned !

publié sur Linked In le 27/06/2023