Mener à bien un projet Drupal (Drupagora 2013)

39
Mener à bien un projet Drupal Drupagora 2013

description

Support de la présentation "Comment mener à bien un projet Drupal" par La Netscouade à Drupagora 2013 (5 décembre 2013)

Transcript of Mener à bien un projet Drupal (Drupagora 2013)

Page 1: Mener à bien un projet Drupal (Drupagora 2013)

Mener à bien un projet Drupal Drupagora 2013

Page 2: Mener à bien un projet Drupal (Drupagora 2013)

Qui sommes-nous ?

Rémi  Rousseau  Directeur  de  projets  

La  Netscouade  

           @reumiapri  

Paul-­‐Émile  Miny  Lead  developer  La  Netscouade  

           @polem  

Page 3: Mener à bien un projet Drupal (Drupagora 2013)

Une  approche  intégrée  pour  une  offre  360°  :  

•  conseil  et  innovaFon  digitale  

•  concepFon  et  développement  d’applicaFons  

•  webinfluence  et  rich  media  

•  Une  agence  digitale  fondée  en  2007,  pionnière  du  web  social,  spécialisée  dans  la  communicaFon  insFtuFonnelle  et  grand  public  

•  50  personnes  

Page 4: Mener à bien un projet Drupal (Drupagora 2013)

La conception et le développement d’applications

25  personnes  réparFes  en  4  pôles  de  compétences  

L’Atelier  

Le  Studio  

Le  Lab  

La  Fab  

Page 5: Mener à bien un projet Drupal (Drupagora 2013)

La conception et le développement d’applications

De  Drupal  5  à  Drupal  8  :  +  de  150  projets  développés  

Page 6: Mener à bien un projet Drupal (Drupagora 2013)

Quelle méthodologie adopter ?

La  méthodologie  doit  servir  le  projet  et  garanFr  la  bonne  qualité  du  projet  

Approche  en  cascade  

Approche  agile  vs.  

Il  est  très  souvent  possible  de  mener  une  approche  mixte  :  cascade  avec  le  client,  agile  en  interne  

Page 7: Mener à bien un projet Drupal (Drupagora 2013)

Les éléments pour choisir : ¤  Le  périmètre  et  la  nature  du  projet  

¤  La  configuraFon  de  l’équipe  

¤  La  maîtrise  méthodologique  de  l’équipe  

¤  Les  prédisposiFons  du  client  

¤  Le  planning  du  projet  

Page 8: Mener à bien un projet Drupal (Drupagora 2013)

Conduire et mener à bien un projet

Comprendre   Lancer   Concevoir   Développer    

Tester   Livrer   Maintenir   Clore  

Page 9: Mener à bien un projet Drupal (Drupagora 2013)

Comprendre: ce que le client souhaite

«  un  site  moderne,  ergonomique,  fluide  et  innovant  au  service  du  contenu,  qui  donne  une  image  renouvelée  de  son  organisaFon  »  

«  une  autonomie  totale  pour  l’alimentaFon,  la  mise  à  jour  et  la  mise  en  place  d’évoluFons  »  

«  un  site  compa>ble  avec  l’ensemble  des  navigateurs  sur  l’ensemble  des  terminaux  »  

Page 10: Mener à bien un projet Drupal (Drupagora 2013)

Comprendre: ce que le client ne dit pas toujours «  un  budget  contraint  »  

«  un  planning  serré  »  

«  un  projet  non  toujours  géré  par  un  chef  de  projet  en  interne  »  

«  des  process  de  valida>on  hiérarchique  plus  ou  moins  longs  »  

Page 11: Mener à bien un projet Drupal (Drupagora 2013)

Comprendre: pourquoi partir sur Drupal ? ✔ GesFon  de  contenus  mulFmédia  

✔ Workflow  et  gouvernance  éditoriale  

✔ Ecommerce  

✔ MulFlinguisme  (parFel  ou  intégral)  

✔ CollaboraFf,  contribuFf,  affinitaire  

Page 12: Mener à bien un projet Drupal (Drupagora 2013)

Comprendre: pourquoi ne pas partir sur Drupal ?

✗ gesFon  de  BDD  custom  

✗ temps  réel  

✗ applicaFon  méFer  spécifique  

✗ applicaFon  mobile  naFve  

Page 13: Mener à bien un projet Drupal (Drupagora 2013)

