Drupal : notre méthode sur mesures

 

Notre méthode pour réussir un projet Drupal

 

 

Comme nous sommes peu nombreux, nous avons besoin d’être très organisés pour rivaliser avec des équipes de 10 ou 30 collaborateurs. Nous avons donc rôdé, depuis 2006, une méthode spécifique aux projets Drupal.

Cadrage

Après analyse de vos besoins, nous commençons par créer un référentiel listant tout ce que l’on trouvera dans le projet :

  • Paramètres généraux (i18n, Solr, Panels…),
  • Types de contenus,
  • Field collections,
  • Assets,
  • Structure (menus, taxonomies…),
  • Services,
  • Interfaces avec applications tiers,
  • Templates,
  • Rôles / Workflows,

Ce référentiel existe dès l’avant-vente. Il définit le périmètre fonctionnel du projet et est rédigé de manière à pouvoir organiser le projet autour. Les versions, tâches, tests… sont tous dérivés du référentiel. C’est donc un élément essentiel de notre méthode de conception et de développement Drupal.

Type de Projet

A partir du référentiel, et en fonction de vos priorités, nous pouvons soit partir dans un cycle en V (linéaire) soit organiser des sprints (et plus si affinité).

Démarche linéaire

  • Le périmètre des prestations est strictement défini avavnt de commencer la mission,
  • Tout est défini et validé avant de réaliser,
  • La livraison puis la recette portent sur l’intégralité du périmètre,
  • Cette méthode vise à garantir le respect du principal critère de pilotage (Qualité ou Coût ou Délais),
  • C’est une démarche orientée “gestion contractuelle”,
  • Drupal se prête bien à cette méthode.

Démarche “Agile”

  • Le périmètre des prestations est globalement défini,
  • Le périmètre fonctionnel peut évoluer tout en restant “à volume constant”,
  • Des “sprints” de 2 ou 3 semaines permettent de spécifier / développer / recetter au fur et à mesure,
  • Cette méthode implique une gestion hebdomadaire ou mensuelle du backlog,
  • C’est une démarche orientée “résultat”,
  • Drupal se prête bien à cette méthode.

Dans tous les cas, le lotissement ou l’organisation des sprints tient compte de la logique d’implémentation propre à Drupal.

Etapes

Conception

Nous travaillons de manière classique en mixant :

  • Wireframes (papier/crayons, balsamiq),
  • Piste graphique (PSD),
  • Templates (PSD),
  • Spécifications (Word),
  • Prototypage (balsamiq / Drupal / InVision).

Toutes les tâches et livrables sont gérés avec Redmine. Le partage et les échanges les plus créatifs sont gérés avec InVision et référencés dans Redmine.

Développement / intégration

Nous appliquons toutes les bonnes pratiques de développement Drupal :

  • Tous nos développements Drupal sont “featurisés”,
  • Le code est versionné avec Git,
  • Si possible, l’environnement de (pré)production est utilisé dès le début du projet,
  • Les déploiements sont réalisés dès le début du projet avec des recettes Capistrano,
  • L’optimisation est réalisée au fur et à mesures du projet pour éviter les surprises de dernière minute,
  • Des tests fonctionnels automatisés (Selenium) peuvent être mis en place,
  • La documentation (technique, utilisateurs…) est rédigée pendant nos tests internes.

Toutes les tâches et livrables sont gérés avec Redmine. Les comits sont référencés dans leurs tâches Redmine respectives.

Mise en œuvre

Etape clé de notre méthode de développement Drupal, la mise en œuvre consiste à :

  • Former les équipes à Drupal,
  • Former les équipes aux spécificités de votre projet,
  • Recetter le projet (de manière itérative si méthode Agile),
  • Réaliser le switch DNS ou l’éventuelle mise en production (quand on ne peut pas faire autrement).

Maintenance / webmastering

Le recours autant que possible à des modules standards, le respect des pratiques de développement Drupal, l’industrialisation de notre process de déploiement et la qualité de la documentation (spécifications et documentation utilisateur tenues à jour au fur et à mesure) vous garantissent une maintenance fluide.

Pour en savoir plus, vous pouvez lire notre ouvrage paru chez Eyrolles, suivre nos cours de gestion de projet web ou nous appeler !