Complexité et systèmes
opérables
Fred Hebert
Operator Experience
SYSTEMANTICS SAY
• A simple system may or may not work
• A complex system that works is
invariably found to have evolved from a
small system that worked
• A complex system designed from scratch
never works and cannot be made to
work. You have to start over, beginning
with a simple working system
• A large system, produced by expanding
the dimensions of a smaller system, does
not behave like the smaller system
Monitoring: comment ça va?
Observabilité: qu’est-ce que tu fais?
Observabilité: version programmeur
HTTPS://WWW.MAPSINTERNATIONAL.CO.UK/A-Z-CANVAS-LONDON-STREET-MAP.HTML
HTTP://MERCNET.ME/SIMPLE-LONDON-MAP/TOURIST-ATTRACTIONS-IN-LONDON-MAP-MAPS-TOP-FREE-PRINTABLE-CITY-SIMPLE-6/
HTTPS://TFL.GOV.UK/MAPS/TRACK/TUBE
CONTEXT IS CRITICAL
HTTPS://EN.WIKIPEDIA.ORG/WIKI/FILE:HILLS-DECARO-HOUSE-FIRST-FLOOR-PLAN.JPG
HTTPS://EN.WIKIPEDIA.ORG/WIKI/FILE:HILLS-DECARO-HOUSE-FIRST-FLOOR-PLAN.JPG
A SOFTWARE ENGINEER’S HOUSE
-1: on voit rien
de côté
fenêtre porteuse:
ne pas ouvrir
// TODO: remplacer par version
// plus fiable
// - @fred (2009)
bug possible, ajouter
plus de visibilité ici
DOING IT RIGHT?
BREAKING THROUGH LAYERS OF ABSTRACTION
SYSTEMANTICS SAY
• Crucial variables are discovered by
accident
• When everything correlates with
everything else, things will never settle
down
• A system is no better than its sensory
organs
• The meaning of a communication is the
behaviour that results
Comment structurer son observabilité
• Choisir des formats lisibles, mais outillables
• Un humain doit pouvoir lire le format “raw” ou avoir des outils pour le faire
• Un opérateur doit pouvoir écrire ses propres outils qui utilisent les données
• Différencier entre niveaux d’information et “Chemins logiques” à
suivre
• S’en tenir aux faits
• Éviter de faire une extrapolation générale dans les logs avec une information
locale seulement
• Être conscient que la relation entre un opérateur et un système est
une relation de confiance
THROUGH AUTOMATION, ALL PAINS ARE POSSIBLE
THROUGH AUTOMATION, ALL PAINS ARE POSSIBLE
Loi de la Variété Requise
• L’état cible d’un système peut être perturbé par des événements de
haute variété
• L’état d’un système ne peut être que corrigé que par des actions qui
balancent les événements de haute variété, menant à une réduction
des perturbations
• On ne peut que modéliser et contrôler un système complexe à haute
variabilité si le composant qui le contrôle a une variété interne
supérieure ou égale des états représentables.
• La complexité du mécanisme de contrôle peut représenter une limite
supérieure à son habileté à accomplir ses tâches.
THROUGH AUTOMATION, ALL PAINS ARE POSSIBLE
THROUGH AUTOMATION, ALL PAINS ARE POSSIBLE
What teams do
To be a team player, an agent must fulfill […] an agreement to work
together in a coordinated fashion and to communicate events and
changes in status that the other parties need to know in order to
coordinate.
[…] It must also understand and accept the joint goals of the enterprise,
understand and accept its roles in the collaboration, be capable of
signaling if it is unable or unwilling to fully participate in the activity,
and be capable of understanding other team members’ signals of their
status and changes in participation.
COMMON GROUND AND COORDINATION IN JOINT ACTIVITY - GARY KLEIN, PAUL J. FELTOVICH, JEFFREY MARK BRADSHAW, DAVID D WOODS
SYSTEMANTICS SAY
• Extra brain in tail, tail wags on own
schedule
• The system itself does not do what it
says it is doing
• Control is exercised by the element with
the greatest variety of behavioral
responses
• If it’s worth doing at all, it’s worth doing
poorly
Évaluer son Model par Proxy
• Les property tests permettent d’écrire un modèle
qui est vérifié en le comparant au vrai système
• Si vous avez du mal à trouver un mon modèle
qui expose des propriétés pratiques, vos
opérateurs vont aussi en avoir
• Autres approches qui peuvent aider: validation
formelle (TLA+), documentation
• Proxy semblable à la couverture de code et
la qualité des tests
Mettre en pratique
• Ne pas utiliser de débuggueur et plutôt favoriser les outils de
production en dev
• À chaque fois que vous utilisez un “printf” en debug, posez-vous la
question sur pourquoi vous n’utilisez pas un outil qui existe déjà
• Si l’outil n’existe pas au niveau où vous en avez besoin, demandez-vous si on
un opérateur en aurait besoin
Questions?
https://www.genetec.com/fr/à-propos/carrières

