RECHERCHE :
Bienvenue sur le site de Michel VOLLE
Powered by picosearch  


Vous êtes libre de copier, distribuer et/ou modifier les documents de ce site, à la seule condition de citer la source.
 GNU Free Documentation License.

Approche du système d'information par les processus

20 décembre 2003

Processus et pratique

Le mot " processus " est à la mode, ce qui entraîne des confusions : lorsque quelqu’un l’utilise, on a du mal à savoir quel sens exact il lui donne. Pourtant ce mot évoque non une théorie vague et vaporeuse, mais une action pratique et d’ailleurs de simple bon sens.

Toute entreprise est en effet organisée pour la production de valeur, cette production se concrétisant par la fourniture d’un output (que celui-ci soit désigné par les termes " produit ", " service " ou " livrable ") en consommant certains inputs, la valeur produite étant alors la différence entre la valeur des outputs et la valeur des inputs. On peut calculer la valeur produite soit en considérant l’entreprise comme un tout, soit en la subdivisant en métiers divers qui chacun produisent une valeur spécifique. On peut encore subdiviser ce découpage, l’important étant qu’à chaque classe de ce découpage on puisse associer un " output ", des " inputs ", et une valeur. Trouver le " bon " niveau de découpage est affaire d’expérience et de doigté. L’important est d’identifier le découpage qui correspond aux possibilités de l’entreprise en matière de gestion et qui permet une identification claire des responsabilités.

Une fois ce découpage effectué et les valeurs que produit l’entreprise identifiées, se pose pour chacune de ces valeurs une question simple et évidente : "  Comment s’y prend-on pour produire cette valeur ? ".

Pour répondre à cette question, il faut considérer les étapes de la production, les activités des divers acteurs (contenu, enchaînement), les moyens qu’ils utilisent (papier, téléphone, ordinateur, outils, machines, biens intermédiaires), les données qu’ils consultent, saisissent, traitent etc.

Lorsque l’on a décrit tout cela, on a décrit un " processus ", enchaînement des activités concourant à la production d’une valeur.

On commence donc à parler en termes de processus quand, après avoir répondu à la question " que faire ? ", on pose la question " comment faire ? ".

Où est la nouveauté ?

L’approche par les processus n’a rien de nouveau. Certains pourraient penser qu’il est déplacé de donner tant d’importance à une démarche que l’on pratique depuis longtemps.

Ils ont pour partie raison : cette démarche colle au bon sens, qui n’est pas chose récente ; mais il y a tout de même une nouveauté : mettre l’accent sur le processus en tant que tel, ce n’est pas seulement dire que l’on va s’occuper de " la façon dont on fait les choses " ; c’est dire aussi que l’on va la documenter, l’expliciter. La nouveauté, ce n’est pas de parler des processus - puisqu’il y a des processus depuis que l’être humain travaille - c’est de se donner pour but de les élucider.

Élucider un processus, c’est :
-
porter sa description à un niveau de clarté et de simplicité qui l’illumine,
- rendre cette description transparente en facilitant son partage entre les acteurs concernés.

Faire passer l’organisation des tâches de l’implicite à l’explicite, c’est une démarche qui a des conséquences : elle n’est donc pas neutre.

NB : On dit parfois qu’il faut " optimiser les processus ". L'ambition d'optimiser tend la volonté dans la recherche de la perfection, et implique que l’on soit capable de déterminer l’optimum a priori. Il est préférable de suivre la démarche plus modeste de l’élucidation.

Améliorer les processus

Un des premiers résultats de cette démarche, c’est de rendre visibles les défauts éventuels d’un processus. Prenons quelques exemples.

1) Si le traitement du courrier comporte une phase pendant laquelle la lettre arrivée est posée sur une pile, et la pile de lettres est traitée du haut en bas (comme cela peut se produire sur le bureau de chacun), le courrier sera traité selon le mode LIFO (" last in, first out ") qui introduit des délais de réponse aléatoires et suscite des non réponses une fois le délai décent dépassé.