Lancer : poser les bases d’une bonne conduite de projet Une  réunion  physique  avec  le  client  pour  :  

ü   Présenter  les  équipes  ü   Acter  les  choix  méthodologiques  et  les  ouFls  de  suivi  ü   Arrêter  le  périmètre  foncFonnel  

ü   Évoquer  les  problémaFques  techniques  ü   Aborder  les  quesFons  administraFves  

Page 14: Mener à bien un projet Drupal (Drupagora 2013)

Concevoir : l’approche UX

UX  

Etat  de  l’art  

Akentes  uFlisateurs  

ObjecFfs  du  client  

Page 15: Mener à bien un projet Drupal (Drupagora 2013)

Concevoir : une approche collaborative avec le client

1.  Les  parcours  uFlisateurs  

2.  L’arborescence  

3.  Les  gabarits  (ou  mockups)  

Page 16: Mener à bien un projet Drupal (Drupagora 2013)

Concevoir : quelles sont les cibles ?

•  Pour  qui  ?  

•  Pour  quoi  ?  

Page 17: Mener à bien un projet Drupal (Drupagora 2013)

Concevoir : quels parcours utilisateur ?

•  Que  recherche  l’uFlisateur  final  ?  

•  Comment  accède-­‐t-­‐il  aux  contenus  ?  

Page 18: Mener à bien un projet Drupal (Drupagora 2013)

Concevoir : quels terminaux pour quels usages ?

Page 19: Mener à bien un projet Drupal (Drupagora 2013)

Concevoir : un travail collaboratif avec les développeurs 1.  Les  spécificaFons  foncFonnelles  

a)  Maitriser  le  vocabulaire  propre  à  Drupal  b)  Détailler  les  éléments  criFques  :    

•  Types  de  contenus  

•  Rôles  et  permissions  •  Workflows  

•  Taxonomies  

2.  Le  cahier  de  receke  et  les  scénarios  de  test  

Page 20: Mener à bien un projet Drupal (Drupagora 2013)

Développer : Les modules

•  Comment  choisir  un  module  ?  

•  Quand/Comment  développer  son  module  ?  

•  Pendant  ce  temps  là  dans  le  monde  PHP  …  

Page 21: Mener à bien un projet Drupal (Drupagora 2013)

Développer : comment choisir les modules ?

•  Plus  de  8000  modules  pour  D7  !  

•  Version  stable  ?  •  Nombre  d’installaFons  ?  

•  Nombre  de  bugs  ouverts  •  Maintenu  ?  

Page 22: Mener à bien un projet Drupal (Drupagora 2013)

Développer : comment choisir les modules ? Messaging  

Page 23: Mener à bien un projet Drupal (Drupagora 2013)

Développer : comment choisir les modules ?

•  Retours  d'expérience  des  développeurs  –  Qualité  de  la  documentaFon  –  Qualité  du  code  –  PersonnalisaFon  /  Possibilité  d'étendre  le  module  

•  Un  module  bêta  >  un  nouveau  module  custom  

Page 24: Mener à bien un projet Drupal (Drupagora 2013)

Développer : concevoir son propre module

•  Quand  choisir  de  développer  son  module  ?  –  Il  n’y  pas  de  module  pour  ça  !  (Vraiment  ?)  –  Autour  d’un  type  de  contenu  structurant  (feature)    –  Forker  un  module  existant.  

•  /!\  Ne  jamais  hacker  un  module  contrib.  

•  S’inspirer  des  modules  cores.  •  Respecter  les  coding  standards  Drupal  

Page 25: Mener à bien un projet Drupal (Drupagora 2013)

Développer : pendant ce temps dans le monde PHP …

Page 26: Mener à bien un projet Drupal (Drupagora 2013)

Développer : pendant ce temps dans le monde PHP …

Page 27: Mener à bien un projet Drupal (Drupagora 2013)

Développer : pendant ce temps dans le monde PHP … curl -sS https://getcomposer.org/installer | php

composer require devture/sms-sender --save

/** * Implements hook_init(). */ function composer_autoload_init() { require DRUPAL_ROOT . '/vendor/autoload.php'; }

$pushManager = new PushManager(); $exampleAdapter = new ApnsAdapter();

