# Workflow

Un workflow, flux de travaux ou encore flux opérationnel, est la représentation d'une suite de tâches ou d'opérations effectuées par une personne, un groupe de personnes, un organisme, etc. Le terme flow (« flux ») renvoie au passage du produit, du document, de l'information, etc., d'une étape à l'autre.

## Terminologie

En France, le terme officiellement recommandé par la Commission d'enrichissement de la langue française est « flux de travaux ». Au Canada, le Grand Dictionnaire terminologique propose « flux de travaux » ou « flux des travaux ». On trouve aussi l'expression « flux opérationnel » chez des professionnels.

## Définition

De façon pratique, le workflow sert à décrire le circuit des traitements, les tâches à répartir entre les différents acteurs d'un processus, les délais, les contrôles et modes de validation, et à fournir à chacun des acteurs les informations nécessaires à l'exécution de sa tâche. Le workflow identifie les acteurs en précisant leur rôle et la manière de le remplir au mieux. Les acteurs peuvent être des humains ou des automates présents dans le système d'information. Le workflow permet un pilotage et un suivi des traitements. Pour un processus de publication en ligne par exemple, il s'agit de la modélisation des tâches de l'ensemble de la chaîne éditoriale.
On appelle workflow management (« gestion du flux de travail ») la modélisation et la gestion informatique de l'ensemble des tâches à accomplir et des différents acteurs impliqués dans la réalisation d'un processus métier (ou « processus d'affaires » ou encore « processus opérationnel » ) ou d'une « procédure d'entreprise ».
Un moteur de workflow est un dispositif logiciel permettant d'exécuter une ou plusieurs définitions de workflow. Par abus de langage, on abrège parfois cette expression en « workflow ».

## Normalisation

Les organismes suivants interviennent dans la standardisation et la normalisation relatives aux workflows :
* la WfMC (The Workflow Management Coalition), organisme de plus de 300 membres qui a pour objectif de standardiser le workflow ;
* la WARIA (Workflow and Reengineering International Association), association créé à l'origine entre BPMI et OMG avant que les deux ne fusionnent ;
* l'OMG (The Object Managment Group), consortium d'entreprises du secteur des technologiqes de l'information ;
* l'ISO, Organisation internationale de normalisation.

## Historique

L'industrie de l'imagerie électronique et de la gestion de la production assistée par ordinateur a été la première à réclamer une technologie qui permette l’automatisation des procédures de travail, jusqu’alors réalisées à la main.
À partir de l’année 1975 et jusqu’en 1985, la nouvelle technologie dite de workflow a connu un essor important par la mise en place d'un système capable d’automatiser au mieux les flux de travail. Ainsi des systèmes de workflow statique ont vu le jour : Officetalk-P, Backtalk, Poise, Xerox InConcert, etc.
De nombreuses entreprises ayant développé des produits similaires n’ont pu passer le cap du millénaire, car les outils réalisés étaient grevés par un prix élevé et une complexité importante. L’échec du workflow statique est principalement dû au fait qu’il était très difficile d’intégrer et de modifier les procédures de travail dans les systèmes workflow. Les traitements et les données faisaient partie intégrante du système et rendaient la tâche ardue.
Le regain d’intérêt pour le génie logiciel au début des années 1990 a permis de relancer les recherches concernant les systèmes workflow afin de mettre en place des systèmes plus simples à utiliser. Il s’est ensuivi une véritable explosion quant aux systèmes élaborés, dont Oval, Apricot, MelMac, WAMO, FreeFlow, etc. Ces systèmes, connus sous le nom de workflow générique, proposaient une nouvelle approche du workflow. L’idée était de séparer traitement et données relatives aux procédures de travail et d'offrir de la sorte une plus grande facilité quant à la création, la modification ou la suppression de ces procédures.
De nos jours, ces « nouveaux » systèmes sont tout à fait opérationnels et largement utilisés par les entreprises. Il n’en demeure pas moins que de nouvelles recherches sont menées pour obtenir encore plus de souplesse et d’adaptabilité. C’est dans ce contexte bien particulier de flexibilité qu’est né le workflow adaptatif.

## Système de gestion des flux de travail

Un système de gestion des flux de travail (WfMS) est un système logiciel permettant de mettre en place, d'exécuter et de contrôler une séquence définie de processus et de tâches, avec pour objectifs généraux d'augmenter la productivité, de réduire les coûts, de devenir plus agile et d'améliorer l'échange d'informations au sein d'une organisation. Ces systèmes peuvent être centrés sur les processus ou les données, et ils peuvent représenter le flux de travail sous forme de cartes graphiques. Le système de gestion des flux de travail peut également inclure une interface extensible afin que des applications logicielles externes puissent être intégrées et fournir un support pour des flux de travail à grande échelle qui permettent des temps de réponse plus rapides et une meilleure productivité.

## Concepts apparentés

Le concept de flux de travail est étroitement lié à plusieurs domaines de la recherche opérationnelle et à d'autres domaines qui étudient la nature du travail, soit quantitativement soit qualitativement, comme l'intelligence artificielle (en particulier la sous-discipline de la planification de l'IA) et l'ethnographie. L'expression « flux de travail » est plus couramment utilisée dans des secteurs particuliers, comme l'imprimerie, ou dans des domaines professionnels tels que les laboratoires cliniques, où il peut avoir des significations spécialisées particulières.
1. Processus : Un processus est une notion plus générale que le flux de travail et peut s'appliquer, par exemple, aux processus physiques ou biologiques, alors qu'un flux de travail est généralement un processus ou un ensemble de processus décrits dans le contexte du travail, comme tous les processus se déroulant dans un atelier d'usinage.
2. Planification et ordonnancement : Un plan est une description de l'ensemble d'activités logiquement nécessaires et partiellement ordonnées qui sont requises pour atteindre un objectif spécifique dans certaines conditions de départ. Un plan, lorsqu'il est complété par un calendrier et des calculs d'allocation de ressources, définit complètement un cas particulier de traitement systématique dans la poursuite d'un objectif. Un flux de travail peut être considéré comme une réalisation souvent optimale ou quasi optimale des mécanismes requis pour exécuter le même plan de manière répétée.
3. Contrôle des flux : Il s'agit d'un concept de contrôle appliqué aux flux de travail, à distinguer du contrôle statique des tampons de matériaux ou de commandes, pour signifier un contrôle plus dynamique de la vitesse du flux et des volumes de flux en mouvement et en cours. Une telle orientation vers les aspects dynamiques est la base de base pour préparer des contrôles plus avancés en atelier, tels que le juste à temps ou le juste à la suite.
4. Visibilité en transit : Ce concept de contrôle s'applique aux matériaux transportés ainsi qu'aux travaux en cours ou à venir, c'est-à-dire aux flux de travail.

## Exemples

Les exemples suivants illustrent la variété des flux de travail dans divers contextes.
1. Dans les ateliers d'usinage, en particulier les ateliers de travail et les ateliers de flux, le flux d'une pièce à travers les différents postes de traitement est un flux de travail.
2. Le traitement des demandes d'assurance est un exemple de flux de travail à forte intensité d'information et axé sur les documents.
3. L'édition Wikipédia peut être modélisée comme un flux de travail stochastique.
4. Le système Getting Things Done est un modèle de gestion de flux de travail personnel pour les travailleurs de l'information.
5. Dans le développement de logiciels, l'assistance et d'autres industries, le concept de follow-the-sun décrit un processus de passage du travail inachevé à travers les fuseaux horaires.
6. Dans l'impression offset et numérique traditionnelle, le concept de flux de travail représente le processus, les personnes et généralement les contrôleurs de technologie logicielle (RIPs raster image processors ou DFE digital front end) qui jouent un rôle dans le pré/post-traitement des fichiers liés à l'impression, par exemple, la vérification avant le vol des PDF pour s'assurer que les polices sont intégrées ou que la sortie d'image vers la plaque ou la presse numérique sera capable de rendre l'intention du document correctement pour les capacités de sortie d'image de la presse qui imprimera l'image finale.
7. Dans les expériences scientifiques, le processus global (tâches et flux de données) peut être décrit comme un graphique acyclique dirigé (DAG). Ce DAG est appelé flux de travail, par exemple, les flux de travail de l'imagerie cérébrale$^,$.
8. Dans l'analyse des données de santé, un flux de travail peut être utilisé pour représenter une séquence d'étapes qui composent une analyse de données complexe (étapes de recherche et de manipulation des données).
9. Dans les architectures orientées services, une application peut être représentée par un flux de travail exécutable, où différents composants de services, éventuellement répartis géographiquement, interagissent pour fournir la fonctionnalité correspondante sous le contrôle d'un système de gestion de flux de travail.
10. Dans les services partagés, une application peut être dans la pratique de développer l'automatisation de processus robotisés (appelée RPA ou RPAAI pour self-guided RPA 2.0 basé sur l'intelligence artificielle) qui résulte dans le déploiement d'agents logiciels assistés ou non assistés dans l'environnement d'une organisation. Ces agents logiciels, ou robots, sont déployés pour exécuter des ensembles prédéfinis de tâches ou de processus métier structurés et répétitifs. Les robots logiciels à intelligence artificielle sont déployés pour traiter des ensembles de données non structurées et sont déployés après avoir effectué et déployé l'automatisation des processus robotisés.
11. La mise à jour des procédures internes des établissements bancaires pour lutter contre l'évasion fiscale. Les solutions de type DAMAaaS sont utilisées dans ces cas-là pour permettre de répondre à certaines exigences réglementaires du secteur.

## Caractéristiques

1. Modélisation : Les problèmes de flux de travail peuvent être modélisés et analysés à l'aide de formalismes basés sur des graphiques comme les réseaux de Pétri.
2. Mesure : De nombreux concepts utilisés pour mesurer les systèmes d'ordonnancement dans la recherche opérationnelle sont utiles pour mesurer les flux de travail généraux. Il s'agit notamment du débit, du temps de traitement et d'autres mesures régulières.
3. Connotations spécialisées : Le terme workflow a des connotations spécialisées dans les technologies de l'information, la gestion des documents et l'imagerie. Depuis 1993, un consortium commercial s'est concentré spécifiquement sur la gestion des flux de travail et l'interopérabilité des systèmes de gestion des flux de travail, la Workflow Management Coalition.
4. Systèmes de flux de travail scientifique : Ces systèmes ont été largement acceptés dans les domaines de la bioinformatique et de la cheminformatique au début des années 2000, lorsqu'ils ont répondu au besoin de disposer de multiples outils interconnectés qui traitent de multiples formats de données et de grandes quantités de données. En outre, le paradigme des flux de travail scientifiques ressemble à la pratique bien établie de la programmation Perl dans les organismes de recherche en sciences de la vie, ce qui fait de cette adoption une étape naturelle vers la mise en place d'une infrastructure plus structurée.
5. Interaction homme-machine : Plusieurs conceptualisations de flux de travail d'initiative mixte ont été étudiées, en particulier dans le domaine militaire, où des agents automatisés jouent des rôles tout comme les humains. Pour un travail humain innovant, adaptatif et collaboratif, les techniques de gestion des interactions humaines sont nécessaires.
6. Analyse des flux de travail : Les systèmes de flux de travail permettent aux utilisateurs de développer des processus exécutables sans aucune familiarité avec les concepts de programmation formelle. Les techniques automatisées d'analyse des flux de travail peuvent aider les utilisateurs à analyser les propriétés des flux de travail des utilisateurs afin d'effectuer la vérification de certaines propriétés avant de les exécuter, par exemple, l'analyse du contrôle des flux ou du flux de données. Des exemples d'outils basés sur des cadres d'analyse formels ont été développés et utilisés pour l'analyse de flux de travail scientifiques et peuvent être étendus à l'analyse d'autres types de flux de travail.

## Composants

Un flux de travail peut généralement être décrit à l'aide de techniques de diagrammes de flux formels ou informels, montrant les flux dirigés entre les étapes de traitement. Les différentes étapes de traitement ou composantes d'un flux de travail peuvent être définies par trois paramètres :
* La description des entrées : les informations, le matériel et l'énergie nécessaires pour réaliser l'étape
* Les règles de transformation : algorithmes pouvant être exécutés par des personnes ou des machines, ou les deux
* La description des résultats : les informations, les matériaux et l'énergie produits par l'étape et fournis en entrée aux étapes en aval
Les composants ne peuvent être connectés ensemble que si la sortie d'un (ou de plusieurs) composant(s) précédent(s) est égale aux exigences d'entrée obligatoires du (ou des) composant(s) suivant(s). Ainsi, la description essentielle d'une composante ne comprend en fait que les entrées et les sorties qui sont décrites de manière complète en termes de types de données et de leur signification (sémantique). Les descriptions des algorithmes ou des règles ne doivent être incluses que lorsqu'il existe plusieurs façons de transformer un type d'entrée en un type de sortie - éventuellement avec une précision, une vitesse, etc. - différentes.
Lorsque les composants sont des services non locaux qui sont invoqués à distance via un réseau informatique, tels que des services Web, des descripteurs supplémentaires (tels que la qualité de service et la disponibilité) doivent également être pris en compte.

## Applications

De nombreux systèmes logiciels existent pour prendre en charge les flux de travail dans des domaines particuliers. Ces systèmes gèrent des tâches telles que le routage automatique, le traitement partiellement automatisé et l'intégration entre différentes applications logicielles fonctionnelles et systèmes matériels qui contribuent au processus de valeur ajoutée sous-jacent au flux de travail. Il existe également des fournisseurs de logiciels qui utilisent le service de messagerie piloté par le processus technologique et basé sur trois éléments :
* objets standard ;
* objets de flux de travail ;
* flux de travail.