2) Si l’enchaînement des tâches ne permet pas le suivi d’une affaire (on ne peut pas savoir où est un dossier en cours de traitement, on ne sait donc pas quelles opérations ont été faites sur ce dossier, on ne peut pas consulter les avis donnés avant que l’ensemble du circuit n’ait été parcouru), on devra se livrer sur chaque dossier terminé à une vérification lourde ; on risque de relancer des démarches en fin de course parce telle étape intermédiaire aura été mal réalisée.

3) Si l’enchaînement des tâches ne " boucle " pas (c’est-à-dire si l’on ne contrôle pas son délai de traitement), on risque que le dossier se " perde dans les sables ", qu’il passe de main en main pour finir dans une discrète corbeille à papier.

4) Si les " livrables " intermédiaires (ce que doit fournir chacun des acteurs qui contribue au processus) sont définis de façon ambiguë, des allers et retours et récriminations entre acteurs successifs sont inévitables.

5) Si les données sont saisies sans que l’on dispose de moyens de vérification sur le poste de travail, des erreurs seront introduites dans les fichiers ; il faudra les détecter en batch et les corriger péniblement.

6) S’il faut une ressaisie manuelle pour recopier dans une application certaines données résultant d’une autre, elles provoqueront des erreurs (le taux d’erreur est de quelques fractions de pour mille) et introduiront des délais aléatoires dans les mises à jour.

7) Si une liste de diffusion n’est pas mise à jour sans délai en fonction des nominations et changements d’affectation, les circuits des documents et des informations seront mal ajustés.

8) Si une personne ne consulte jamais sa boîte aux lettres, elle sera inopérante dans tout circuit de décision impliquant l’usage de la messagerie.

9) Si une documentation technique est diffusée en mode papier, la prise en compte des corrections apportées par ses versions successives supposera un travail de classement pénible de la part de l’utilisateur, et souvent elle ne sera pas faite.

10) Si les données de référence sont stockées dans plusieurs endroits différents, il faudra les mettre à jour à la main simultanément lors de tout changement du contexte, ce qui entraîne des risques d’oublis suscitant des incohérences dans le système d’information.

De l’élucidation à l’animation

L’élucidation des processus ne comporte donc pas seulement la phase descriptive pendant laquelle on note ce qui se passe dans de petits diagrammes (avec des cases, titres, flèches entre les cases, commentaires etc.) ; c’est aussi une phase normative, mais naturelle, car elle fait apparaître des défauts qui sautent aux yeux et les participants aux travaux trouvent alors tout simple de les corriger.

" Faire apparaître ", " trouver tout simple ", cela ne va pas de soi : pour que cela marche, il faut un animateur habile qui rendra les choses perceptibles en éveillant l’intuition des participants.

La collecte de l’information sur les processus, la validation de leur élucidation, la discussion des résultats, supposent des contacts avec des experts du métier puis une animation plus large touchant finalement l’ensemble des praticiens concernés. L’expérience montre que les gens de métier participent avec enthousiasme à ces démarches (le mot "enthousiasme" n’est pas trop fort) : l’élucidation clarifie en effet des questions qu'ils se posaient confusément et qui les mettaient mal à l’aise ; elle leur permet de supprimer des dysfonctionnements irritants, ou de comprendre la rationalité sous-jacente à ce qu’ils prenaient pour un dysfonctionnement.

Si l’on veut capitaliser le progrès accompli lors de l’élucidation il faut articuler une transformation du système d’information à l’élucidation du processus. C’est ce que certains consultants résument par la règle " pas de processus sans workflow ", " No Process Without Workflow ".

Il y a là aujourd’hui une difficulté pratique. Les consultants spécialisés dans l’élucidation des processus (on dit " l’analyse des processus ") sont souvent des organisateurs et non des informaticiens et il existe, au sein des grands cabinets, une méfiance réciproque qui nuit à la coopération entre consultants en organisation et consultants en informatique.

A cette difficulté pratique correspond bien sûr un piège : d’excellents travaux peuvent être réalisés sur les processus sans que l’on se soucie de leur articulation avec le système d’information. Trop souvent ces travaux se concentreront sur des améliorations de détail et de court terme, utiles certes mais d’une utilité limitée car ils n’envisagent pas la totalité du processus mais seulement une partie ; par ailleurs, il sera impossible, sur la base de ces travaux, de disposer des outils de contrôle automatique permettant de vérifier leur application.

Mise en place d’un workflow