$devices = new DeviceCollection(array(new Device('Token1'), new Device('Token2’)));

$message = new Message('This is an example.');

$push = new Push($exampleAdapter, $devices, $message); $pushManager->add($push); $pushManager->push();

Page 28: Mener à bien un projet Drupal (Drupagora 2013)

Développer : bien coder son thème Drupal

•  UFliser  des  sous-­‐themes  base theme = bootstrap!•  CommunicaFon  développeurs  /  intégrateurs  •  /!\  Limiter  PHP  dans  les  templates  

•  UFliser  des  foncFons  de  thème  de  drupal  theme_item_list!•  UFliser  un  préprocesseur  CSS  SASS/LESS  

Page 29: Mener à bien un projet Drupal (Drupagora 2013)

Développer : le multilinguisme

•  Penser  mulFlingue  dès  le  début  du  projet  

•  /!\  Toujours  commencer  par  l’anglais  

•  Toujours  encapsuler  les  chaînes  en  anglais  dans  des  foncFons  t().  

Page 30: Mener à bien un projet Drupal (Drupagora 2013)

Développer : le moteur de recherche

•  UFliser  Solr  avec  le  module  apachesolr  

•  Besoins  de  requêtes  spécifiques  ?  \Solarium  composer require basdenooijer/solarium --save!

•  Elas>cSearch  c’est  très  bien  aussi  !  

Page 31: Mener à bien un projet Drupal (Drupagora 2013)

Développer : obtenir de bonnes performances

•  Cache  Drupal  +  EnFty  Cache  +  Memcache  *  •  Compression  JS/CSS  +  OpFmiser  les  images  •  Varnish  •  PHP  5.4+  (+25%)  +  APC  •  Solr  /  ElasFcSearch  

Page 32: Mener à bien un projet Drupal (Drupagora 2013)

Tester : les conditions d’une bonne recette

•  S’appuyer  sur  les  livrables  de  concep>on  

•  Mekre  en  place  un  ouFl  de  bug-­‐tracking  

•  Effectuer  une  receEe  double  

•  S’appuyer  sur  des  tests  automa>sés  

Page 33: Mener à bien un projet Drupal (Drupagora 2013)

Livrer : mettre en ligne le projet

•  Pas  de  livraison  le  vendredi  !  •  AutomaFser  les  livraisons  avec  capistrano  ou  autres.  •  Exporter  ses  configuraFons  en  fichiers  :  module  features.  

•  Gérer  la  mise  à  jour  des  modules  :  hook_update.  •  Maintenir  un  fichier  changelog  

Page 34: Mener à bien un projet Drupal (Drupagora 2013)

Un projet livré n’est pas un projet terminé !

Page 35: Mener à bien un projet Drupal (Drupagora 2013)

Maintenir : la garantie

•  Surveiller  les  mises  à  jour  des  modules  

•  Corriger  les  derniers  dysfoncFonnements  

•  Être  pédagogique  sur  la  priorisa>on  des  bugs  

•  Livrer  par  lots  et  s’appuyer  sur  les  process  de  livraison  

Page 36: Mener à bien un projet Drupal (Drupagora 2013)

Maintenir : la maintenance évolutive et corrective •  Une  nouvelle  prestaFon  pour  le  client  !  

•  Prioriser  et  planifier  les  chanFers  

•  Veiller  à  l’intégrité  du  code  existant  

•  Proposer  du  refactoring  de  code  

•  Sanctuariser  les  livraisons  

Page 37: Mener à bien un projet Drupal (Drupagora 2013)

Clore le projet

•  A  minima,  un  email  pour  lever  toute  ambiguïté  

•  Idéalement,  une  réunion  chez  le  client  pour  –  Dresser  un  bilan  

–  Proposer  de  nouvelles  prestaFons  J  

Page 38: Mener à bien un projet Drupal (Drupagora 2013)

Les éléments d’un projet réussi

Client  

•  Site  en  ligne  •  Planning  honoré  

• Adhésion  générale  

•  Trafic  

UFlisateurs  

•  Parcours  perFnents  

•  Réponse  aux  besoins  

•  Fidélité  •  Témoignages  

Équipe  projet  

•  Contrôle  budgétaire  

•  SaFsfacFon  et  fierté  de  l’équipe  

•  Client  fidélisé  

Page 39: Mener à bien un projet Drupal (Drupagora 2013)

Merci de votre attention !

A  votre  disposiFon  toute  la  journée  pour  échanger  et  sur  Twiker  !  

@reumiapri  

   @polem  

   @lanetscouade