Complexité et systèmes opérables - Fred Hébert

  • 1.
    Complexité et systèmes opérables FredHebert Operator Experience
  • 7.
    SYSTEMANTICS SAY • Asimple system may or may not work • A complex system that works is invariably found to have evolved from a small system that worked • A complex system designed from scratch never works and cannot be made to work. You have to start over, beginning with a simple working system • A large system, produced by expanding the dimensions of a smaller system, does not behave like the smaller system
  • 9.
  • 10.
  • 11.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
    A SOFTWARE ENGINEER’SHOUSE -1: on voit rien de côté fenêtre porteuse: ne pas ouvrir // TODO: remplacer par version // plus fiable // - @fred (2009) bug possible, ajouter plus de visibilité ici
  • 22.
  • 23.
  • 24.
    SYSTEMANTICS SAY • Crucialvariables are discovered by accident • When everything correlates with everything else, things will never settle down • A system is no better than its sensory organs • The meaning of a communication is the behaviour that results
  • 25.
    Comment structurer sonobservabilité • Choisir des formats lisibles, mais outillables • Un humain doit pouvoir lire le format “raw” ou avoir des outils pour le faire • Un opérateur doit pouvoir écrire ses propres outils qui utilisent les données • Différencier entre niveaux d’information et “Chemins logiques” à suivre • S’en tenir aux faits • Éviter de faire une extrapolation générale dans les logs avec une information locale seulement • Être conscient que la relation entre un opérateur et un système est une relation de confiance
  • 26.
    THROUGH AUTOMATION, ALLPAINS ARE POSSIBLE
  • 27.
    THROUGH AUTOMATION, ALLPAINS ARE POSSIBLE
  • 28.
    Loi de laVariété Requise • L’état cible d’un système peut être perturbé par des événements de haute variété • L’état d’un système ne peut être que corrigé que par des actions qui balancent les événements de haute variété, menant à une réduction des perturbations • On ne peut que modéliser et contrôler un système complexe à haute variabilité si le composant qui le contrôle a une variété interne supérieure ou égale des états représentables. • La complexité du mécanisme de contrôle peut représenter une limite supérieure à son habileté à accomplir ses tâches.
  • 29.
    THROUGH AUTOMATION, ALLPAINS ARE POSSIBLE
  • 30.
    THROUGH AUTOMATION, ALLPAINS ARE POSSIBLE
  • 31.
    What teams do Tobe a team player, an agent must fulfill […] an agreement to work together in a coordinated fashion and to communicate events and changes in status that the other parties need to know in order to coordinate. […] It must also understand and accept the joint goals of the enterprise, understand and accept its roles in the collaboration, be capable of signaling if it is unable or unwilling to fully participate in the activity, and be capable of understanding other team members’ signals of their status and changes in participation. COMMON GROUND AND COORDINATION IN JOINT ACTIVITY - GARY KLEIN, PAUL J. FELTOVICH, JEFFREY MARK BRADSHAW, DAVID D WOODS
  • 32.
    SYSTEMANTICS SAY • Extrabrain in tail, tail wags on own schedule • The system itself does not do what it says it is doing • Control is exercised by the element with the greatest variety of behavioral responses • If it’s worth doing at all, it’s worth doing poorly
  • 33.
    Évaluer son Modelpar Proxy • Les property tests permettent d’écrire un modèle qui est vérifié en le comparant au vrai système • Si vous avez du mal à trouver un mon modèle qui expose des propriétés pratiques, vos opérateurs vont aussi en avoir • Autres approches qui peuvent aider: validation formelle (TLA+), documentation • Proxy semblable à la couverture de code et la qualité des tests
  • 34.
    Mettre en pratique •Ne pas utiliser de débuggueur et plutôt favoriser les outils de production en dev • À chaque fois que vous utilisez un “printf” en debug, posez-vous la question sur pourquoi vous n’utilisez pas un outil qui existe déjà • Si l’outil n’existe pas au niveau où vous en avez besoin, demandez-vous si on un opérateur en aurait besoin
  • 35.