Diagrammes et Modèles 2
Systems #2
[models, systems]
— 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
— 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 !