Une commande affiche « En attente » depuis quatre jours. Le commercial ne sait pas si elle attend la finance, une pièce ou un traitement automatique. Il relance trois équipes, puis duplique la demande pour gagner du temps. Le problème est concret : le workflow fonctionne peut-être exactement comme prévu, mais son effet reste invisible pour la personne qui doit agir.
À l’autre extrême, certains écrans exposent chaque statut technique, branche et condition. L’utilisateur voit un diagramme qu’il ne peut pas modifier et doit apprendre les noms du moteur. Cette transparence brute augmente la charge sans améliorer la décision. Visible ne signifie pas exhaustif.
Le vrai enjeu est de montrer une règle lorsqu’elle change l’action possible, la responsabilité, l’échéance ou la confiance dans le résultat. Contre-intuitivement, l’explication la plus utile est souvent une conséquence et une prochaine étape, non l’expression logique complète. Le moteur reste précis ; l’interface traduit son verdict.
Dans une démarche de développement web sur mesure, état, droits et explication proviennent d’une même décision métier. Ce guide aide à choisir ce qui doit apparaître, à éviter les divergences et à fournir une reprise compréhensible.
Montrer une règle lorsqu’elle change l’action
Évaluer l’effet sur le parcours
Une règle devient visible si elle empêche une action attendue, impose une action, change le responsable ou introduit un délai significatif. Elle devient aussi visible si son résultat surprend raisonnablement. Une règle purement technique qui ne change ni décision ni résultat peut rester dans le diagnostic.
L’équipe part de questions réelles : pourquoi ne puis-je pas valider ? Qui doit intervenir ? Quand le dossier reviendra-t-il ? Que puis-je corriger ? Une explication réussie permet de répondre sans ouvrir la documentation ni demander à un développeur.
Qualifier le coût de l’invisibilité
Les signaux faibles sont les relances, duplications, commentaires « où en est-on ? », annulations et modifications directes. Ils précèdent les incidents. Leur coût caché inclut temps d’attente, décisions concurrentes et perte de confiance dans l’automatisation.
Si une règle s’applique à un cas rare mais financier ou légal, sa visibilité reste prioritaire. En revanche, une condition fréquente et évidente peut être résumée. La fréquence ne décide pas seule ; surprise, risque et possibilité d’action complètent l’arbitrage.
Choisir le bon niveau d’explication
Présenter conséquence, raison et preuve
Le premier niveau indique état et prochaine action : « Validation financière attendue ». Le second explique la raison : « montant supérieur au plafond du rôle ». Le troisième montre les preuves utiles et la version de règle aux rôles autorisés. L’utilisateur n’est pas forcé de lire tout le détail.
Cette révélation progressive conserve un écran lisible et un diagnostic précis. Le support peut copier un identifiant de corrélation ou ouvrir l’audit, tandis que l’utilisateur quotidien voit seulement ce qui guide son geste. Les secrets, scores sensibles et règles antifraude restent protégés.
Employer le vocabulaire métier
« Guard expression false » ne dit rien à l’utilisateur. « La pièce d’identité validée manque » nomme la condition et l’action. Les libellés sont maintenus avec le domaine, traduits et testés. Un code de cause stable permet à l’interface de choisir le message sans analyser du texte technique.
L’explication ne promet pas ce que le système ignore. Si une décision externe est en cours, elle indique dernière mise à jour et dépendance, pas une heure inventée. Le mode dégradé reste explicite. Cette honnêteté protège davantage que « Réessayez plus tard ».
Rendre état et progression compréhensibles
Séparer état métier et état technique
Le dossier peut être « à valider » alors qu’un message est « en retry ». L’utilisateur a besoin de l’état métier et d’une indication si une panne retarde son évolution. Exposer directement les statuts de transport produit des transitions sans sens et des attentes inexpliquées.
Les états métier sont peu nombreux, mutuellement compréhensibles et reliés à des responsabilités. Les sous-états techniques vivent dans le diagnostic. Une file d’attente ne devient pas un statut métier uniquement parce qu’elle existe dans l’infrastructure.
Montrer l’historique utile
La chronologie indique décision, acteur ou système, date et motif. Elle distingue événement confirmé et tentative. Les corrections ne réécrivent pas le passé : elles ajoutent une nouvelle transition. Un état annulé reste visible avec sa compensation.
Une frise exhaustive peut devenir illisible. L’interface regroupe les détails répétitifs et met en avant changements de responsabilité, refus, attentes et reprises. Le support ouvre ensuite les événements techniques liés par corrélation.
Expliquer conditions et blocages
Afficher ce qui manque avant l’action
Lorsqu’une transition a des préconditions, l’écran les évalue avant le clic. Il montre celles qui sont satisfaites et celles qui manquent : document, droit, donnée ou étape. Une action désactivée sans raison oblige à deviner. Une action activée puis refusée tardivement gaspille la saisie.
Le serveur reste la source de vérité et réévalue à l’exécution. L’interface reçoit des codes de blocage structurés et leur contexte, non une copie de la logique. Si l’état change entre affichage et décision, un conflit explicite invite à relire plutôt que d’écraser.
Distinguer blocage et avertissement
Un blocage interdit la transition et donne une voie de résolution. Un avertissement expose un risque assumable et demande éventuellement un motif. Confondre les deux crée soit une rigidité excessive, soit des alertes ignorées. La règle indique qui peut déroger et pour combien de temps.
Le seuil d’avertissement est qualifié par le métier. Au-delà d’un montant local, une deuxième validation peut être exigée. Cette valeur n’est pas affichée comme une norme immuable : sa version et sa date d’effet permettent d’expliquer les dossiers historiques.
Nommer la personne ou le rôle attendu
Afficher un rôle plutôt qu’un destin abstrait
« Transmis » ne précise pas qui agit. « En attente de validation du responsable financier Belgique » indique le rôle et le périmètre. Le nom d’une personne peut être affiché si utile et autorisé, mais le workflow ne dépend pas d’une personne unique.
Les délégations et absences sont prises en compte. Si aucun titulaire n’existe, le système n’affiche pas une attente normale : il crée une exception d’affectation et une escalade. Le manager voit les dossiers sans responsable avant que leur délai ne soit dépassé.
Rendre la prise en charge visible
Une file partagée distingue disponible, pris en charge et verrouillé pour décision. La prise en charge a une durée et peut être libérée. Elle évite que deux personnes travaillent sans le savoir, sans transformer le dossier en propriété permanente.
Le changement de responsable est journalisé avec motif. Une réaffectation ne modifie pas l’autorité de la règle. L’utilisateur sait si son action transmet, délègue ou escalade, trois actes différents qui ne doivent pas partager un libellé générique.
Afficher échéances, attente et escalade
Expliquer le temps calculé
Une échéance dépend souvent d’horaires, jours ouvrés, priorité et pays. L’interface montre date résultante et, au besoin, règle de calcul. Elle ne promet pas un compte à rebours si une dépendance externe reste inconnue. La dernière activité aide à distinguer attente normale et blocage.
Les seuils déclenchent des actions : rappel, escalade, changement de priorité ou alerte. Ils sont locaux au service et au risque. Une métrique qui colore un dossier sans modifier la prise en charge ajoute du bruit plutôt que du pilotage.
Donner une prochaine étape pendant l’attente
Si l’utilisateur doit attendre, il peut suivre, annuler selon les droits ou fournir une information complémentaire. L’écran indique ce qui relancera le workflow. Un statut « en attente » sans déclencheur cache une file qui ne sera jamais reprise.
Les notifications utilisent le même état que la page. Un email ne doit pas annoncer « validé » lorsque le dossier affiche encore « à contrôler ». La publication de la transition et de ses notifications est corrélée et rejouable.
Traiter les exceptions sans exposer le moteur
Créer des issues métier pour les cas connus
Une exception récurrente devient un état ou une transition nommée : information contradictoire, affectation impossible, dépendance indisponible. Elle possède owner, résolution et délai. Elle ne doit pas rester une erreur technique générique que le support ferme manuellement.
Les cas rares peuvent rejoindre une file d’exception avec contexte et actions bornées. L’interface ne propose pas de modifier librement l’état. Une correction applique une transition légitime ou une compensation, afin que le moteur et l’historique restent cohérents.
Protéger la logique sensible
Une règle antifraude ou de sécurité ne révèle pas ses détails exploitables. L’utilisateur voit qu’une revue est nécessaire, ce qu’il peut fournir et le délai attendu. Les rôles habilités accèdent à une cause plus précise. La visibilité est donc une politique, pas un simple affichage de toutes les conditions.
Les règles du moteur sont versionnées. La documentation Symfony rappelle la distinction entre places, transitions, guards et événements dans son composant Workflow. L’interface doit traduire ces concepts en actes métier plutôt que les exposer tels quels.
Cas concret : une commande attend une validation
Un plafond invisible provoque des relances
Cas concret hypothétique : une commande dépasse le plafond d’une responsable locale et attend une validation régionale. L’écran affiche seulement « En attente ». La responsable recrée une commande plus petite, tandis que le manager approuve l’original. Deux engagements partent vers l’ERP.
La nouvelle interface indique « Validation régionale requise », le montant qui a déclenché la règle, le rôle attendu et l’échéance. Elle propose d’annuler la demande ou d’ajouter une justification. Le plafond exact reste visible aux rôles concernés et sa version est attachée au dossier.
La recette change le plafond pendant l’attente, expire une délégation et perd une notification. La commande conserve la règle qui a ouvert sa validation, le manager suppléant la retrouve et l’email est rejoué sans deuxième transition. Le succès est la même histoire dans l’écran, l’audit et l’ERP.
Pour qui la visibilité devient-elle critique ?
Elle concerne les applications où plusieurs rôles, délais ou exceptions structurent le travail. Produit, métier, design, développement, sécurité et support définissent ensemble les niveaux d’explication. Les utilisateurs fournissent les questions réelles que l’écran doit résoudre.
Un workflow simple à deux états peut rester discret. Dès qu’un état affecte responsabilité, argent, droit, attente ou coordination, son sens doit être visible. Le nombre de transitions n’est pas le seul critère : une règle unique mais surprenante peut justifier une explication forte.
Erreurs fréquentes d’explication du workflow
La première erreur affiche les noms techniques. La deuxième utilise « En attente » partout. La troisième désactive une action sans raison. La quatrième expose une règle sensible. La cinquième recopie les conditions côté front et laisse l’interface diverger du serveur.
Autres pièges : promettre un délai non maîtrisé, montrer une personne sans prévoir sa délégation, réécrire l’historique après correction ou envoyer des notifications depuis une source différente. Enfin, un diagramme complet ne remplace pas une prochaine action claire.
Mettre en œuvre une explication fiable
Produire état, actions et raisons ensemble
L’entrée contient dossier, version, utilisateur et contexte ; la sortie expose état métier, transitions autorisées, blocages codés, responsable et échéance. Le serveur garde la décision. La journalisation associe règle, version et corrélation. Le front traduit les codes avec des contenus testés.
Chaque dépendance possède timeout et mode dégradé. Le monitoring distingue blocages métier, conflits et pannes. Le runbook indique l’owner et le seuil d’escalade. Un cache d’action est invalidé lorsque version ou droits changent.
Restituer les changements de manière accessible
Après une transition, le statut est mis à jour et annoncé sans déplacer inutilement le focus. Les recommandations W3C sur les messages de statut aident à rendre ces retours perceptibles aux technologies d’assistance.
La recette teste clavier, lecteur d’écran, mise à jour asynchrone, réponse perdue et conflit de version. Un retry idempotent retrouve le verdict. Le rollback restaure une version ou applique une compensation sans supprimer la transition historique.
Mesurer compréhension et récupération
Les indicateurs suivent relances, dossiers dupliqués, temps sans responsable, actions annulées et demandes au support. Un test demande à une personne d’expliquer état, cause et prochaine étape. La bonne réponse sans aide vaut plus qu’un taux de consultation du détail.
Les seuils déclenchent une action. Si une cause concentre les escalades, l’équipe améliore règle ou message. Si les utilisateurs contournent malgré l’explication, le problème peut être la règle elle-même. La visibilité ne doit pas légitimer un workflow incohérent.
Plan d’action en cinq semaines
Semaine 1 : inventorier les questions
L’équipe sélectionne dix dossiers et recense relances, attentes et blocages. Elle relie chaque question à une règle, une responsabilité ou une dépendance. Les états techniques sont séparés des états métier avant toute refonte visuelle.
Semaines 2 et 3 : concevoir les niveaux
Chaque état reçoit conséquence, raison, prochaine action et détail autorisé. Les codes de cause sont stabilisés. Un prototype est testé avec utilisateur, support et rôle sensible. Les délais et délégations sont joués sur des cas contradictoires.
Semaines 4 et 5 : brancher et éprouver
Le backend produit actions et blocages. La recette provoque concurrence, panne, notification perdue et règle modifiée. Un pilote mesure relances et récupération. Le support diagnostique avec ses droits et applique le runbook.
Le jeu de recette contient un dossier nominal, une délégation expirée, une condition contradictoire et une attente externe sans délai garanti. Pour chacun, une personne nouvelle doit nommer l’état, la raison, le rôle attendu et l’action encore possible. L’équipe compare ensuite ce récit avec l’audit et l’événement envoyé aux systèmes externes. Toute divergence est corrigée dans le contrat de cause ou dans la règle, jamais par un texte local qui masquerait le moteur. Les tests vérifient aussi qu’une cause sensible reste générique pour l’utilisateur tout en étant précise dans la vue habilitée.
Le pilote observe un cycle métier complet et non une démonstration. Les relances, duplications et dossiers sans owner sont rapprochés de la version précédente. Si une nouvelle explication réduit les questions mais augmente les actions erronées, l’équipe revoit la hiérarchie plutôt que de déclarer le résultat acquis. Le seuil de poursuite est décidé avec les opérations : il peut exiger zéro dossier critique sans responsable et une baisse mesurable des relances sur le périmètre, sans transformer ces valeurs locales en norme universelle.
Le compte rendu conserve règles, versions et seuils. D’abord, montrer l’effet ; ensuite, expliquer la raison ; puis ouvrir la preuve selon le rôle. Si l’interface ne peut pas garantir la même décision que le moteur, le déploiement est différé.
- D’abord, nommer l’état et la question qu’il doit résoudre.
- Ensuite, relier conditions, responsabilité et échéance à une même version.
- Puis, tester conflit, délégation, exception et notification.
- Enfin, décider l’extension selon les relances et la compréhension observée.
Guides complémentaires pour les workflows
Structurer actions et exceptions
Le guide des actions prioritaires organise la décision, tandis que la gestion des exceptions protège le flux principal.
Tester et observer
Les tests de workflows à exceptions structurent la recette, et l’observabilité métier relie écran et chronologie.
- Faire expliquer un dossier en attente par une personne nouvelle.
- Vérifier qu’un code de blocage produit le même sens partout.
- Tester la reprise après une notification perdue.
Conclusion : montrer ce qui permet d’agir
Une règle de workflow doit devenir visible lorsqu’elle change une décision, une responsabilité, un délai ou la confiance dans le résultat. L’interface n’expose pas toute la mécanique : elle traduit état, raison, prochaine action et preuve au niveau approprié.
La cohérence repose sur une source commune. Le moteur décide, l’API structure les causes et l’interface les rend compréhensibles. L’historique conserve les versions, les exceptions et les compensations afin que le support puisse expliquer le passé. La revue éditoriale fait partie du produit : lorsqu’une règle évolue, ses codes, messages, traductions, tests et procédures de support changent dans la même livraison. Cette discipline empêche qu’une explication exacte hier devienne une fausse promesse après une modification du workflow.
Dawap peut vous accompagner pour structurer cette visibilité dans une stratégie de développement web sur mesure. L’objectif est que chaque personne sache ce qui bloque, qui agit et comment reprendre, sans apprendre le langage interne du moteur.