BPMN (Business Process Model and Notation) ressemble à un logigramme avec des symboles en plus, et c'est d'ailleurs ainsi que la plupart des gens commencent à l'utiliser. Ces symboles supplémentaires sont pourtant tout l'intérêt : ils permettent à un diagramme de dire qui réalise chaque étape, ce qui déclenche le processus, ce qui s'exécute en parallèle et ce qui franchit une frontière organisationnelle, avec assez de précision pour qu'un développeur et une responsable des opérations y lisent la même chose.
Ce guide construit pas à pas un diagramme BPMN, le traitement des commandes d'une boutique en ligne, et explique chaque élément au moment où il apparaît. À la fin, vous aurez un processus à adapter et la liste des erreurs qui rendent les diagrammes BPMN difficiles à lire.
Les éléments indispensables
BPMN 2.0 a un vocabulaire étendu, mais la plupart des diagrammes de processus n'en utilisent qu'un petit noyau :
| Élément | Forme | Signification |
|---|---|---|
| Pool | Grand cadre | Un participant, par exemple une entreprise ou un client |
| Couloir | Bande à l'intérieur d'un pool | Un rôle, une équipe ou un système au sein de ce participant |
| Événement de début | Cercle à trait fin | Ce qui déclenche le processus (un message, une minuterie, rien de particulier) |
| Événement de fin | Cercle à trait épais | Une des façons dont le processus peut se terminer |
| Événement intermédiaire | Double cercle | Quelque chose qui se produit ou que l'on attend en cours de route |
| Tâche | Rectangle aux coins arrondis | Une unité de travail ; un marqueur indique s'il s'agit d'une tâche utilisateur, de service, d'envoi ou manuelle |
| Passerelle exclusive | Losange avec un X | Un seul chemin sortant est emprunté |
| Passerelle parallèle | Losange avec un + | Tous les chemins sortants s'exécutent ; une passerelle correspondante les attend tous |
| Flux de séquence | Flèche pleine | L'ordre des étapes à l'intérieur d'un pool |
| Flux de messages | Flèche en pointillés | La communication entre pools |
L'exemple : le traitement des commandes
Le processus, en termes simples :
- Une commande du client arrive.
- Le système de vente vérifie le stock.
- Si l'article est en rupture de stock, le client est prévenu et la commande est annulée.
- S'il est en stock, le paiement est encaissé et, en même temps, l'entrepôt prépare et emballe la commande.
- Quand les deux sont terminés, l'expédition remet le colis au transporteur.
- Le système de vente envoie le lien de suivi par e-mail, et le processus se termine.
Le voici en BPMN :
Contenu du diagramme
- Customer
- Online shop
- Order received
- Check stock
- In stock?
- Notify customer
- Order cancelled
- Charge payment
- Pick and pack
- Ship order
- Send tracking email
- Order fulfilled
- no
- yes
- order
- out of stock notice
- tracking link
Construisons-le maintenant pièce par pièce.
Étape 1 : pools et couloirs
Commencez par les participants. La boutique est un pool avec trois couloirs : Sales system (système de vente), Warehouse (entrepôt) et Shipping (expédition). Le client est un second pool, dessiné replié sous la forme d'une bande vide : ce qui compte, c'est ce qu'il envoie et reçoit, pas la façon dont il décide.
Les couloirs répondent à la question « qui fait ça ? » sans la moindre étiquette sur les tâches. Si vous n'arrivez pas à décider à quel couloir appartient une tâche, c'est généralement une vraie question de responsabilité, qui mérite d'être posée.
Étape 2 : événements de début et de fin
Le processus démarre à l'arrivée d'un message de commande : l'événement de début porte donc un marqueur de message. Il y a deux façons de se terminer, donc deux événements de fin : Order fulfilled (commande honorée) et Order cancelled (commande annulée). Nommer chaque événement de fin d'après son résultat rend les issues du diagramme visibles au premier coup d'œil.
Étape 3 : des tâches avec un verbe et un objet
Nommez chaque tâche avec un verbe et un objet : Check stock (vérifier le stock), Charge payment (encaisser le paiement), Pick and pack (préparer et emballer), Ship order (expédier la commande), Send tracking email (envoyer l'e-mail de suivi). Ajoutez le type de tâche quand il apporte quelque chose : une tâche de service s'exécute sans intervention humaine, une tâche utilisateur en demande une, une tâche d'envoi envoie un message. Ce seul marqueur indique aux développeurs quelles étapes ils doivent automatiser.
Étape 4 : des passerelles pour les décisions et le travail en parallèle
La passerelle exclusive placée après Check stock pose une question, In stock? (en stock ?), et ses flux sortants portent les réponses, yes et no. Un seul chemin est emprunté.
Après la branche yes, une passerelle parallèle fait diverger le flux : Charge payment et Pick and pack s'exécutent en même temps. Une seconde passerelle parallèle les fait converger, si bien que l'expédition ne démarre que lorsque les deux sont terminées. Divergences et convergences vont par paires ; une divergence parallèle sans convergence laisse des jetons parcourir le reste du processus, ce qui n'est presque jamais l'effet voulu.
Étape 5 : des flux de messages entre les pools
Les flux de séquence restent à l'intérieur d'un pool. La communication entre pools passe par des flux de messages, dessinés en pointillés : le message de commande qui entre dans l'événement de début, l'avis de rupture de stock et l'e-mail de suivi qui repartent vers le client. BPMN n'autorise pas un flux de séquence à franchir la frontière d'un pool, et cette règle vous oblige à montrer explicitement chaque passage de relais entre organisations.
Étendre le processus
Les processus réels en demandent davantage. Voici quelques extensions courantes et la façon dont BPMN les exprime :
- Le paiement échoue. Regroupez Charge payment et Pick and pack dans un sous-processus, attachez-lui un événement d'erreur en bordure et reliez celui-ci à une tâche qui remet les articles en stock et prévient le client. Un chemin d'erreur partant d'une seule des branches parallèles laisserait la convergence attendre indéfiniment.
- La préparation prend trop de temps. Attachez à Pick and pack un événement minuterie en bordure, sans interruption, par exemple de 24 heures, et reliez-le à une tâche d'escalade.
- L'entrepôt est un partenaire. Faites-en un pool distinct et remplacez les flux de séquence qui y mènent par des flux de messages. Le diagramme montre alors le contrat entre les deux entreprises.
N'ajoutez ces éléments que lorsque la discussion l'exige. Un diagramme de processus qui essaie de montrer chaque exception devient un mur de flèches.
Erreurs courantes
- Des flux de séquence entre pools. Entre participants, utilisez des flux de messages.
- Des chemins parallèles fusionnés sans convergence. Des chemins alternatifs peuvent aboutir directement à la tâche suivante, mais des chemins parallèles doivent converger par une passerelle parallèle, sinon la tâche suivante s'exécute une fois par branche.
- Des questions sur le mauvais élément. Placez la question sur la passerelle et les réponses sur ses flux sortants, pas sur les tâches.
- Des noms de tâches vagues. « Traiter la commande » cache cinq étapes. Si une tâche demande un paragraphe, c'est un sous-processus.
- Tout dans un seul couloir. Sans couloirs, un diagramme BPMN n'est qu'un logigramme aux symboles plus sophistiqués.
BPMN ou logigramme ?
Utilisez un logigramme pour une logique rapide, des algorithmes et des procédures pas à pas. Utilisez BPMN quand la responsabilité, l'attente, le travail en parallèle ou la communication entre participants comptent, ce qui est le cas de la plupart des processus métier impliquant plus d'une équipe. Archboard propose les deux sur le même canevas ; pour le style plus simple, consultez le cas d'usage logigramme et le modèle de logigramme interfonctionnel.
Le construire dans Archboard
- Connectez-vous avec Google ou GitHub et créez un diagramme.
- Depuis le pack BPMN, ajoutez un Pool pour la boutique et donnez-lui trois couloirs, puis un second pool, vide, pour le client.
- Ajoutez les nœuds Événement de début et Événement de fin, des nœuds Tâche avec leur type de tâche, et des nœuds Passerelle exclusive en mode exclusif ou parallèle.
- Reliez les étapes à l'intérieur du pool et tracez des liens en pointillés entre les pools pour les flux de messages.
- Étiquetez les flux sortants de la passerelle avec les réponses et ajoutez une Annotation textuelle pour tout ce que le lecteur doit savoir.
L'exemple utilise 14 nœuds de diagramme, ce qui reste dans les limites de l'offre Free. Pour des processus proches, consultez les cas d'usage diagramme de flux de paiement et cartographie des flux de valeur.
FAQ
Dois-je apprendre tout BPMN 2.0 ? Non. Pools, couloirs, événements de début et de fin, tâches, passerelles exclusives et parallèles, et flux de messages couvrent la plupart des diagrammes. Ajoutez d'autres symboles quand un cas réel l'exige.
Un diagramme BPMN peut-il être exécuté ? Les moteurs de processus peuvent exécuter des modèles BPMN qui comportent les détails techniques dont ils ont besoin. Un diagramme dessiné pour des humains, comme celui-ci, sert d'abord à se mettre d'accord sur le processus.
Quelle taille doit faire un diagramme ? S'il ne tient plus sur un écran, déplacez un groupe de tâches dans un sous-processus et dessinez celui-ci à part.
Où placer les systèmes et les données ? Utilisez un couloir pour un système qui effectue un travail, comme ici le système de vente, et des objets de données ou des stockages de données pour les informations que les tâches lisent et écrivent.
Comment relire un diagramme de processus ? Déroulez un cas réel sur le diagramme, par exemple une commande en rupture de stock, avec les personnes qui font le travail. Chaque fois qu'elles disent « en fait, nous… », c'est une correction.