Réussir son projet avec Drupal

Portrait de Boris

réussir son projet web

Drupal est un CMS offrant une plateforme fiable pour construire des sites web de grande envergure. Et c'est devenu le premier choix des grandes entreprises et institutions investissant dans les solutions web open source. Il n'y a qu'un site quelques références à ce sujet pour appuyer ce constat : 

  • Site de la maison blance
  • Site Artis de Warner Brothers
  • Portail du gouvernement français
  • Site institutionnel de la société générale
  • Kiloutou.fr
  • Site du parti social français
  • Site du l'UMP
  • PPR entreprendre notre grande aventure
  • wefeedback

Plus de 7 millions de site dans le monde.

Il offre une richesse fonctionnelle remarquable par rapport à ces concurrents Joomla, Wordpress, ....

Pendant mes expériences professionnelles avec Drupal j'ai travaillé sur des problématiques et des besoins de projets assez diverses allant d'un site simple site vitrine , à des plateformes de content delivery et e-commerce. J'ai toujours trouvé (au mois pour 90% des cas)  un module (parmi plus de 7000 modules) qui traite de mon sujet de recherche. Il est vrai que tous les modules de la communauté ne se vallent pas mais un module même en sandbox constitue un bon moyen pour creuser un sujet et concevoir une solution. La quantité d'article qui traitent des problématiques d'intégration de Drupal est très remarquablement abondante (bien sur pour des recherches en anglais on a plus de chance de trouver son gral).

Drupal est donc un CMS qui offre un niveau d'abstration très élevé apportant modularité, flexibilité et évolutivité pour répondre à des besoins WEB très complexes.

Grace à sa licence et son équipe fondatrice, la communauté de Drupal a atteint une dimension mondiale offrant la perennité et le développement durable de ce projet.

L'intégration de Drupal peut se faire dans une démarche classique : Estimation, Conception, Design, Développement, Tuning et Mise en Production ou dans une démarche Agile avec plusieurs Sprints. Les deux méthodes conviennent, Drupal se prète très bien vu sa modularité et sa flexibilité.

Un point clef de réussite c'est de travailler sur le lexique du projet. Les experts Drupal doivent veiller à bien expliquer dès le démarrage dy projet les concepts Drupal comme Node, Views, Panels, Taxonomies, ... aux utilisateurs et décideurs du projet. Cela simplifiera la communication.

Les spécfications doivent dans ce sens suivre la logique de fonctionnement et les concepts Drupal à savoir : 

  • Définir les types de contenus : Article, Produit, News, Profil utilisateurs, Vidéo, Photo, Podcast, ....
  • Structure des données en se basant sur les fields de Drupal,
  • La taxonomie de classification : Rubriques, Tags, Marques, ...
  • Les contextes : affichage des blocs sur certaines page, changement des informations selon le profil , ....

Le meilleur formalisme pour des spécifications fonctionnelles sont des écrans annotés.

Utiliser des outils de développement : Git, Bugtracker (Mantis, Redmine, ....)

Mettre en place un environnement de développement, un environnement de tests et bien sur un environnement de Production.

Définir une démarche de déploiement incrémental. 

Automatiser les tests selon la taille du projet et sa durée dans le temps.

Pour le déploiement incrémental vous pouvez utiliser : Features et les fonctions hook_update_...().

  • Structurer le contenu en premier lieu (Entités, Champs, Taxonomies)
  • Aucune fonctionnalités dans les templates
  • Ni de requête
  • Ne pas toucher le Drupal Core ni les modules de Contribs
  • Utiliser au maximum les modules : Views, Ctools & Panels.
  • Activer les caches : Varnish, Memcached, Boost, AuthCache
  • Ne pas abuser du WYSIWYG pour altérer l'affichage standard
  • Déploiement par le code et les scripts : Drush, Features, Deploy
  • Avant de développer une fonctionnalité, chercher dans le catalogue de modules de Drupal
  • Utiliser Apache Solr pour la recherche
  • Si ne saviez pas faire, faites appel à des experts :)