![Une piste innovante pour améliorer l'organisation d'une entreprise Une piste innovante pour améliorer l'organisation d'une entreprise](http://media.paperblog.fr/i/483/4835848/piste-innovante-ameliorer-lorganisation-dune--L-4emU7z.jpeg)
Au-delà de l'optimisation des procédures
Les principales approches des consultants pour améliorer l'organisation d'une entreprise consistent à :
- formaliser les diverses activités de l'entreprise sous forme de procédures,
- mesurer les performances de ces procédures à l'aide d'indicateurs,
- chercher à optimiser ces performances en éliminant les tâches superflues et les gaspillages,
- et accélérer les procédures par l'automatisation des tâches qui peuvent l'être.
- la méthode 5S : elle consiste, très schématiquement, à mettre de l'ordre dans son lieu de travail ;
- la méthode Six Sigma : elle vise à éviter de fabriquer des produits non conformes et éliminer les défauts ;
- la méthode Lean Manufacturing : elle cherche à éliminer les gaspillages et à améliorer continûment l'outil de production ;
- ou encore la méthode PDCA (Plan-Do-Check-Act), la méthode Qualité Totale, la méthode Kaizen...
![Une piste innovante pour améliorer l'organisation d'une entreprise Une piste innovante pour améliorer l'organisation d'une entreprise](http://media.paperblog.fr/i/483/4835848/piste-innovante-ameliorer-lorganisation-dune--L-NcRBbH.png)
Je ne nie pas l'intérêt de ces méthodes, ni l'apport des consultants qui permettent aux entreprises de les mettre en œuvre. Mais il est assez rare que les consultants aillent au-delà de cette optimisation, qu'ils repensent une procédure complètement.
Il est pourtant un domaine dont le rôle est précisément de trouver les procédures les plus efficaces pour effectuer une tâche donnée : l'algorithmique.
L'algorithmique et l'entreprise : même combat
L'informatique peut à mon sens apporter encore beaucoup à l'entreprise, et en particulier à son organisation.
L'entreprise moderne est déjà équipée copieusement en outils informatiques : PC de bureau, PC portables, réseaux, clusters, mainframes, mobiles, smartphones, bientôt tablettes ou cloud... Mais il ne s'agit pas de dire qu'il faut encore rajouter une couche d'outils informatiques. Non. Mon propos est tout autre.
Car je parle bien de médiation technique. Il s'agit ici de transposer des principes algorithmiques (la branche de l'informatique qui s'intéresse à la manière de réaliser des tâches) à l'organisation des entreprises.
L'algorithmique a développé un tas de solutions pour réaliser des tâches informatiques diverses : calcul, tri, optimisation, recherche... Ces tâches peuvent généralement être exécutées selon plusieurs méthodes (ou algorithmes) dont l'efficacité peut varier fortement.
De l'importance du choix d'un algorithme
Prenons l'exemple du tri, sans doute le problème d'algorithmique plus classique. Vous avez une grande quantité (N) de valeurs numériques et vous voulez les classer (pour faire une étude statistique sur votre production industrielle, par exemple).
![Une piste innovante pour améliorer l'organisation d'une entreprise Une piste innovante pour améliorer l'organisation d'une entreprise](http://media.paperblog.fr/i/483/4835848/piste-innovante-ameliorer-lorganisation-dune--L-eTN48I.png)
Ce n'est pas très important si N est petit, mais si vous avez un million de valeurs à trier, le premier sera grosso modo cent mille fois plus lent pour trier ces valeurs que le second.
Le choix d'une procédure dans une organisation d'entreprise relève du même problème que le choix d'un algorithme : deux procédures différentes pour réaliser la même tâche peuvent avoir une efficacité considérablement différente.
Et il n'y a pas que la vitesse qui importe : il y a aussi les structures à mettre en jeu. Ainsi, certains algorithmes peuvent nécessiter beaucoup plus de mémoire que d'autres pour réaliser la même tâche.
Prenons un exemple simpliste mais concret : un entrepôt est conçu pour recevoir des colis de plusieurs fournisseurs de produits chimiques (disons, 1 000 fournisseurs) et les stocker dans des box avant de les livrer à plusieurs sites de production (disons, 30 sites). Pour des besoins de sécurité, il est hors de question de placer des produits de fournisseurs différents dans le même box, et pour éviter les erreurs d'adressage il est par ailleurs convenu de ne pas stocker les colis destinés à deux sites différents dans le même box.
![Une piste innovante pour améliorer l'organisation d'une entreprise Une piste innovante pour améliorer l'organisation d'une entreprise](http://media.paperblog.fr/i/483/4835848/piste-innovante-ameliorer-lorganisation-dune--L-0sYBH0.jpeg)
A contrario, si l'on stocke au fur et à mesure les colis dans le premier box libre, on peut se contenter de 400 box, mais par contre la recherche d'un colis devient plus difficile puisqu'il faut parcourir successivement tous les box pour trouver un colis spécifique, soit au pire 400 ouvertures de box. La réactivité de l'entrepôt en est fortement affecté.
On le voit, le choix d'une procédure donnée peut avoir des conséquences importantes sur l'efficacité de l'organisation : on retiendra l'une ou l'autre en fonction de ce qui est prioritaire pour l'entreprise (dans l'exemple précédent, le coût des box ou la réactivité).
Des solutions toutes faites
Avec un peu de chance, l'algorithmique a peut-être une solution encore meilleure que les solutions envisagées jusqu'ici.
Ainsi, les structures de données ont parfois une importance cruciale dans l'efficacité d'un algorithme. Selon qu'on représente informatiquement une collection de données sous forme d'un tableau ou d'une liste, vous pourrez plus ou moins rapidement accéder à la énième donnée (le tableau est mieux dans ce cas-ci) et plus ou moins rapidement retirer une donnée (la liste est mieux dans ce cas-là).
Cela peut se traduire, dans notre entrepôt, par des box statiques numérotés dans le premier cas (c'est l'équivalent du tableau), et des box à roulettes déplaçables dans le second (c'est l'équivalent de la liste).
Cet exemple est élémentaire car on peut très bien imaginer les deux solutions sans passer par l'algorithmique. Mais il y a d'autres solutions, comme par exemple la table de hachage, qui réalise un compromis intéressant entre le tableau et la liste. L'idée est d'utiliser une fonction mathématique convertissant la clé d'identification d'un élément (ici, le couple fournisseur+site) en un entier. Un colis arrivant est placé dans le box correspondant à un entier s'il est vide, ou dans le premier box libre qui suit. On cherchera le colis de la même manière. Cet algorithme marche bien pourvu qu'on ait un nombre de box assez grand (disons, le double du minimum soit 800 box) et une fonction de hachage qui répartit bien les colis dans l'entrepôt.
![Une piste innovante pour améliorer l'organisation d'une entreprise Une piste innovante pour améliorer l'organisation d'une entreprise](http://media.paperblog.fr/i/483/4835848/piste-innovante-ameliorer-lorganisation-dune--L-dc5a2d.jpeg)
Dans la même veine, les algorithmes inventés par les algorithmiciens recouvrent des tâches qui s'apparentent à certaines tâches réalisées par les humains, comme :
- l'affectation de ressources : on peut citer l'algorithme hongrois pour rendre une répartition du travail plus efficace, l'algorithme des nœuds chapeaux pour répartir une ressource entre de nombreux utilisateurs, ou celui des mariages stables pour associer au mieux des binômes par affinité ;
- la recherche du chemin le plus court : l'algorithme de Dijkstra est typiquement utilisé par les GPS mais rien n'interdit de l'appliquer à l'optimisation du trajet d'un cariste dans une usine ;
- ou la parallélisation des tâches : certains algorithmes comme celui de Naimi-Trehel permettent de réduire le nombre de messages à échanger entre les processeurs, ce qui peut donner des idées pour mieux manager une équipe.
De l'algorithmique à la programmation
Enfin, en sortant quelque peu de l'algorithmique, on peut penser aussi à ce que les programmeurs professionnels appellent les patrons de conception (ou design patterns) : il s'agit de bonnes pratiques pour programmer informatiquement un certain nombre de tâches très courantes.
![Une piste innovante pour améliorer l'organisation d'une entreprise Une piste innovante pour améliorer l'organisation d'une entreprise](http://media.paperblog.fr/i/483/4835848/piste-innovante-ameliorer-lorganisation-dune--L-HDQPUD.jpeg)
- la comptabilité appelle tous les jours (voire toutes les heures) la R&D pour savoir s'ils ont fait une opération intéressant la comptabilité (s'ils ont passé une commande ou réceptionné une prestation externe, typiquement) ;
- ou bien la R&D envoie un message à la comptabilité à chaque fois qu'une telle opération est réalisée.
Passer en revue tous les patrons de conception de la littérature informatique permettrait sans doute de proposer des procédures types pour améliorer l'efficacité de l'organisation de nombreuses entreprises. La tâche est vaste, mais je suis persuadé qu'elle pourrait apporter beaucoup à l'économie.