Merise, avec plein de toiles d’arai­gnée tout autour


J’ai invo­lon­tai­re­ment lancé un pavé dans la mare en deman­dant en public pourquoi les écoles conti­nuent d’en­sei­gner Merise, et pourquoi les jeunes diplô­més persistent à appo­ser le terme en bonne place sur leur CV.

Soyons clairs, j’ai fait beau­coup de missions diffé­rentes, dans le public, le bancaire, le commerce, l’in­dus­trie… Je n’ai jamais croisé Merise. En fait déjà quand j’étais moi-même à l’école il y a une dizaine d’an­nées, il y avait déjà l’aveu que ce n’était quasi­ment pas/plus utilisé et que notre ensei­gne­ment était dépassé sur ce point

Même UML dont la nota­tion est plus ou moins concur­rente ou équi­va­lente à celle de Merise, j’en ai fina­le­ment assez peu vu. Ça s’est limité aux quelques cahiers de spéci­fi­ca­tions que personne ne lit et qui sont tota­le­ment inutiles, ou à un petit jeu de diagrammes de bases plus ou moins repris comme conven­tion pour échan­ger entre nous, en atta­chant peu d’im­por­tance à utili­ser les bons symboles.

Alors soyez francs en commen­taire : Utili­sez-vous vrai­ment Merise profes­sion­nel­le­ment ? Vos collègues l’uti­lisent-ils ? Combien de fois l’avez-vous rencon­tré hors sphère éduca­tive ? Était-ce utile ou néces­saire à ce moment là ? Et UML ?

Je n’ai pas la préten­tion de dire que c’est inuti­lisé et complè­te­ment mort, mais ça reste certai­ne­ment peu signi­fi­ca­tif et proba­ble­ment réduit aux gros cahiers de spéci­fi­ca­tions dont personne ne se sert vrai­ment, ou simple­ment imposé par des anciennes direc­tions projet qui ont appris à faire comme ça dans le temps.

De ce côté là ça a la même utilité que Cobol ou Fortran : indis­pen­sable dans certaines entre­prises qui ont un SI d’il y a 20 ans ou des contraintes très spéci­fiques, inutile partout ailleurs. Là où c’est encore moins utile que Fortran c’est que pour le jeune diplômé qui ne fera que lire, UML est bien plus répandu. Le temps que notre jeune diplômé soit en expé­rience de guider des concep­tions en se basant sur Merise, il en restera encore moins qu’à mon époque et on atten­dra plutôt d’eux qu’ils fassent évoluer les choses. Dans tous les cas il y a bien mieux pour passer son temps en école.

C’est d’ailleurs la même chose côté algo­rith­mie. Merise est peut être très bien fait, je ne dis pas le contraire, mais voir Merise sur un CV c’est assez proche d’un « Turbo-Pascal ». Même si on apprend les concepts et la métho­do­lo­gie avec ça, ça n’ap­porte rien à être mis en avant.  Et sauf si tout le reste du monde est à des années lumières de la France au niveau infor­ma­tique, il y a des chances que notre sacro-sain Merise franco-français ne soit pas indis­pen­sable à cet appren­tis­sage, qu’il y a d’autres façons de faire qui sont parta­gées par juste tout le reste du monde.

Appre­nez à program­mer avec Python, Java, Scheme, Scala ou d’autres. Appre­nez les méthodes agiles, éven­tuel­le­ment appro­fon­dis­sez sérieu­se­ment UML si vous voulez partir dans cette voie, mais Merise, sérieu­se­ment, ne le mettez pas en avant dans votre forma­tion.

Je sais que les écoles ne peuvent évoluer au jour le jour, et qu’il est parfois bon de ne pas céder à la dernière techno quand il s’agit d’ap­prendre des méthodes et des concepts, mais là ça ressemble vrai­ment à un héri­tage histo­rique pous­sié­reux.


