Mener à bien un projet Drupal
Drupagora 2013
Qui sommes-nous ?

Rémi	
  Rousseau
	
  
Directeur	
  de	
  projets
	
  
La	
  Netscouade
	
  
	
  	
  	
  	
  	
  	
  @re...
•  Une	
  agence	
  digitale	
  
Une	
  approche	
  intégrée	
  pour	
  
fondée	
  en	
  2007,	
  pionnière	
  
une	
  offr...
La conception et le développement
d’applications
25	
  personnes	
  réparFes	
  en	
  4	
  pôles	
  de	
  compétences	
  
...
La conception et le développement
d’applications
De	
  Drupal	
  5	
  à	
  Drupal	
  8	
  :	
  +	
  de	
  150	
  projets	
...
Quelle méthodologie adopter ?
La	
  méthodologie	
  doit	
  servir	
  le	
  projet	
  et	
  garanFr	
  la	
  
bonne	
  qua...
Les éléments pour choisir :
¤	
  Le	
  périmètre	
  et	
  la	
  nature	
  du	
  projet	
  
¤	
  La	
  configuraFon	
  de	...
Conduire et mener à bien un projet

Comprendre	
  

Lancer	
  

Concevoir	
  

Développer	
  	
  

Tester	
  

Livrer	
  
...
Comprendre: ce que le client souhaite
«	
  un	
  site	
  moderne,	
  ergonomique,	
  fluide	
  et	
  innovant	
  au	
  
ser...
Comprendre: ce que le client ne dit pas
toujours
«	
  un	
  budget	
  contraint	
  »	
  
«	
  un	
  planning	
  serré	
  »...
Comprendre: pourquoi partir sur Drupal ?
✔ GesFon	
  de	
  contenus	
  mulFmédia	
  
✔ Workflow	
  et	
  gouvernance	
  édi...
Comprendre: pourquoi ne pas partir sur
Drupal ?
✗ gesFon	
  de	
  BDD	
  custom	
  
✗ temps	
  réel	
  
✗ applicaFon	
  mé...
Lancer : poser les bases d’une bonne
conduite de projet
Une	
  réunion	
  physique	
  avec	
  le	
  client	
  pour	
  :	
 ...
Concevoir : l’approche UX
Etat	
  de	
  
l art	
  

UX	
  
Akentes	
  
uFlisateurs	
  

ObjecFfs	
  
du	
  client	
  
Concevoir : une approche collaborative
avec le client
1.  Les	
  parcours	
  uFlisateurs	
  
2.  L arborescence	
  
3.  Le...
Concevoir : quelles sont les cibles ?

•  Pour	
  qui	
  ?	
  
•  Pour	
  quoi	
  ?	
  
Concevoir : quels parcours utilisateur ?
•  Que	
  recherche	
  
l uFlisateur	
  final	
  ?	
  
•  Comment	
  accède-­‐t-­‐...
Concevoir : quels terminaux pour quels
usages ?
Concevoir : un travail collaboratif avec les
développeurs
1.  Les	
  spécificaFons	
  foncFonnelles	
  
a)  Maitriser	
  le...
Développer : Les modules
•  Comment	
  choisir	
  un	
  
module	
  ?	
  
•  Quand/Comment	
  
développer	
  son	
  module	...
Développer : comment choisir les
modules ?
•  Plus	
  de	
  8000	
  modules	
  pour	
  
D7	
  !	
  
• 
• 
• 
• 

Version	
...
Développer : comment choisir les
modules ?
Messaging	
  
Développer : comment choisir les
modules ?
•  Retours	
  d'expérience	
  des	
  développeurs	
  
–  Qualité	
  de	
  la	
 ...
Développer : concevoir son propre module
•  Quand	
  choisir	
  de	
  développer	
  son	
  module	
  ?	
  
–  Il	
  n’y	
 ...
Développer : pendant ce temps dans le
monde PHP …
Développer : pendant ce temps dans le
monde PHP …
Développer : pendant ce temps dans le
monde PHP …
curl -sS https://getcomposer.org/installer | php
composer require devtur...
Développer : bien coder son thème Drupal
• 
• 
• 
• 
• 

UFliser	
  des	
  sous-­‐themes	
  base theme = bootstrap!
Commun...
Développer : le multilinguisme
•  Penser	
  mulFlingue	
  dès	
  le	
  
début	
  du	
  projet	
  
•  /!	
  Toujours	
  com...
Développer : le moteur de recherche
•  UFliser	
  Solr	
  avec	
  le	
  module	
  
apachesolr	
  
•  Besoins	
  de	
  requ...
Développer : obtenir de bonnes
performances
• 
• 
• 
• 
• 

Cache	
  Drupal	
  +	
  EnFty	
  Cache	
  +	
  Memcache	
  *	
...
Tester : les conditions d’une bonne recette
•  S appuyer	
  sur	
  les	
  livrables	
  de	
  concep>on	
  
•  Mekre	
  en	...
Livrer : mettre en ligne le projet
• 
• 
• 
• 
• 

Pas	
  de	
  livraison	
  le	
  vendredi	
  !	
  
AutomaFser	
  les	
  ...
Un projet livré n’est pas un projet terminé !
Maintenir : la garantie
•  Surveiller	
  les	
  mises	
  à	
  jour	
  des	
  modules	
  
•  Corriger	
  les	
  derniers	
 ...
