Monsieur Excel
Pour tout savoir faire sur Excel !

28 octobre 2010

Réflexions sur la modélisation

Je vais être dans l’impossibilité d’alimenter ce blog durant 15 jours. A titre de compensation, je vous propose aujourd’hui un article sensiblement plus long que mon format habituel d’une à deux pages. Et ce seulement un jour après ma dernière contribution :)

J’ai commencé à développer des modèles pour les entreprises au début 1970, donc il y a plus de 40 ans. Diplômé de l’ENSIMAG, j’étais alors étudiant au MIT, pour un Ph.D. (doctorat) en recherche opérationnelle. J’ai créé ma première société de conseil, Flight Transportation Associates, quand j’étais encore étudiant. Toutes ces années de conseil représentent une certaine expérience :)

En plus de 40 ans, j’ai développé plus de 1.000 modèles, pour plus de 100 entreprises, dans plus de 10 pays. Au début en Fortran et en assembleur, puis sur Visicalc (le premier tableur, en 1979), Multiplan (à partir de 1982) et enfin – depuis 1985 – exclusivement sur Excel.

Ce qui m’a toujours frappé, c’est l’écart phénoménal que l’on peut constater entre des modèles créés par monsieur tout-le-monde et des modèles réellement performants : un modèle efficace est développé bien plus rapidement, se calcule sensiblement plus vite et occupe beaucoup moins de place en mémoire. Un modèle efficace représente donc une situation de win-win-win par rapport à un modèle lambda !

Temps de développement du modèle

Le tableau ci-dessous illustre quelques écarts entre les temps demandés pour un développement en interne et ceux que j’ai proposés en devis forfaitaire (et que j’ai tenus).

Notez l’excellente performance d’EdF : avec son écart représentant seulement un facteur 4, EdF est la société où j’ai trouvé le plus petit écart avec mon propre temps de développement.

Chaque fois que je me suis trouvé en concurrence avec d’autres sociétés de conseil dans le cadre d’un appel d’offres, mon devis a toujours été entre 3 et 10 fois moins cher que celui du second moins-disant (je ne parle même pas des autres).

Quand un modèle est développé plus rapidement, il est non seulement plus économique mais aussi « meilleur » ! En effet, si un modèle est développé en 3 jours, il a bien plus de chances de coller à la réalité et aux besoins que s’il avait été développé en 6 mois, temps durant lequel la situation que l’on modélise va évoluer et rendre par conséquent le modèle plus ou moins obsolète dès sa sortie.

Il m’est même arrivé une fois qu’un client – l’Institut Géographique National (IGN) en la matière – vienne me voir après que deux des plus grandes sociétés de conseil françaises aient déclaré que leur problème ne pouvait pas être modélisé. Il s’agissait d’un modèle devant proposer le matin, en fonction de la carte météo, quels avions devaient partir faire quelles missions, à quels endroits, en se ravitaillant si nécessaire dans quels aéroports, en embarquant quels appareils d’enregistrement, et ce avec quel équipage…

Pour ceux qui aimeraient savoir comment j’ai modélisé cela (ou qui voudraient tout simplement apprendre plein d’autres choses sur la vraie modélisation, celle qui fait gagner de l’argent aux entreprises), il y a un chapitre de mon livre
« Comprendre et utiliser les modèles », aux Editions d’Organisation, qui est entièrement consacré à ce modèle. Pour acquérir un exemplaire de cet ouvrage, adressez un chèque de 35 € à mon ordre, en adressant la lettre à mon intention, à Logma SA – 12 rue d’Anjou – 78000 Versailles. Si vous commandez de l’étranger ou avez besoin d’une facture, contactez-moi par mail : thiriez@hec.fr.

Temps de calcul du modèle

On observe des écarts tout aussi significatifs entre le temps de calcul d’un modèle développé chez un client – que ce soit en interne ou par un autre prestataire – et le temps de calcul après que j’aie audité et amélioré le modèle.

Ce ne sont que trois exemples, mais il m’est souvent arrivé de diviser les temps de calcul des modèles que j’auditais par un facteur allant de 50 à 100.

Dans le dernier cas (EdF), où il s’agissait de consolider une quarantaine de classeurs Excel, il faut noter aussi que l’application originale comportait 400 pages de code Visual Basic – et était donc pratiquement impossible à auditer – alors que notre solution finale se contente de 8 pages de code, soit 50 fois moins…