12 réponses à “Merise, avec plein de toiles d’arai­gnée tout autour”

  1. Je suis complètement d’accord avec toi sur un point : il n’est pas utile de mettre Merise en avant sur un CV car on le sait tous, ça n’aide souvent que très peu (voir pas du tout) dans la vie de tous les jours.

    Par contre, je pense que cette méthode reste correcte pour enseigner la conception/modélisation de base de données : pour un débutant, je pense qu’il est plus simple de comprendre un diagramme qu’une structure de base déjà toute montée.

    De la même manière, je pense que la notation UML (seulement certains points de la méthode) sont indispensables à l’apprentissage, surtout lorsqu’on ne souhaite pas focalisé son enseignement sur un langage spécifique.

    Pour conclure, je pense que les abstractions fournies par ces méthodes sont utiles à l’apprentissage mais pas forcément par la suite. Lorsqu’on a assimiler les concepts, on peut s’en passer sauf dans certains cas bien précis…

  2. ah la célèbre méthode Merise !
    LA fierté française :)

    Longuement étudié, jamais utilisé.
    Il me semble que mon école enseigne UML à présent.
    Mais la encore, l’utilité réelle en entreprise est plus que sujet à caution…

  3. Je suis sorti de l’école il y a 1 an. J’y ai appris UML et en fouillant un peu on s’aperçoit qu’effectivement c’est très proche de Merise.

    UML m’est particulièrement utile pour la rédaction de spécifications/documentation techniques :
    – modéliser une base de données relationnelle,
    – décrire les interactions entre différents webservices dans des cas d’architecture complexe,
    – décrire les différents états d’un objet et les transitions liées.

    Je l’utilise aussi pour dessiner au tableau dans des phases de réflexion à plusieurs. Un langage commun est fort utile.

  4. (tiens c’est du wordpress ici, maintenant ? et plus du disqus ? Et pourquoi pas du Dotclear ? enfin, ce n’est pas le sujet du jour)

    Sinon, jamais eu à utiliser Merise, mais parfois à lire des schémas en Merise. Dans tous les postes que j’ai occupés, j’ai eu à :
    – lire des schemas préparés par l’architecte/chef de projet pour mon dév, qui représentaient le modèle de données métier voire la DB,
    – produire des schémas pour mettre à jour la documentation pour les développeurs suivants / les collègues en place, que ce soit pour la DB, pour l’archi métier ou pour les classes
    – lire les schémas de mes collègues (encore aujourd’hui) pour comprendre l’architecture des classes sur la partie du code en question

    Le plus souvent c’était en UML, et la génération avec un logiciel adapté type ArgoUML ou StarUML. Une fois, mon CP était un merisien, et j’ai quand même compris son schema.

  5. Il y a Merise et Merise. Merise concerne plusieurs choses. J’ai eu des cours de Merise à l’IUT et en Miage (dans les années 1994-98). Et finalement, ce que j’ai utilisé dans le milieu professionnel, c’est surtout la partie MCD (modèle conceptuel de donnée). D’ailleurs je me rappelle qu’à mon arrivé chez Aston, j’ai eu droit à un 2-3 jours de stage sur les MCD, durant lesquels d’ailleurs j’ai compris plus de choses que pendant mes 4 ans d’études :)
    Et même si, formellement, je ne fais plus de Merise depuis très longtemps, mes connaissances sur les MCD me servent encore aujourd’hui pour élaborer mes schémas de bases de données.

    Et quand je vois les schémas de bases de nombreux projets, je me dis que certains devraient se mettre à UML/Merise MCD (ou à autre chose, mais quoi finalement ?)

  6. J’ai appris Merise pendant mes études et effectivement je n’ai jamais eu l’occasion de m’en servir depuis. Ca ne fait que quelques années que je suis développeur mais du coup je ne le mentionne pas sur mon CV.

  7. Pareil : en 11 ans de carrière (cabinet de conseil), jamais vu de Merise, un peu d’UML et encore parce que c’était imposé par la DSI client, plutôt par respect de leur charte qu’une utilisation réelle par les développeurs (souvent d’autres prestataires).

    Pour ma part, je rédige des spécifications fonctionnelles les plus détaillées possibles, qui sont souvent copiées/collées à 90% par les MOE dans leurs propres specs ; ils y ajoutent vraiment les aspects les plus techniques du MPD par exemple…
    Ces spécifs ne sont pas décrites par formalisme UML ou autre, mais par des diagrammes, schémas lisibles par tous (métier, MOA, MOE, utilisateurs finaux).
    Ce qui se conçoit bien, s’énonce souvent très simplement !
    ;)

  8. Pour définir des architectures objets, nous utilisions UML très régulièrement chez l’éditeur de logiciel où j’ai travaillé pendant 7 ans. C’était très utile pour discuter sur des patterns ou sur de nouvelles APIs.

    Depuis que je travaille dans l’internet, la question de faire de bonnes APIs ne se pose plus (de même que les architectures logiciels qui ne sont pas aussi importantes que dans l’édition logicielle). Et donc, je ne pratique quasiment plus UML…

    Tout est une question d’environnement, et de type de problèmes que vous avez à résoudre. UML est très utile, mais pas pour tout le monde.

  9. Je suis un peu étonné des commentaires. J’ai 42 ans. Mon âge a une importance compte tenu de la réponse que je vais faire. S’il y a bien une chose qui a été massivement utilisé (et à retenir) dans Merise c’est le Modèle Conceptuel de Données, étroitement lié au bases de données relationnelles. J’ai eu l’occasion de l’utiliser successivement dans la Distribution, la Banque, la Bourse et d’autres secteurs. A l’époque, on savait dénormaliser un modèle conceptuel pour optimiser les accès mémoire / temps. Aujourd’hui je rencontre de (jeunes) JEE/.Net-istes qui ne savent pas faire la différence entre une clé primaire et un index… mais je ne veux pas à mon tour lancer involontairement lancer un pavé dans la mare :D puisque les architecture N-tier et Cloud ont amené une banalisation de la modélisation objet, le mapping relationnel-objet, le NoSQL et bien d’autres concepts innovants. A mon sens, votre billet concerne plus le retard des programmes pédagogiques par rapport à la réalité du terrain de l’entreprise qu’une remise en cause de la méthode Merise.

    • Ah mais il ne s’agit pas du tout d’une remise en cause de Merise lui-même. Que ce soit parfait ou complètement à côté de la plaque est totalement indifférent à ce discours.

      Je pleure aussi sur l’absence de culture informatique et surtout de compréhension de ce qu’il y a au dessus de la syntaxe, qu’on parle d’algo, de modèle de données, et globalement de « comment tout ça fonctionne en interne », mais je ne suis pas certain que ceux qui sortent avec « Merise » sur leur CV parce que ça a été abordé en cours soient forcément mieux armés de ce côté. En fait vu que tu vises particulièrement les jeunes et que moi aussi, probablement que ceux qui ont Merise sur le CV et qui ne savent pas concevoir un vrai modèle sont malheureusement les mêmes (comme quoi…)

      Le fond de mon discours est bien là : le retard de l’école sur ce qui se fait réellement dans l’entreprise, ainsi que le décalage entre ce qu’on affiche et ce que l’entreprise attend.

      Pour revenir globalement sur les commentaires, effectivement, le MCD est un artefact qu’on voit encore couramment. Ceci dit on le voit aussi dans d’autres pays qui ne connaissent même pas Merise de nom. Si c’est un des artefacts de Merise, ça ne justifie pas l’apprentissage de Merise elle-même, ça justifie juste d’aborder le « comment concevoir ». Si c’est fait intelligemment, on rencontrera probablement les mêmes concepts, personne n’a rien inventé.

  10. Perso, après dix ans de grands comptes, l’entreprise attend quand même des esprits typés « merisien » si on peut appeler ça comme ça : un modèle dual, avec un aspect MOA d’un côté et un aspect MOE de l’autre (L/P), et une logique de séparation des données d’un côté et des traitements de l’autre, parce que c’est ce qui reste de plus compréhensible pour le commun des non-informaticiens, et ce qui rassure l’exploitation d’avoir un stockage de données exploitable en-dehors de l’applicatif.

    Forcément ces schémas, très « urbanisants », sont passés de mode, mais de là à dire qu’on est en décalage avec la réalité du monde de travail, c’est quand même un très grand pas à franchir.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.