Maintenir : la maintenance évolutive et
corrective
•  Une	
  nouvelle	
  prestaFon	
  pour	
  le	
  client	
  !	
  

•  Pr...
Clore le projet
•  A	
  minima,	
  un	
  email	
  pour	
  lever	
  toute	
  ambiguïté	
  
•  Idéalement,	
  une	
  réunion...
Les éléments d’un projet réussi
Client	
  

UFlisateurs	
  

•  Site	
  en	
  ligne	
  
•  Planning	
  
honoré	
  
•  Adhé...
Merci de votre attention !
A	
  votre	
  disposiFon	
  toute	
  la	
  journée	
  pour	
  
échanger	
  et	
  sur	
  Twiker	...
Prochain SlideShare
Chargement dans…5
×

Mener à bien un projet Drupal (Drupagora 2013)

1 462 vues

Publié le

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

Publié dans : Technologie
0 commentaire
2 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 462
Sur SlideShare
0
Issues des intégrations
0
Intégrations
164
Actions
Partages
0
Téléchargements
25
Commentaires
0
J’aime
2
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Mener à bien un projet Drupal (Drupagora 2013)

  1. 1. Mener à bien un projet Drupal Drupagora 2013
  2. 2. Qui sommes-nous ? Rémi  Rousseau   Directeur  de  projets   La  Netscouade              @reumiapri   Paul-­‐Émile  Miny   Lead  developer   La  Netscouade              @polem  
  3. 3. •  Une  agence  digitale   Une  approche  intégrée  pour   fondée  en  2007,  pionnière   une  offre  360°  :   du  web  social,  spécialisée   •  conseil  et  innovaFon   dans  la  communicaFon   digitale   insFtuFonnelle  et  grand   •  concepFon  et   public   développement   •  50  personnes   d applicaFons   •  webinfluence  et  rich   media  
  4. 4. La conception et le développement d’applications 25  personnes  réparFes  en  4  pôles  de  compétences   L Atelier   Le  Lab   Le  Studio   La  Fab  
  5. 5. La conception et le développement d’applications De  Drupal  5  à  Drupal  8  :  +  de  150  projets  développés  
  6. 6. Quelle méthodologie adopter ? La  méthodologie  doit  servir  le  projet  et  garanFr  la   bonne  qualité  du  projet   Approche  en   cascade   vs.   Approche   agile   Il  est  très  souvent  possible  de  mener  une  approche   mixte  :  cascade  avec  le  client,  agile  en  interne  
  7. 7. 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  
  8. 8. Conduire et mener à bien un projet Comprendre   Lancer   Concevoir   Développer     Tester   Livrer   Maintenir   Clore  
  9. 9. 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  »  
  10. 10. 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  »  
  11. 11. Comprendre: pourquoi partir sur Drupal ? ✔ GesFon  de  contenus  mulFmédia   ✔ Workflow  et  gouvernance  éditoriale   ✔ Ecommerce   ✔ MulFlinguisme  (parFel  ou  intégral)   ✔ CollaboraFf,  contribuFf,  affinitaire  
  12. 12. Comprendre: pourquoi ne pas partir sur Drupal ? ✗ gesFon  de  BDD  custom   ✗ temps  réel   ✗ applicaFon  méFer  spécifique   ✗ applicaFon  mobile  naFve  
  13. 13. 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  
  14. 14. Concevoir : l’approche UX Etat  de   l art   UX   Akentes   uFlisateurs   ObjecFfs   du  client  
  15. 15. Concevoir : une approche collaborative avec le client 1.  Les  parcours  uFlisateurs   2.  L arborescence   3.  Les  gabarits  (ou  mockups)  
  16. 16. Concevoir : quelles sont les cibles ? •  Pour  qui  ?   •  Pour  quoi  ?  
  17. 17. Concevoir : quels parcours utilisateur ? •  Que  recherche   l uFlisateur  final  ?   •  Comment  accède-­‐t-­‐il  aux   contenus  ?  
  18. 18. Concevoir : quels terminaux pour quels usages ?
  19. 19. 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  
  20. 20. Développer : Les modules •  Comment  choisir  un   module  ?   •  Quand/Comment   développer  son  module  ?   •  Pendant  ce  temps  là  dans   le  monde  PHP  …  
  21. 21. Développer : comment choisir les modules ? •  Plus  de  8000  modules  pour   D7  !   •  •  •  •  Version  stable  ?   Nombre  d’installaFons  ?   Nombre  de  bugs  ouverts   Maintenu  ?  
  22. 22. Développer : comment choisir les modules ? Messaging  
  23. 23. 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  
  24. 24. 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  
  25. 25. Développer : pendant ce temps dans le monde PHP …
  26. 26. Développer : pendant ce temps dans le monde PHP …
  27. 27. 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();
  28. 28. 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  
  29. 29. 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().  
  30. 30. 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  !  
  31. 31. 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  
  32. 32. 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  
  33. 33. 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  
  34. 34. Un projet livré n’est pas un projet terminé !
  35. 35. 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  
  36. 36. 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  
  37. 37. 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  
  38. 38. Les éléments d’un projet réussi Client   UFlisateurs   •  Site  en  ligne   •  Planning   honoré   •  Adhésion   générale   •  Trafic   •  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é  
  39. 39. Merci de votre attention ! A  votre  disposiFon  toute  la  journée  pour   échanger  et  sur  Twiker  !   @reumiapri      @polem      @lanetscouade  

×