CMS opensource ou développement sur-mesure en 6 idées reçues
Je lis toujours avec intérêt et souvent amusement (j’apprécie le ton léger du rédacteur) les articles du blog Axenet consacrés généralement au référencement. Ce dernier n’a pas fait exception : “Développement sur mesure vs open source”. Toutefois, j'aimerais apporter ma pierre à la réflexion, en précisant plusieurs points, qui me semblent incomplets, voire pas tout à fait justes. J’aurais pu répondre en commentaire mais ça serait trop long ;-)
D’abord, histoire d’être au clair avec nos lecteurs, je rappelle que nous n’avons jamais fait mystère de notre préférence lucide pour l'utilisation (bien que non-exclusive) du CMS Joomla!. Pourtant nous avons nous aussi à cœur de prendre en compte les besoins réels présents et à venir d’un projet web pour sa conception (cf 20 critères pour bien choisir son CMS).
Mon point principal de désaccord avec cet article vient du fait qu'il présente le choix d’un CMS comme inadapté voire dangereux pour des projets très personnalisés, et qu’il vaut donc mieux privilégier un framework maison.
Je ne doute vraiment pas que le framework évoqué ait été fait avec professionnalisme.
Nous sommes d’accord que forcément, si personnaliser un CMS open source passe par du rafistolage par des développeurs peu regardants (et il y en a malheureusement), le site va forcément ressembler un peu à ça :
Soyons honnêtes : la faute dans ce cas n’est pas à imputer au CMS. Le problème serait tout aussi alarmant avec le meilleur des framework ou tout développement sur-mesure !
Certes nous voyons souvent en tant qu’agence arriver des sites sous Joomla! difficiles à faire évoluer voire hackés : ils sont faits soit par des amateurs soit par plusieurs personnes successivement, avec chacune sa logique... parfois déroutante ! Nous avons aussi parfois été effrayés par des sites faits par des pros dont des fonctions ont été recodées dans le core alors qu’il aurait juste suffi de cocher une case dans la configuration...
À côté de ça, nous avons eu à refondre ou à réaliser de nombreux sites 100% sur Joomla! et 100% personnalisés sans aucun souci de stabilité, sécurité et évolution.
Le secret ? Une parfaite connaissance du CMS (hey ! des formations existent !) et s’entourer d’experts (avérés, pas autoproclamés).
A mon avis, l’article d’Axenet pêche justement par la comparaison entre un framework avec l’expertise d’une agence et un CMS open source utilisé sans expertise. Vous voyez le problème ?
Pour expliquer mon point de vue, je ne vais prendre en exemple que notre expérience sur la base du choix de Joomla! sous forme de 6 idées reçues.
Idée reçue numéro 1 : on ne peut pas tout faire avec un CMS open source
À ce jour, honnêtement, nous n’avons rien trouvé d’infaisable avec Joomla! : simple site, blog, e-commerce, projet business, place de marché, intranet, communauté, city-guide, annuaire, service métier… la liste est longue ! Et c’est vrai que selon le besoin, un autre CMS peut arriver au résultat attendu, mieux ou plus rapidement.
Mais entre les fonctions natives et les milliers d’extensions en téléchargement (dont certaines très très polyvalentes et personnalisables), les limites sont difficiles à atteindre. Reste la nécessité de bien sélectionner les extensions pour conserver un site fiable dans le temps. Nous sommes d’accord avec Jean-Marc sur ce point. C’est surtout là que la plus-value d’experts est importante. Comme il se trouve que nous en sommes : nous sélectionnons les extensions selon des critères très stricts et en assurons l’installation, la configuration et le suivi. Avec cette responsabilité sur les épaules, nous ne nous amusons pas avec ça ! Ce serait un problème d’avoir besoin d’experts pour cela ? Pas plus, pas moins que de passer par un framework maison.
Idée reçue numéro 2 : malgré des milliers d’extensions, tous les besoins ne sont pas couverts
Si le besoin n’est pas à 100% couvert par une extension Joomla!, il y a toujours moyen de l'améliorer. Pour changer un affichage ou l’ergonomie, inutile de modifier le core de Joomla! car son système de surcharge est loin d’être limité (si si, je vous assure Jean-Marc !). Là aussi, une bonne connaissance est importante.
Niveau développement, tout connaisseur de Joomla! sait que ce CMS repose sur un framework puissant. Connaître ce framework et s’appuyer dessus pour développer ou améliorer une extension est une garantie de stabilité, de respect de la performance et de sécurité.
Idée reçue numéro 3 : développer une fonction sur-mesure sur Joomla! compromet la stabilité
Si je rajoute une extension additionnelle dans mon site Joomla!, ne vais-je pas compromettre la stabilité de tout le site ? Comme dit ci-dessus, Joomla! repose sur un framework. Ce qui en fait, pour simplifier, un gros jeu de legos : des milliers de pièces existent et si on sait les assembler, les possibilités sont infinies (mais il faut un niveau expert de préférence).
Parce qu'ils sont experts dans leur domaine, ceux qui ont fait le choix du développement ne prennent pas le temps de se pencher sur ce framework et combinent différentes logiques à celle de Joomla! Et on ne peut pas leur en vouloir. Mais la logique de Joomla! a fait ses preuves. Pour reprendre l’exemple du Lego, si vous combinez ces célèbres briquettes avec des Kapla ou des Mécanos, attention à la fiabilité de l’ensemble…
Le framework de Joomla! a été éprouvé sur des millions de sites Web, corrigé, testé, amélioré, re-testé, encore et encore …
Respecter ses Designs Pattern (en français “Patrons de conception”) et ses API (en français “Interfaces de Programmation”) est le gage de produire une extension qui viendra s’insérer dans l’ensemble, de manière harmonieuse… et stable.
Idée reçue numéro 4 : un CMS open source est forcément limité en évolutions
Ni plus ni moins qu’avec d’autres solutions… et plutôt moins même. A condition là aussi de savoir ce qu’on fait.
Une autre des forces de Joomla! réside dans les Plugins. Ces plugins ne sont qu’une partie des types d’extensions possibles dans Joomla!, mais ils sont passés maîtres dans l’art d’optimiser l’évolutivité d’une extension Joomla!. En gros, grâce au plugin, vous pouvez étendre à volonté les fonctionnalités du CMS. Quand un expert décide d’implémenter judicieusement des points d’entrée pour des plugins additionnels dans son composant, c’est qu’il cherche à répondre à la question : “Comment puis-je, aujourd’hui, ouvrir mon application, pour préparer le terrain des fonctionnalités de demain ?”.
Donc, si les extensions sont bien conçues, qu’elles aient été téléchargées prêtes à l'emploi ou développées sur-mesure, elles intègrent ce potentiel.
La tendance actuelle des meilleures extensions pour Joomla! en témoigne : un cœur léger, dans le composant, centré sur les fonctions essentielles... et l’intégration de déclencheurs évènementiels (triggers) pour permettre l’ajout de fonctionnalités “à la carte” via des plugins. Voilà la recette pour concevoir une application flexible, évolutive, pérenne et ouverte à la communauté dynamique de Joomla!. Ce type d’architecture technique allie 2 points forts :
- la flexibilité : vous pouvez décider d’activer uniquement les plugins qui correspondent à votre projet
- l'extensibilité : vous avez une nouvelle idée ? il suffit de concevoir le plugin correspondant et de le brancher dans l’application
Ces deux points sont plébiscités par les développeurs Joomla! et assurent la réussite commerciale des extensions qui appliquent ce modèle.
Idée reçue numéro 5 : si le développeur Joomla! n’est plus disponible, je dois tout refaire
C’est une des limites soulevées en commentaire sur l'article d’Axenet au sujet du framework maison. Dans le cas de Joomla!, nous ne sommes pas sur un Framework “maison”, limité à quelques initiés (même s’il est “bien codé”) qu’un nouveau développeur devra s’approprier (à perte) s’il veut reprendre le travail, mais sur un Framework open source ouvert à une communauté mondiale !
Sous réserve, une fois de plus, que l’ensemble ait été fait avec bon sens et respect de la logique de ce CMS par des utilisateurs avertis et bien documentés, n’importe quel expert pourra prendre la relève. Joomla! est un CMS qui a “pignon sur rue”. Vu l’immense communauté planétaire regroupée autour de Joomla!, vous n’êtes pas prêts de tomber en rade. Des livres et des formations existent pour permettre à n’importe quel développeur consciencieux de devenir à son tour expert de ce framework. Connaissances qu’il pourra mettre à profit pour plusieurs projets. Et s’il le souhaite, il pourra en plus être certifié.
Idée reçue numéro 6 : un CMS open source est plus vulnérable car son code est disponible
Chez nous, point de “barbus hippies fanatiques” de l’open source, mais des professionnels avertis et qui prennent le meilleur des deux mondes : logiciels open source et / ou logiciels propriétaires selon les besoins. L’open source n’a pas toujours que des qualités mais lorsqu’on cherche à vérifier le sérieux de l’open source, on trouve de tout et beaucoup de fausses idées. Axenet rejoint la plus répandue qui est que l’open source est moins sécurisé car le code est disponible.
Pourtant, selon plusieurs études, il semble que le système d’exploitation le mieux sécurisé au monde soit open source. D’autres en parlent mieux que moi, comme f-secure. En gros un CMS open source est moins vulnérable du fait de la disponibilité de son code que de l’utilisation qui en est faite (si ce n’est pas clair, relire l’idée reçue n°3 ;-) ) : la formation, la documentation ou l’humilité sont les plus grands amis de la sécurité quelque soit le domaine. L'énergie d'une communauté open source est telle que même si des failles peuvent apparaître, elles sont corrigées rapidement et concourent à l'amélioration de la fiabilité de l'ensemble.
En conclusion
Bref, sans rancune aucune au chef de projet d’Axenet qui avait annoncé au départ de son article qu’il était volontairement simplifié ;-) : il faut se méfier des idées reçues et rester à l’écoute des évolutions des différentes solutions.
Cet article pourrait très bien être décliné pour d’autres CMS (Drupal ou Wordpress par exemple) car ils ont fait et font quotidiennement leurs preuves. Par humilité, nous préférons nous en tenir à celui que nous maîtrisons le mieux ;-)
Nous nous croiserons peut-être un jour dans la vraie vie pour échanger sur ces questions autour d’un café…
En attendant, un grand merci à mes experts Joomla! préférés Yannick et Marc mais aussi à Ingrid pour leur contribution précieuse à cet article ;-)