Quand nous avons rapproché notre consolidation de celle effectuée avec l’ancien modèle sur les comptes de juin 2009 et de décembre 2009, nous avons trouvé un seul écart (de 600 K€ quand même !). Après analyse, il s’est avéré que l’erreur provenait de l’ancien modèle…

Taille du modèle

En ce qui concerne la taille des modèles, on observe une fois encore des écarts significatifs, comme on peut le constater dans le tableau ci-dessous :

Dans le cas de sanofi, le modèle concernait le « plan clinique », c’est-à-dire l’analyse et le suivi des médicaments en cours d’expérimentation. Au moment où j’ai réalisé le modèle, il y avait un classeur Excel par médicament, et il était quasiment impossible de consolider tout cela. J’ai mis en place un système permettant de tout regrouper en un seul classeur et – par conséquent – de rendre possibles toutes sortes de consolidations.

En ce qui concerne la taille du modèle, il m’est très souvent arrivé de parvenir à des économies de l’ordre d’un facteur 5 à 10.

Les outils décisionnels

De nombreux traitements, de nombreuses fonctionnalités, que l’on effectue aujourd’hui de façon coûteuse (il faut une licence par poste) avec des outils décisionnels peuvent parfaitement bien être réalisés avec Excel.

Nombreux sont mes clients qui, après être passés à un décisionnel, reviennent vers moi un ou deux ans plus tard pour me redemander des outils performants et personnalisés…

Une des raisons pour lesquels ces outils se vendent si bien malgré tout est qu’ils reçoivent l’adhésion totale de votre informatique maison (dont nous avons pu apprécier le niveau de performance dans le premier tableau) : quand vous utilisez ces outils, vos informaticiens sont utiles et donc valorisés ; quand vous utilisez Excel, vous parvenez à vous passer de leurs services, et ils n’aiment pas cela du tout. Pas étonnant donc qu’ils déclarent qu’Excel, « c’est du bricolage »…

En guise de conclusion…

On peut se demander comment il peut y avoir de tels écarts entre une modélisation classique et une modélisation performante. Il y a en fait plusieurs explications…

Tout d’abord, quand une société de conseil réalise un modèle, plusieurs personnes interviennent : le consultant qui analyse le problème et propose un devis, le chef de projet qui va coordonner la réalisation du produit, les développeurs qui vont programmer et enfin le formateur qui va assurer l’installation du modèle (parfois, c’est même quelqu’un d’autre qui fait cela !) et la formation. La coordination et le contrôle de tout ce joli monde représente du temps et pompe de l’énergie. Quand je développe un modèle, j’assure tout cela de A à Z, donc sans la moindre déperdition.

Une autre raison est que, dans toutes les écoles d’informatique, on enseigne la programmation structurée, en « top-down ». L’avantage de cette approche est qu’elle est organisée et systématique, et réduit donc le risque d’erreur.

Depuis plus de 40 ans, je pratique la programmation en « bottom-up », dans laquelle on développe d’abord un premier noyau, autour duquel on ajoute ensuite diverses fonctionnalités, puis d’autres encore, puis d’autres encore… et ce jusqu’à la fin du projet.

La raison pour laquelle cette approche n’est pas conseillée d’habitude est que, si le développeur n’a pas dès le début une vue d’ensemble de ce qu’il réalise et des possibles extensions futures, on aboutit rapidement à une « usine à gaz ».

En revanche, quand cela est bien fait, cela permet de développer bien plus vite qu’avec une approche « top-down ». De plus, contrairement au « top-down », on dispose à tout moment d’un modèle qui fonctionne, sur lequel on peut faire réagir le client, et qui permet donc d’améliorer le modèle au cours de son développement, ce qui est beaucoup plus difficile, sinon impossible, avec une approche « top-down ».

C’est grâce à cette approche « bottom-up » – que j’ai toujours pratiquée – et au fait que je réalise tout moi-même de A à Z, que j’ai pu aboutir aux écarts décrits ci-dessus.

En conclusion, sachez donc que vos modèles existants peuvent probablement être améliorés de façon sensible, et que vos futurs modèles pourraient être bien plus efficaces et bien moins chers, à condition toutefois de vous adresser pour les concevoir à des prestataires bien choisis…

