Un moteur de règles incapable de dire quelle règle s’est déclenchée, c’est une humeur.
L’automatisation de Zenith est conçue pour être lue avant qu’on lui fasse confiance. Les tables de décision répondent par des lignes que vous pouvez montrer du doigt. Les flux de travail sont publiés en versions figées et numérotées, et une exécution en cours se termine selon les règles avec lesquelles elle a commencé. Les modèles nomment chaque variable qu’ils n’ont pas pu remplir. Et là où le moteur n’exécute pas encore quelque chose, l’écran le dit clairement.
Bilingue FR / EN · Multisite · WCAG 2.2 AASix choses qu’une personne met par écrit
L’automatisation fait ses preuves dans les mois qui suivent sa mise en place, quand une autre personne doit comprendre pourquoi elle a fait ce qu’elle a fait. Chaque interface ici est conçue pour cette deuxième conversation plutôt que pour le premier après-midi.
Tables de décision
Des règles en lignes, lues de haut en bas. La première ligne dont toutes les conditions sont remplies décide, et les lignes suivantes ne sont pas consultées — c’est ce qui rend la table vérifiable.
Flux de travail
Un graphique visuel de neuf types de nœuds — début, processus, approbation, décision, affectation, automatisation, notification, attente, fin — chacun avec une clé d’étape comme P2 ou D1 qui reste stable une fois attribuée.
Modèles de notification
Les mots que l’automatisation envoie, gérés par les administrateurs plutôt que par les développeurs, en français et en anglais dès la première frappe.
La boîte de réception
Ce que le système avait à vous dire — rendu au moment de l’envoi selon l’état des registres à ce moment-là : chaque entrée est un dossier plutôt qu’une requête en direct qui se réécrit.
Versions
La publication prend un instantané figé et numéroté et laisse l’ébauche exactement telle qu’elle était. Publier, c’est prendre un instantané, pas passer la main.
Simulation
Demandez à une table ce qu’elle déciderait, et parcourez un graphique avec des données d’exemple — avant de confier un vrai trafic à l’un ou à l’autre.
« Pourquoi cette demande est-elle sortie Urgente? »
Cette question mérite exactement une réponse, et une table de décision est la forme qui la donne : les lignes se lisent de haut en bas, la première dont toutes les conditions sont remplies décide, et la décision nomme la ligne qui l’a prise. Des règles qu’un planificateur peut lire sans programmeur, et contester sans réunion.
- La réponse nomme sa ligne — « décidé par la ligne 2 », ou « aucune ligne ne correspond, la valeur par défaut a répondu », ou simplement « aucune décision » quand il n’y a ni l’un ni l’autre.
- L’ordre est la règle; déplacer une ligne est donc une décision — les lignes se déplacent avec des flèches plutôt qu’en glissant au petit bonheur, parce que l’ordre est le sens.
- Une nouvelle ligne correspond à tout — visiblement trop large, elle est donc modifiée plutôt qu’oubliée discrètement au milieu de la table.
- Les réponses proviennent d’un ensemble fermé — une ligne ne peut pas inventer un résultat que personne n’a listé; c’est ainsi que « Urgent » et « urgent » cessent d’être deux priorités.
Une approbation commencée sous la v1 se termine sous la v1
Changer les règles en cours de route, c’est ainsi qu’une approbation que personne n’a donnée est consignée comme donnée. Un flux de travail, c’est donc deux choses qui partagent un nom : une ébauche, la seule tête modifiable, et une liste de versions, chacune figée au moment de sa publication. L’éditeur ne touche que l’ébauche; une exécution ne fait référence qu’à un numéro de version.
- La publication ne touche aucune exécution — la nouvelle version est écrite et la liste des exécutions n’est pas touchée du tout : la garantie est structurelle plutôt qu’une promesse faite lors d’une revue de code.
- Le lien est sur la ligne — « Publié v2 · 2 toujours en cours sur la v1 », c’est la règle énoncée comme un fait, là où la personne qui décide de publier la lira.
- Publier une ébauche inchangée est refusé — une version qui ne change rien gonfle les numéros de version, et la prochaine personne qui lit « v7 » mérite de croire que sept décisions ont été prises.
- Une nouvelle tentative relance la même étape sur la même version liée — jamais une plus récente, la seule chose qu’une automatisation ne doit jamais improviser.
« Flux de travail invalide », c’est un produit qui abandonne
Treize vérifications structurelles sont exécutées sur le graphique de l’ébauche, et chaque constatation pointe vers le nœud qui a échoué, en une phrase. Les erreurs bloquent la publication. Les avertissements, non — parce que la différence entre « ceci ne peut pas fonctionner » et « ceci va probablement agacer quelqu’un » vaut la peine d’être conservée.
- Une approbation sans approbateur ne peut pas être publiée — ce n’est pas un flux de travail avec une lacune; c’est une barrière maintenue ouverte qui a l’air d’une barrière.
- Une seule entrée — deux nœuds Début, ce sont deux affirmations sur le point de départ du processus, et un moteur d’exécution ne pourrait en honorer qu’une, en silence.
- Chaque sortie de décision est étiquetée — un diagramme qui ne peut pas dire ce qui va où est une image plutôt qu’une conception.
- Supprimer un nœud supprime ses connecteurs — un fil qui ne mène nulle part est pire qu’une boîte manquante.
Une notification qui devine apprend à tout le monde à se méfier de toutes les notifications
Un modèle est modifié par un administrateur et lu par un monteur à deux heures du matin, et entre les deux se trouve un moteur de rendu. Quand une variable ne peut pas être résolue — mal tapée, ou demandant un champ que l’événement ne transporte pas —, les options honnêtes sont de le dire ou de deviner. Zenith le dit, nommément, avant même que le modèle soit utilisé.
- Les variables non résolues restent visibles dans le texte — laissées sous la forme
{{approver.name}}plutôt qu’effacées en silence, pour que personne n’envoie une phrase trouée. - L’aperçu est rendu à partir de vrais dossiers — l’auteur voit « La génératrice de secours ne démarre pas à l’essai », pas
{{workOrder.summary}}. C’est la différence entre vérifier un modèle et y croire. - Chaque événement offre un ensemble fermé de variables — ce qu’un bon de travail peut offrir, ce qu’une alerte de stock peut offrir, listé plutôt que deviné de mémoire.
- Le français et l’anglais dès la première frappe — l’objet et le corps sont des champs par langue, pas une passe de traduction ajoutée après que quelqu’un s’est plaint.
Ce qui s’exécute, et ce qui est mis par écrit
L’automatisation est la partie d’un système de maintenance le plus souvent vendue comme terminée et livrée sous forme de diagramme. Zenith trace la ligne là où son propre code la trace : ce qu’une personne crée est construit et vérifiable aujourd’hui, et ce qui s’exécute sans surveillance appartient à la phase serveur — chaque écran concerné le disant clairement plutôt que dans une note de bas de page.
Le produit vous dit où il s’arrête
La plupart des modules d’automatisation sont achetés sur la foi d’une démo du concepteur, et découverts au quatrième mois. Celui-ci affiche la limite au bas de la page à laquelle elle s’applique — la question « est-ce que ça s’exécute vraiment? » trouve donc sa réponse avant le bon de commande, pas après.
- Le simulateur est au conditionnel, et c’est voulu — rien n’est créé, envoyé ni réservé, et chaque note qu’il écrit commence par le mot « aurait ».
- L’écran des exécutions porte sa propre mise en garde — « le moteur qui exécute réellement les étapes relève de la moitié serveur » figure sous le tableau, en permanence, pas dans une note de version.
- C’est le transport qui manque, pas le modèle — la boîte de réception est déjà la surface de livraison, rendue et horodatée; quand le répartiteur arrivera, il enverra par cette même porte.
- Rien n’est déguisé en produit fini — une étape d’automatisation qui ne fait encore rien est une erreur qui bloque la publication, pas une boîte qui reste là à avoir l’air compétente.
Tout ce qui entoure la règle
Sept choses à surveiller
Un bon de travail créé, terminé ou fermé; une demande soumise; une alerte d’état déclenchée; un stock sous le point de commande; un bon de commande émis. Une liste fermée, délibérément — un événement est un contrat, pas un souhait en texte libre.
Des identifiants d’étape qu’on peut prononcer
P1, D2, A1 — numérotés dans le flux de travail et stables une fois attribués, pour qu’une conversation sur « la deuxième approbation » ait un nom que les deux personnes reconnaissent.
L’algorithme, dessiné honnêtement
Une pastille de début pour le déclencheur, un losange pour chaque contrôle avec son « non » qui part vers Arrêt, une boîte pour chaque étape qui fait du travail. Les branches que le moteur ne peut pas prendre ne sont pas dessinées — une plus jolie image d’un autre produit n’aide personne.
La lecture est un horodatage
Pas un indicateur. « Quand l’ont-ils vue? » est la question que pose toute analyse après coup d’une notification — et lire deux fois est refusé, parce que le premier horodatage est le fait.
Les échecs portent leur raison
Un échec sans raison n’est pas un échec, c’est un mystère — la raison est donc obligatoire, et elle figure sur la ligne à côté de l’exécution qui s’est arrêtée.
Des mots qui appartiennent aux gens
Les modèles sont modifiés par les administrateurs, pas livrés dans une version du logiciel. Renommez n’importe quoi dans votre vocabulaire et chaque titre suit — jamais ce sur quoi un filtre s’appuie.
Une version veut toujours dire une décision
Une ébauche inchangée ne peut pas être publiée : un numéro de version n’est donc jamais gonflé par quelqu’un qui clique pour être sûr.
Les boucles sont signalées, pas exécutées
Le simulateur parcourt le graphique et s’arrête dès qu’il revient dans un nœud déjà visité, en le nommant — plutôt que de tourner en rond en silence pour le compte de quelqu’un.
Deux langues, jusqu’au bout
Chaque libellé, indication, état vide, blocage et refus existe en français et en anglais — y compris la phrase qui vous dit qu’un flux de travail ne peut pas encore être publié.
Une automatisation que vous pouvez transmettre
La personne qui a mis en place votre automatisation partira. Tout ici est conçu pour la personne qui en héritera — celle qui devra expliquer, cinq ans plus tard, pourquoi le système a fait ce qu’il a fait un mardi dont personne ne se souvient.
Créé, puis figé
Une ébauche se modifie librement; une version est un instantané que rien ne peut modifier après coup, et chaque exécution nomme la version sous laquelle elle vit.
Les refus nomment leur propre étape
Rien n’est rejeté comme « invalide ». Chaque blocage dit quelle étape, quel champ et ce qui manque : la correction est évidente plutôt qu’une chasse au trésor.
Bilingue dès sa conception
Parité complète en-CA / fr-CA sur chaque écran, indication, état vide et refus — les pluriels gérés correctement, pas par concaténation.
Accessible à tous
WCAG 2.2 AA comme règle de conception : de vrais onglets sémantiques, des états annoncés en mots, et un focus qui se déplace vers le champ visé par une erreur.
Avant de réserver la démo
Peut-il envoyer un rapport tous les lundis matin?
Envoie-t-il des courriels?
Une règle peut-elle se déclencher automatiquement sur le trafic réel?
Que peut surveiller un flux de travail?
Qu’arrive-t-il aux approbations en cours quand nous modifions un flux de travail?
Y a-t-il un suivi des NS et une escalade?
Peut-on créer des branches, ou exécuter deux chemins à la fois?
Une étape peut-elle être assignée à une personne précise?
Qu’est-ce qui empêche un flux de travail à moitié construit d’être mis en service?
Peut-on tester un flux de travail avant de le publier?
À qui appartient la formulation d’une notification?
Comment cela s’intègre-t-il au reste de Zenith?
Apportez la règle que personne ne peut expliquer.
Chaque organisation en a une — la priorité fixée par une règle que quelqu’un a écrite en 2019, ou l’approbation qui se déclenche pour des raisons que trois personnes décrivent de trois façons. Mettez-la par écrit avec nous sous forme de table, nous lui demanderons ce qu’elle déciderait, devant vous, et elle nommera la ligne qui a répondu.
Ailleurs dans Zenith
Guides sectoriels canadiens
Normes et organismes de réglementation
Les normes sont citées uniquement par numéro, titre et portée. Les publications CSA et ULC sont payantes — lisez la norme elle-même avant de bâtir un programme de conformité sur un résumé.