Comprendre le process mining


Qu’est-ce qu’un processus ?


Un processus est une suite d’activités exécutées pour atteindre un but. Qu’ils soient formalisés ou non, chaque entreprise exécute des processus.

Prenons l’exemple d’un petit restaurant de vente à emporter, Marie est la gérante et seule employée. Elle prend les commandes et sert les clients. Un processus simplifié peut être décrit comme suit :

  • Prendre la commande du client
  • Préparer la commande
  • Servir le client
  • Encaisser le client

On peut le représenter simplement :

processus restaurant

Pour fidéliser ses clients, Marie décide de mettre en place une carte de fidélité qui donne lieu à une remise, dans ce cas, le processus devient :

  • Prendre la commande du client
  • Préparer la commande
  • Servir le client
  • Demander la carte de fidélité
  • Si oui appliquer la remise
  • Encaisser le client

Qui se représente ainsi :

processus restaurant avec remise

On voit ici qu’il peut y avoir des variations dans le processus, toutes les activités ne sont pas exécutées à chaque exécution du processus.



Pourquoi étudier les processus ?


L’exemple précédent est très simple. Dans la réalité, les entreprises ont des processus beaucoup plus complexes, avec de nombreuses activités et acteurs, ainsi que des choix à effectuer en fonction de différents critères.

L’exécution des processus peut être rendu complexe par des problèmes qui demandent une réaction qui diverge de ce que l’ont fait habituellement (un composant indisponible pour la production, un RIB mal saisi pour la facturation) ou par des acteurs qui ne vont pas respecter le processus à la lettre.

Les processus sont également amenés à évoluer, par exemple pour le lancement d’un nouveau produit ou en intégrant un nouveau logiciel.

Mais comment savoir si le processus est efficace ? Y-a-t-il des dérives qui peuvent impacter le coût pour l’entreprise ou la qualité de service pour le client ? La dernière campagne commerciale a-t-elle provoqué une surcharge de travail pour la comptabilité ? Cela a-t-il un impact sur vos revenus ? Comment le mesurez-vous ?

Vous voulez plus d’automatisation, mais vous voulez automatiser un processus qui fonctionne, pas automatiser des tâches héritées du passé, et qui contribuent à rendre le processus complexe.



Eventlog


La majorité des entreprises travaillent avec un système d’information. La prise de commande se fait à l’aide d’un logiciel, le lancement de la fabrication est enregistrée dans le système, la facturation également.

Chaque activité donne lieu à l’enregistrement d’une information, par exemple, le numéro de commande, l’article commandé, la quantité. Ce sont les transactions stockées dans les bases de données et qu’on a l’habitude d’exploiter.

Chacune de ses transactions correspond à un évènement (créer la commande, modifier la commande), et contient des informations comme la date et l’heure de l’évènement, la personne qui l’a réalisé.

En collectant toutes ces informations décrivant un évènement, relatives au processus qu’on souhaite étudier, on obtient un journal d’évènements ou eventlog.

Reprenons le cas du restaurant, et supposons que Marie trace toutes les actions effectuées sur sa caisse enregistreuse. On obtient donc un journal d’évènement comme suit :

commande_id activity_id resource_id timestamp
1 Prendre commande Marie 2021-09-28 08:02:00
1 Préparer commande Marie 2021-09-28 08:05:10
1 Servir client Marie 2021-09-28 08:06:39
1 Encaisser Marie 2021-09-28 08:09:40
2 Prendre commande Marie 2021-09-28 08:09:40
2 Préparer commande Marie 2021-09-28 08:12:29
2 Servir client Marie 2021-09-28 08:13:54
2 Encaisser Marie 2021-09-28 08:17:01
3 Prendre commande Marie 2021-09-28 08:17:01
3 Préparer commande Marie 2021-09-28 08:20:28

Chaque ligne de la table représente un évènement, c’est-à-dire une action effectuée liée à une activité. On distingue un évènement d’une activité car un évènement est unique (Marie exécute cette activité à 10h31) mais une activité peut se répéter (Marie a malencontreusement appliqué deux fois la remise).

On peut voir que chaque ligne est référencé par le numéro de commande, c’est l’identifiant de l’instance du processus. C’est grâce à cet identifiant unique qu’on peut lier l’enchainement des activités et recréer l’exécution du processus pour cette commande.



De l’eventlog au processus


Comment utiliser ce volume d’évènements pour étudier le processus ? C’est le domaine du process mining !

A partir de ces évènement, nous pouvons recréer le processus tel qu’il s’est déroulé en prenant en compte tous les évènements. On peut alors cartographier le processus en visualisant toutes les activités du processus et les différentes routes, basées sur des données réelles. On obtient alors une carte du processus (process map).

Carte du processus 1

On s’attendait au processus de la figure 1, et on constate que la réalité est un peu plus complexe. Dans 15% des cas, Marie ne suit pas son processus théorique et encaisse avant de servir le client.

On peut regarder les différentes traces laissées par le processus, c’est à dire l’ensemble des différentes séquences d’activité que le processus a pris, ainsi que leurs fréquences relatives et cumulées :

liste des traces du processus 1