4 Commentaire(s):

  • Bonjour,
    Qu'en est-il de la maintenance du fichier? Les utilisateurs de l'entreprise sont-ils capables de les réparer par eux-mêmes? Doivent-ils passer par vous vu le niveau de complexité que l'on peut imaginer? Pourrions-nous avoir un fichier exemple du produit que vous rendez à la fin de votre mission?
    Sincères salutations.

    By Anonymous Anonyme, sur 8:20 PM  

  • C'est justement tout l'avantage de l'approche "bottom-up". D'en rendre la maintenance ardue voire impossible sans connaitre la logique de développement de son auteur. Mais est-ce un problème pour une société de conseil ? Après tout, vendre de la prestation pour la maintenance/évolution de son propre modèle, c'est intéressant (attention, ce n'est pas une critique. Je conçois tout à fait le besoin, sinon, la société de conseil ferme assez vite boutique en règle générale).

    Quand on parle d'obtenir une "usine à gaz", on parle très rarement de la conception du modèle, mais bien du modèle terminé et fourni.Quand la personne a tout fait de A à Z, effectivement, elle savait où elle allait et tout fonctionne nickel. Mais le jour où la personne n'est plus là (prestation, maladie, décès, flemmite aigüe ...), et bien, personne ne sait comment cela fonctionne ou on met tellement de temps à chercher qu'on a aussi vite fait de re-développer un tout nouveau modèle fait de A à Z par une seule et même personne, etc ...
    Ah ben tiens, si on faisait un audit par une société externe, qui va nous faire un truc qui tourne nickel que même ces nuls de l'informatique seront dingues de n'avoir pas su faire si simple.
    Laissez ce tout nouveau fichier bien tranquille dans une société pendant un an ou deux, revenez : vous avez une nouvelle usine à gaz que personne ne comprend et que même le concepteur original peut avoir du mal à auditer.

    A mon avis, si les fichiers que vous avez audité la plupart du temps sont aussi gros (remplacer + de 200 classeurs excel par un seul), c'est bien parce que ce schéma s'est répété pendant x temps.

    Mais ce qui m'étonne, c'est un écart de développement de 2 ans à 15 jours... Pour des modèles développés sous Excel ?
    Vous êtes sûrs que la question posée au service informatique n'était pas :"Coco, améliore moi ça en gardant telle fonctionnalité, telle autre, ..." alors que vous, en tant qu'Oeil externe à l'entreprise, vous arrivez en reprenant tout à zéro ?
    C'est fou le nb de gens dans une hiérarchie qui refusent toutes modifications de leurs habitudes quand c'est leur service informatique qui le propose, et qui trouve que c'est l'idée du siècle quand ça vient d'un consultant externe ...

    Et je ne dis pas ça parce que moi aussi, mon boulot c'est de développer des modèles/reporting/statistiques dans le service informatique d'une grande boîte et que je me retrouve obligé de reprendre/adapter/maintenir des modèles développés en externe.

    By Anonymous Anonyme, sur 3:27 PM  

  • Colectionneur de l'informatique des années 80/90, je viens de mettre la main sur un exemplaire de "Prise en main de Javelin" avec ses disquettes de démo (dont vous êtes l'auteur pour ceux qui ne le sauraient pas).

    Alors j'en profite pour vous saluer. J'adorais cet outil découvert à l'occasion d'un de mes premiers stages en entreprise.

    By Anonymous Anonyme, sur 11:55 AM  

  • Réponse au commentaire #1

    Je n’ai jamais eu de problème, en 40 ans, avec la maintenance. Soit le client me demande de l’assurer, contre une rémunération annuelle, soit il la prend en charge lui-même, mon code étant toujours clair et accessible. Je ne peux évidemment pas vous fournir un exemple, mais tous mes clients peuvent témoigner de la véracité de mes propos.

    Réponse au commentaire #2

    Quand vous déclarez « le jour où la personne n'est plus là … personne ne sait comment cela fonctionne », je ne suis pas d’accord. Votre affirmation peut être exacte dans certains cas mais justement pas si le modèle a été développé par une personne possédant une vision claire et qui a en outre bien documenté son produit, ce qui est le cas lors de mes interventions.

    Quand à l’audit/amélioration de modèles, il m’est arrivé de tout refaire plutôt que d’essayer de modifier un existant devenu inadéquat. C’est ce que j’ai fait dans le cas du modèle EdF où il y avait 400 pages de code Visual Basic.

    Réponse au commentaire #3

    En ce qui concerne Javelin, j’ai même écrit un livre de 200 pages baptisé « Prise en main de Javelin Plus » qui a pour particularité d’avoir été vendu à 0 exemplaire – le produit n’ayant finalement pas été commercialisé – mais d’avoir été quand même bien rentable (pour moi) puisque l’éditeur du logiciel me l’avait commandé :)

    By Blogger Hervé Thiriez, sur 9:03 AM  

Enregistrer un commentaire

<< Accueil