Le processus, c’est la succession des activités des acteurs avec leurs délais, leur qualité etc. Un " workflow ", c’est une application informatique qui a pour but de rendre visible cette succession et d’en permettre le contrôle. Lorsqu’un processus est équipé d’un workflow, il est possible de :
- savoir à tout moment où en est la procédure appliquée à un dossier, consulter les avis qui ont été donnés, relancer la procédure si elle s’enlise,
- contrôler les délais de bouclage sur l’ensemble du processus comme sur la production de livrables intermédiaires,
- rerouter automatiquement un dossier si l’un des acteurs est absent ou empêché, ou encore s’il met trop de temps à le traiter,
- produire automatiquement des indicateurs de délais et de volume permettant à l’animateur de contrôler la qualité du processus et de redéfinir l’allocation des ressources si des goulets d’étranglement apparaissent.

Le workflow, avec son formalisme et ses outils, concrétise l’élucidation du processus et permet de la capitaliser, c’est-à-dire de la garder vivante en mémoire, de la mettre à jour et de la communiquer.

Représentation du processus

Quand on utilise le formalisme du workflow, un processus se décrit sous la forme d’un graphe. Les nœuds représentent les tâches élémentaires (" activités "), les arcs représentent le trajet des messages émis à la fin d’une tâche pour lancer les tâches suivantes. Il est utile de donner à ce graphe la forme circulaire qui marquera que le processus est déclenché par un fait extérieur (réception d’une commande, d’une lettre de réclamation, franchissement du délai de maintenance d’un équipement) auquel il répond par une action sur l’extérieur (livraison, lettre, opération de maintenance). Il convient de s’assurer que cette réponse a lieu dans un délai et sous une forme convenable : c’est le contrôle du bouclage du processus.

Il faut aussi introduire d’autres compteurs (volume, délai, valeur etc.). En effet, la formalisation du processus suscite une organisation impliquant une délégation de responsabilité aux personnes qui réalisent les tâches. Dès lors l’intervention de l’encadrement ne se fonde plus sur l’approbation des actes un par un, mais sur un contrôle statistique a posteriori et sur la diffusion de consignes nouvelles si des dysfonctionnements apparaissent ou si l’on veut faire évoluer le processus.

On peut aussi représenter le processus par un modèle en couches :

La réalisation d’un processus suppose le plus souvent des sous-processus fournissant chacun un " livrable " intermédiaire (exemple : expertise fournie lors de l’instruction d’une demande d’autorisation d’investissement).

Tout processus a une existence de facto, avant sa description. Mais un processus qui n’a pas été décrit ni pensé présente souvent des défauts. Par exemple il ne boucle pas : la succession des tâches se poursuit sans que l’on vérifie qu’il a été répondu à chaque événement extérieur, et le risque existe qu'il " se perde dans les sables " (c’est le cas lorsqu’une lettre de client passe de mains en mains, sans que personne ne contrôle le délai de réponse : on finit par renoncer à lui répondre lorsque le délai décent a été dépassé).

Situation cible

Comment se présente une entreprise dont les processus ont été élucidés et équipés de workflows permettant un contrôle de leur qualité (ainsi que les évolutions liées à celles des missions de l’entreprise) ?

1) D’une part, et c’est ce qui frappe le plus, les personnes qui travaillent dans cette entreprise trouvent leur travail simple, logique, efficace. L’organisation de la succession des tâches leur est connue, ainsi que la démarche à suivre en cas d’incident. Elles savent ce qu’elles ont à faire et ce que doivent faire les personnes avec qui elles coopèrent. Elles disposent d’un espace de responsabilité dans lequel elles peuvent exercer leur jugement et leur esprit d’initiative.

2) Le nombre des niveaux hiérarchiques a diminué : la transparence, l’automatisation des indicateurs rendent en effet inutiles les " petits chefs " dont le rôle était de transmettre aux exécutants les consignes de la direction, puis de faire des rapports à la direction sur l’exécution des tâches.

3) Les structures ainsi organisées sont " qualifiantes " : l’agent accroît ses compétences en travaillant.

4) Leur pilotage est facilité par la transparence du processus. Cette transparence facilite aussi les démarches qualité en faisant clairement apparaître les performances de chaque entité.