Regardons maintenant ce qu’il se passe après que Marie ait instauré son programme de fidélité. En partant de l’eventlog pour cette période, on peut afficher la carte du processus réel :

Carte du processus 2

Là encore, on est sur un processus relativement simple, et on peut voir qu’en réalité il y a de eu des variations. Regardons comment se répartissent les différentes routes :

Liste des traces du processus 2

Dans 90% des cas, le processus correspond au processus théorique, mais on peut voir deux déviation, en particulier, un cas pour lequel la remise a été appliquée deux fois.



Découverte du processus


Une des fonctions du process mining est de découvrir le processus théorique à partir du journal d’évènement. D’habitude, la modélisation d’un processus existant est manuelle, et passe par l’interview des différents intervenants. On modélise alors un processus basé sur ce que les acteurs ont expliqué, ce qui abouti souvent à un processus théorique idéalisé, et qui ne refléte pas la réalité.

Une des fonctions du process mining est de modéliser le processus à partir des données réelles. Regardons avec l’exemple précédent incluant la carte de fidélité. Nous souhaitons découvrir le processus théorique, nous allons donc nous concentrer sur les traces qui représentent 90% des cas. L’algorithme (ici inductive miner) permet de découvrir ce processus et de le présenter en schéma BPMN. En exécutant l’algorithme sur l’eventlog précédent, nous obtenons alors le processus théorique suivant au format BPMN :

Découverte automatique du processus



Le processus découvert par l’algorithme à partir de l’eventlog correspond bien à ce qu’on s’attendait à trouver (équivalent au processus de la figure 2).



Vérifier la conformité


Une des utilisations concrête de ce qu’on vient de voir, c’est de détecter automatiquement les anomalies, et par exemple lors de l’exécution d’un processus de s’assurer que le cas est conforme au processus théorique ou de détecter les non-conformités.

Par exemple, si on prend le processus que l’algorithme à permis de découvrir, on obtient le réseau de Petri suivant ci-dessous.

Réseeau de Petri



On peut alors “rejouer” l’eventlog avec le réseau de Petri, et détecter s’il y a des tokens manquants ou restants. Tout ceci se fait automatiquement et on peut regarder uniquement la synthèse et afficher les cas qui ont un problème :

Détection des non-conformités

On retrouve les deux cas précédents, mais cette fois détectés automatiquement :

  • La première anomalie pour le cas 30 est sur l’activité “Demander la carte de fidélité”. En effet d’après le processus théorique, c’est l’activité “servir client” qui aurait du être effectuée après l’activité “Préparer commande”.
  • La deuxième anomalie pour le cas 40 est sur l’activité “Appliquer remise”, puisque celle-ci a été en réalité effectuée deux fois d’après l’eventlog, alors qu’en théorie elle ne peut s’exécuter soit une fois, soit pas du tout.

Cela permet de se focaliser directement sur les instances qui ne sont pas conformes, ce qui ne pourrait pas être réalisé manuellement, sur un processus ayant des milliers ou centaines de milliers d’instance comme c’est le cas pour la plupart des entreprises.



Montée en puissance


On a vu sur un cas très simple ce qu’est un processus, un eventlog, et qu’il permet non seulement de visualiser l’exécution réelle du processus, à partir d’une process map, ou des différentes traces, mais aussi de découvrir le processus théorique, et de détecter des non conformités.

Dans la réalité d’une entreprise, les processus sont beaucoup plus complexes que l’exemple du restaurant, avec de nombreux acteurs, de nombreuses activités qui peuvent avoir lieu en parallèle ou en série, et traitent de milliers ou des millions d’instances. Le process mining prend alors tout son sens et montre sa puissance en mettant à disposition de nombreux outils pour l’étude des processus qui ne serait pas envisageable avec une approche traditionnelle.

On vient de voir qu’on peut détecter une instance qui dévie du processus théorique. Mais on peut également avoir des instances qui respectent le processus théorique, mais prennent plus de temps que la normale, ou bouclent sur une série d’activité, générant un délai plus long pour le client et un surcoût plus important pour l’entreprise. Autant de cas qu’il est important d’analyser et de comprendre, et pour lesquel le process mining est d’une grande aide.

En dehors de la détection pour des besoins de suivi, de support ou d’audit, on peut pousser plus loin l’utilisation de ces données pour faire des prédictions et des recommandations, en reconnaissant par exemple des motifs qui indique qu’une déviation d’une instance en cours est probable, ce qui permet alors d’intervenir en amont ou d’anticiper des actions à prendre.

Pour voir et manipuler sur un processus order to cash, vous pouvez suivre le lien ci-dessous. La démo inclu des éléments supplémentaires, comme l’analyse des ressources et de la performance :

Cliquez sur l’image pour accéder à l’application (dans un nouvel onglet car elle est hébergée sur un serveur différent)



Liens utiles


Présentation du process mining et de la démonstration : process mining demonstration

Concepts utilisés dans l’article :

En pratique :

  • Analyse des processus métier avec R : bupaR
  • Process mining avec Python : PM4PY



Christophe Nicault
Christophe Nicault
Stratégie des Systèmes d’Information
Transformation Numérique
Data Science

Je travaille sur la stratégie des systèmes d’information, les projets informatiques et la science des données.

Sur le même sujet