5) Les informations accumulées à l’occasion du déroulement des processus constituent une source éditoriale qui peut être exploitée pour alimenter les systèmes d’information décisionnels.

L'étude du casInfotel " illustre les conséquences pratiques de cette démarche ainsi que les difficultés que l’on rencontre dans son déroulement.

Processus et objets

Pour décrire l'activité d'un utilisateur, il suffit d’indiquer les données que celui-ci consulte, celles qu’il saisit, les traitements qu’il lance, ainsi que l’ordre (éventuellement souple) dans lequel il réalise ces opérations. Chaque utilisateur va consulter ou saisir quelques données, déclencher un nombre limité de traitements : ceci conduit naturellement vers la programmation orientée objet.

Le langage UML (Unified Modeling Language " ; cf. Martin Fowler, UML distilled, Addison Wesley 1997), qui fédère les langages de modélisation en matière d’approche objet, fournit les documents nécessaires pour décrire les activités (" use cases  " selon le vocabulaire de Jacobson), les classes (" diagrammes de classes ") et la succession des opérations (" diagrammes de séquences "). On construit ainsi un " modèle complet " qui, établi par un maître d’ouvrage et communiqué au maître d’œuvre informatique, indique à ce dernier ce qui doit apparaître sur les écrans des utilisateurs, les actions que ceux-ci vont réaliser, ainsi que les compteurs utilisés à des fins de contrôle. Un outil comme le logiciel Rose de Rational facilite la mise en forme du modèle et permet en outre de générer automatiquement une grande partie du code source une fois le processus modélisé.

Le modèle complet des processus est plus précis que les spécifications fonctionnelles fournies à l’informatique. Il indique sans ambiguïté ce que l’utilisateur veut faire et aide à découper le développement en petits modules, les classes, clairement reliées chacune à une finalité pratique (c’est pour cela que l’on parle d’" objets métier ").

L’analyse des activités fait apparaître que les mêmes classes sont utiles à plusieurs acteurs ou que l’on peut satisfaire les besoins de plusieurs acteurs en construisant des classes dont la forme logique est identique ou analogue (héritage, polymorphisme). Elle fait également apparaître que les mêmes classes sont souvent articulées au sein de " composants " qui les regroupent, ce qui permet de fédérer leurs interfaces. Ces analogies et regroupements font parfois apparaître des êtres sémantiques nouveaux concrétisant des concepts inédits. Les langages de développement " orientés objet " exploitent ces possibilités qui allègent le développement au bénéfice de la conception. Ils visent à réduire ainsi les coûts de maintenance et à faciliter l’évolution du système d’information.

La mise en œuvre du modèle par l’informatique suppose que les développements soient réalisés en utilisant un des langages qui supportent le formalisme objet (Java, C++). Une articulation intelligente entre les outils de développement et les langages de modélisation UML permet de maîtriser la documentation des versions successives, les mises à jour à introduire lors des évolutions, et facilite l’évolutivité du logiciel selon les versions successives du modèle métier.

Les échanges de messages entre objets ou avec les bases de données sont réalisés par un " broker " (exemples de produits du marché : Tuxedo de BEA, Orbix d’Iona) qui traite les problèmes d’adressage, de transcodage, ainsi que les questions délicates de " persistance " pendant la durée de la transaction (notamment les questions de " concurrence " qui se posent lorsque deux utilisateurs travaillent en même temps sur le même composant ). Ceci suppose que l’informatique soit capable de dominer l’articulation du monde objet avec les anciennes applications, dont l’adaptation aux langages "orientés objet" prendra quelques années. Les techniques à maîtriser pour assurer un service de qualité convenable en univers hétérogène sont délicates et nécessitent une compétence élevée chez les informaticiens.

Si cette conception de l’informatique implique l’acquisition de compétences nouvelles de la part des informaticiens (apprentissage des langages Java et C++, de la maîtrise des " brokers " et du "middleware", de la programmation des interfaces (Java et HTML), de l’articulation de la gestion de configuration avec les modèles métiers en UML), elle offre à la profession informatique un terrain d’expansion nouveau et renouvelle les conditions du dialogue avec les utilisateurs. Beaucoup d'informaticiens considèrent cette évolution avec intérêt.