SlideShare ist ein Scribd-Unternehmen logo
1 von 64
CAS DE LA

REFONTE DE
STM.INFO
DrupalCamp Montréal 2013
!
Bonjour !
Jan-Nicolas Vanderveken, associé, TP1, @nvanderv
Albert Albala, développeur, TP1, @alberto56
Frédéric Gouin, analyste applications, STM
Nicole Gruslin, conseillère corporative web, STM

2
Aujourd’hui
Contexte
Gestion de projet
Intégration avec les
systèmes de la STM

Tests automatisés et
intégration continue
Infrastructure et
performance

Site mobile
Tests utilisateurs
3

Contributions à la
communauté Drupal
Gestion du changement
Contexte

4
Des utilisateurs satisfaits
Site développé en 1996 - 1997
Mis en ligne en 1997
90 % de satisfaction
Dans le contexte actuel, STM.info doit avant tout faciliter les
déplacements des usagers et être disponible en tout
temps, même dans les périodes de pointe et de crise.

5
L’open source à la STM
La STM crée un blogue WordPress en 2008
En 2009, elle entreprend de choisir un outil pour la refonte de
ses propriétés web. Drupal est sélectionné.
L’open source fait désormais partie intégrante des outils
privilégiés par la STM (Drupal, Nuxeo, Liferay, etc.)
Début du projet STM.info : mi-2012

6
Philosophie
Nous avons, tout au long du projet, considéré STM.info
comme un service, et non comme un site web.
Comme pour ses services de déplacement, STM.info devait
être accessible au plus grand nombre possible.
Nous avons placé l’utilisateur au centre du projet.
Finalement, chaque solution était évaluée en fonction de sa
stabilité, de son évolutivité et de sa performance.
7
Gestion de projet

8
rue Stanley

rue Sainte-Catherine
L’objectif du client
Ce que le chargé de 

compte explique
Ce que l’ergonome envisage
Ce que le designer propose
Ce que le développeur a compris
Ce que l’utilisateur voulait
Les équipes multidisciplaires
Encourage la discussion parmi les différentes expertises
Les expertises sont impliquées tôt dans le processus
Un plus grand sens d'autonomie et de ownership
Moins d’ego, moins de « divas », nulle part où se cacher
Une dimension sociale plus grande
Place l’utilisateur au centre des préoccupation
17
Ça prend du rythme !
Des cycles de deux semaines, 

qu’on planifie un lundi sur deux.
Une démo client un vendredi sur deux.
Chaque matin, un meeting debout.
Et une démo d’agence chaque deux semaines.

18
Ça va vite! - Nicole Gruslin, STM
Nos musts :
Des équipes multidisciplinaires
Un espace de travail propice
Un rythme d’agence constant
Des produits plutôt que des plans
Intégration avec les 

systèmes de la STM

21
Solution A : Drupal seul
Infos sur les
trajets

Infos sur les
autobus

22

?

Infos sur les
emplois

Site
Drupal
Solution B : Drupal + middleware
Infos sur les
trajets

Infos sur les
autobus

23

Infos sur les
emplois

Middleware
Rails
RESTful API

Site
Drupal
Avantages
Sous-équipes au sein de l’équipe de développement
Impératif de garder une bonne communication
Objets bidons (« Mock objects »)
Tests plus efficaces
Abstraction des APIs
Documentation des interfaces
24
Site mobile

25
Les grands objectifs
Optimiser les activités de déplacement pour les téléphones
intelligents (itinéraires, horaires, tarifs et état du service métro
et autobus).
Obtenir un design de marque cohérent, pour les trois
environnements ciblés par la STM : ordinateurs, tablettes 

et téléphones intelligents.
Créer une solution évolutive tenant compte des grandes
tendances du marché et pouvant s’adapter.

26
L’écosystème mobile
Un site web adaptatif (dès le début)
Une application web (à 80% du développement)
Des applications natives (hors mandat)

28
Solution proposée
Optimisation mobile, en mode adaptatif, pour les sections
informationnelles du site.
Développer une application web mobile optimisée pour le plus
d’appareils mobiles intelligents possible.
Mettre à profit les API et le CMS développés à ce jour.
Rendre la carte disponible sur les téléphones intelligents.
Offrir à la clientèle une expérience optimisée et unifiée pour
les téléphones intelligents sur l’ensemble du site.
29
ACCUEIL ET

PAGES DE CONTENU

ACCUEIL ET

THÈMES DE DÉPLACEMENT

(ADAPTATIF)

THÈMES DE DÉPLACEMENT

ordinateur + tablette + téléphone intelligent

téléphone intelligent

(ADAPTATIF)
ordinateur + tablette
Orientations technologiques
Optimiser le planificateur de trajet pour une expérience
mobile en misant sur un développement en Ruby on Rails.
C’est le volet applicatif.
Optimiser les pages intérieures pour les plateformes
mobiles en version adaptative, sous Drupal. C’est le volet
informationnel, en développement depuis le début du projet.
La gestion du site et l’entrée du contenu sont centralisées
dans Drupal. Une seule interface pour les webmestres.

42
visiteur

ordinateur + tablette

répartiteur de charge

téléphone intelligent

(HAProxy)

appel à
l’action

stm.info

m.stm.info

lien en pied de page
ordinateur + téléphones intelligents

application
mobile
Les avantages?
Un client web mobile ultra-léger qui met l’accent sur
l’expérience du client en déplacement.
Aucun changement à l’infrastructure nécessaire.
Développement accéléré utilisant l’architecture existante.
Environnement permettant de répondre aux besoins
spécifiques des utilisateurs de téléphones intelligents.
Gains de performance grâce à un accès direct aux API.
44
Tests utilisateurs

45
Beta public
TP1
Tests
d’accessibilité
AccessibilitéWeb
Yu Centrik

Tri de cartes
TP1 / Adviso

Tests
utilisateurs sur
maquettes
fonctionnelles
Yu Centrik

Beta panel 

6000 clients
TP1 / Adviso

Focus group 

sur le design
Callosum

Beta panel 

3000 employés
STM
Tests
utilisateurs sur
version alpha
Yu Centrik

46
Tests automatisés et 

intégration continue

47
Défi #1 : Tests de JavaScript
Drupal est excellent pour tester des pages statiques
Mise en place de tests avec Behat
Nécessité de tester Internet Explorer, Firefox, Chrome...
Défi : la prolifération des plateformes mobiles

48
Défi #2 : Bien définir les tests
Développement piloté par les besoins d’affaires, ou

« Behavior-driven development »
Utilisation d’exemples concrets pour les tâches à
accomplir dans Jira (agile)
Automatisation basée sur un langage commun

49
1
2
3
4
5
6
7
8
9
10
11
12
13
 
 
 
 
 
 

Scénario: (Sprint 7, Story STMMEO-43) En tant que client, Je veux être!
en mesure de minimiser les correspondances dans mon itinéraire!
!
Soit je suis sur la page d'accueil!
Et je cherche le premier itinéraire entre "cote ste-ca" et "jean-talon [m"!
Alors je vois "Ligne orange" avant "Itinérare 2"!
Alors je vois "Ligne bleue" avant "Itinérare 2"!
Et j'appuie sur "Modifier l'itinéraire"!
Et j'appuie sur "Afficher les options"!
Et je mets dans les options "Minimiser les correspondances"!
Et j'appuie sur "Rechercher l'itinéraire"!
Alors je ne vois pas "Ligne orange" avant "Itinérare 2"!
Alors je ne vois pas "Ligne bleue" avant "Itinérare 2"!

/**"
 * @Given /^je vois sur la carte la ligne verte mise en évidence$/"
 */"
public function jeVoisSurLaCarteLaLigneVerteMiseEnEvidence() {"
  _assert_html($this, MARKUP_CARTE_LIGNE_VERTE_SELECTIONNEE);"
}"

!

50
Défi #3 : Tests d’APIs externes
Objets bidons
Développement et contribution du module Mockable
Importance de simuler tous les scénarios potentiels
(serveur externe non-disponible, temps de réponse
inacceptable, etc.)

52
Défi #4 : Internet Explorer
Selenium
Machine virtuelle
Batterie de tests relativement longue : 2 heures
Images de VM de Microsoft (un cauchemar!)

53
Intégration continue
Un serveur d’intégration continue Jenkins a été mis en
place plus tard dans le projet.
Les prochaines phases utiliseront l’intégration continue
dès le début.

54
Avantages et défis
Très peu de régressions se sont rendues en production
Découverte de bogues tôt dans le processus de
déploiement
Batterie de tests trop longue, nécessité de l’automatiser
davantage
À l’avenir, importance de mieux simuler l’environnement
de production
56
Infrastructure et performance

57
Infrastructure STM.info
Des dizaines de serveurs physiques et virtuels
Des centaines de milliers d’utilisateurs par jour, des
centaines de requêtes simultanées
Mise en cache : entre 60 secondes et 30 minutes

58
Leçon : bien utiliser la cache Drupal
Tests de charge
Identifier et reproduire une utilisation réaliste pour la STM
Cache Varnish à 30 minutes et cache Drupal anonyme,
sauf l’information importante (60 secondes) et les

formulaires (aucune cache)
Utilisation massive de AJAX

59
Contributions à la 

communauté Drupal

60
Contributions à la communauté
Participation à plus de 100 « issues »
Près de 30 « patchs » soumises à divers modules, 

Drupal core 7.x et 8.x
Blogue technique
Deux modules Drupal : Mockable et Representative Image
Partage de code avec NBCUniversal

61
Des questions ?

62
Cas de la refonte de STM.info
Cas de la refonte de STM.info

Weitere ähnliche Inhalte

Andere mochten auch

Probabilidad o certeza gemelos
Probabilidad o certeza   gemelosProbabilidad o certeza   gemelos
Probabilidad o certeza gemelosJoanzapatero
 
Www.mondebatterie.com dell-alienware-m11x.html
Www.mondebatterie.com dell-alienware-m11x.htmlWww.mondebatterie.com dell-alienware-m11x.html
Www.mondebatterie.com dell-alienware-m11x.htmltodone
 
Ma chambre (prep. lieu)
Ma chambre (prep. lieu)Ma chambre (prep. lieu)
Ma chambre (prep. lieu)margapr
 
Les réseaux sociaux numériques - Rencontre ADELI du 8 juin 2011
Les réseaux sociaux numériques - Rencontre ADELI du 8 juin 2011Les réseaux sociaux numériques - Rencontre ADELI du 8 juin 2011
Les réseaux sociaux numériques - Rencontre ADELI du 8 juin 2011Afpa WebTv
 
Le pilotage de la taxe de séjour dans le Bas-Rhin
Le pilotage de la taxe de séjour dans le Bas-RhinLe pilotage de la taxe de séjour dans le Bas-Rhin
Le pilotage de la taxe de séjour dans le Bas-Rhintaxesejour.fr
 
Les licences nationales : une vision de l'expérience allemande
Les licences nationales : une vision de l'expérience allemandeLes licences nationales : une vision de l'expérience allemande
Les licences nationales : une vision de l'expérience allemandeFrederic Blin
 
Fiche campagnes spots tv apple
Fiche campagnes spots tv appleFiche campagnes spots tv apple
Fiche campagnes spots tv appleSiwen ZHANG
 
Présentation des Fabriques Numériques de la Côte d'Opale 2011
Présentation des Fabriques Numériques de la Côte d'Opale 2011Présentation des Fabriques Numériques de la Côte d'Opale 2011
Présentation des Fabriques Numériques de la Côte d'Opale 2011swatre
 
Leccion 09 ii_2011
Leccion 09 ii_2011Leccion 09 ii_2011
Leccion 09 ii_2011Ricardo
 
Act tema53
Act tema53Act tema53
Act tema53UMICH
 
Conociendo la web
Conociendo la webConociendo la web
Conociendo la webamanfroni
 
Mon séjour à alicante
Mon séjour à alicanteMon séjour à alicante
Mon séjour à alicantesarahd53
 
Ame gallery mobilier par antoine mercier -le bureau de freyja-improvisation g...
Ame gallery mobilier par antoine mercier -le bureau de freyja-improvisation g...Ame gallery mobilier par antoine mercier -le bureau de freyja-improvisation g...
Ame gallery mobilier par antoine mercier -le bureau de freyja-improvisation g...Antoine Mercier-ame
 
Animation en bibliothèque
Animation en bibliothèqueAnimation en bibliothèque
Animation en bibliothèqueElise Denoyelle
 

Andere mochten auch (20)

Probabilidad o certeza gemelos
Probabilidad o certeza   gemelosProbabilidad o certeza   gemelos
Probabilidad o certeza gemelos
 
Inic preesc pue_
Inic preesc pue_Inic preesc pue_
Inic preesc pue_
 
Mots Liste7
Mots Liste7Mots Liste7
Mots Liste7
 
Www.mondebatterie.com dell-alienware-m11x.html
Www.mondebatterie.com dell-alienware-m11x.htmlWww.mondebatterie.com dell-alienware-m11x.html
Www.mondebatterie.com dell-alienware-m11x.html
 
Ma chambre (prep. lieu)
Ma chambre (prep. lieu)Ma chambre (prep. lieu)
Ma chambre (prep. lieu)
 
Les réseaux sociaux numériques - Rencontre ADELI du 8 juin 2011
Les réseaux sociaux numériques - Rencontre ADELI du 8 juin 2011Les réseaux sociaux numériques - Rencontre ADELI du 8 juin 2011
Les réseaux sociaux numériques - Rencontre ADELI du 8 juin 2011
 
Powerpoint ag otc 2010
Powerpoint ag otc 2010Powerpoint ag otc 2010
Powerpoint ag otc 2010
 
Le pilotage de la taxe de séjour dans le Bas-Rhin
Le pilotage de la taxe de séjour dans le Bas-RhinLe pilotage de la taxe de séjour dans le Bas-Rhin
Le pilotage de la taxe de séjour dans le Bas-Rhin
 
Les licences nationales : une vision de l'expérience allemande
Les licences nationales : une vision de l'expérience allemandeLes licences nationales : une vision de l'expérience allemande
Les licences nationales : une vision de l'expérience allemande
 
Fiche campagnes spots tv apple
Fiche campagnes spots tv appleFiche campagnes spots tv apple
Fiche campagnes spots tv apple
 
Best photos2010
Best photos2010Best photos2010
Best photos2010
 
Présentation des Fabriques Numériques de la Côte d'Opale 2011
Présentation des Fabriques Numériques de la Côte d'Opale 2011Présentation des Fabriques Numériques de la Côte d'Opale 2011
Présentation des Fabriques Numériques de la Côte d'Opale 2011
 
Leccion 09 ii_2011
Leccion 09 ii_2011Leccion 09 ii_2011
Leccion 09 ii_2011
 
Act tema53
Act tema53Act tema53
Act tema53
 
Le réseau koezio rhone
Le réseau koezio rhoneLe réseau koezio rhone
Le réseau koezio rhone
 
Conociendo la web
Conociendo la webConociendo la web
Conociendo la web
 
Atelier 3
Atelier 3Atelier 3
Atelier 3
 
Mon séjour à alicante
Mon séjour à alicanteMon séjour à alicante
Mon séjour à alicante
 
Ame gallery mobilier par antoine mercier -le bureau de freyja-improvisation g...
Ame gallery mobilier par antoine mercier -le bureau de freyja-improvisation g...Ame gallery mobilier par antoine mercier -le bureau de freyja-improvisation g...
Ame gallery mobilier par antoine mercier -le bureau de freyja-improvisation g...
 
Animation en bibliothèque
Animation en bibliothèqueAnimation en bibliothèque
Animation en bibliothèque
 

Ähnlich wie Cas de la refonte de STM.info

Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?ekino
 
Yannick DUPUIS
Yannick DUPUISYannick DUPUIS
Yannick DUPUISYannick D.
 
Production logicielle, outils et pratiques
Production logicielle, outils et pratiquesProduction logicielle, outils et pratiques
Production logicielle, outils et pratiquesJohan Moreau
 
conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...Sid Ahmed Benkraoua
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicEmmanuel Hugonnet
 
Industrialisez le développement et la maintenance de vos sites avec Drupal
Industrialisez le développement et la maintenance de vos sites avec DrupalIndustrialisez le développement et la maintenance de vos sites avec Drupal
Industrialisez le développement et la maintenance de vos sites avec DrupalLINAGORA
 
Réussir son projet Drupal
Réussir son projet DrupalRéussir son projet Drupal
Réussir son projet DrupalAdyax
 
Retour d’expérience sur le déploiement d’uPortal 4.2 responsive à l’UPMC – So...
Retour d’expérience sur le déploiement d’uPortal 4.2 responsive à l’UPMC – So...Retour d’expérience sur le déploiement d’uPortal 4.2 responsive à l’UPMC – So...
Retour d’expérience sur le déploiement d’uPortal 4.2 responsive à l’UPMC – So...Christian Cousquer
 
CV_Youssouph_BARRY_DRUPAL
CV_Youssouph_BARRY_DRUPALCV_Youssouph_BARRY_DRUPAL
CV_Youssouph_BARRY_DRUPALYoussouph Barry
 
Radio France rencontre Drupal
Radio France rencontre DrupalRadio France rencontre Drupal
Radio France rencontre DrupalOlivier Friesse
 
Virtualisation du Poste de Travail - Desktop as a Service - 16h - Atelier VDI...
Virtualisation du Poste de Travail - Desktop as a Service - 16h - Atelier VDI...Virtualisation du Poste de Travail - Desktop as a Service - 16h - Atelier VDI...
Virtualisation du Poste de Travail - Desktop as a Service - 16h - Atelier VDI...DotRiver
 
Une App responsable pour de la mobilité durable
Une App responsable pour de la mobilité durableUne App responsable pour de la mobilité durable
Une App responsable pour de la mobilité durableChristophe Rochefolle
 
developpement web framework cms developpement brute
developpement web framework cms developpement brutedeveloppement web framework cms developpement brute
developpement web framework cms developpement bruteYounesOuladSayad1
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreStéphane Traumat
 

Ähnlich wie Cas de la refonte de STM.info (20)

Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
 
Yannick DUPUIS
Yannick DUPUISYannick DUPUIS
Yannick DUPUIS
 
Cv kouadio kouame_olivier
Cv kouadio kouame_olivierCv kouadio kouame_olivier
Cv kouadio kouame_olivier
 
Production logicielle, outils et pratiques
Production logicielle, outils et pratiquesProduction logicielle, outils et pratiques
Production logicielle, outils et pratiques
 
conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville Public
 
CV_Bilel CHAOUADI
CV_Bilel CHAOUADICV_Bilel CHAOUADI
CV_Bilel CHAOUADI
 
Industrialisez le développement et la maintenance de vos sites avec Drupal
Industrialisez le développement et la maintenance de vos sites avec DrupalIndustrialisez le développement et la maintenance de vos sites avec Drupal
Industrialisez le développement et la maintenance de vos sites avec Drupal
 
Cv kouadio kouame_olivier
Cv kouadio kouame_olivier Cv kouadio kouame_olivier
Cv kouadio kouame_olivier
 
CV REBAI Hamida
CV REBAI HamidaCV REBAI Hamida
CV REBAI Hamida
 
Réussir son projet Drupal
Réussir son projet DrupalRéussir son projet Drupal
Réussir son projet Drupal
 
Retour d’expérience sur le déploiement d’uPortal 4.2 responsive à l’UPMC – So...
Retour d’expérience sur le déploiement d’uPortal 4.2 responsive à l’UPMC – So...Retour d’expérience sur le déploiement d’uPortal 4.2 responsive à l’UPMC – So...
Retour d’expérience sur le déploiement d’uPortal 4.2 responsive à l’UPMC – So...
 
SQLI - Club des DSI - Mobilité
SQLI - Club des DSI - MobilitéSQLI - Club des DSI - Mobilité
SQLI - Club des DSI - Mobilité
 
CV_Youssouph_BARRY_DRUPAL
CV_Youssouph_BARRY_DRUPALCV_Youssouph_BARRY_DRUPAL
CV_Youssouph_BARRY_DRUPAL
 
Radio France rencontre Drupal
Radio France rencontre DrupalRadio France rencontre Drupal
Radio France rencontre Drupal
 
Virtualisation du Poste de Travail - Desktop as a Service - 16h - Atelier VDI...
Virtualisation du Poste de Travail - Desktop as a Service - 16h - Atelier VDI...Virtualisation du Poste de Travail - Desktop as a Service - 16h - Atelier VDI...
Virtualisation du Poste de Travail - Desktop as a Service - 16h - Atelier VDI...
 
Une App responsable pour de la mobilité durable
Une App responsable pour de la mobilité durableUne App responsable pour de la mobilité durable
Une App responsable pour de la mobilité durable
 
Mohamed.marouan
Mohamed.marouanMohamed.marouan
Mohamed.marouan
 
developpement web framework cms developpement brute
developpement web framework cms developpement brutedeveloppement web framework cms developpement brute
developpement web framework cms developpement brute
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libre
 

Mehr von TP1

Tragedy of the common web
Tragedy of the common webTragedy of the common web
Tragedy of the common webTP1
 
Tragédie du web commun
Tragédie du web communTragédie du web commun
Tragédie du web communTP1
 
Échecologie en design au FailCampMTL 2014
Échecologie en design au FailCampMTL 2014Échecologie en design au FailCampMTL 2014
Échecologie en design au FailCampMTL 2014TP1
 
Connect (français)
Connect (français)Connect (français)
Connect (français)TP1
 
Satisfaction: La différence entre les Robots et les Humains
Satisfaction: La différence entre les Robots et les HumainsSatisfaction: La différence entre les Robots et les Humains
Satisfaction: La différence entre les Robots et les HumainsTP1
 
Design, honesty and emotions
Design, honesty and emotionsDesign, honesty and emotions
Design, honesty and emotionsTP1
 
Design, authenticité et émotions
Design, authenticité et émotionsDesign, authenticité et émotions
Design, authenticité et émotionsTP1
 
The strategist: An ever-evolving profession
The strategist: An ever-evolving professionThe strategist: An ever-evolving profession
The strategist: An ever-evolving professionTP1
 
La stratégie : une discipline en plein changement
La stratégie : une discipline en plein changementLa stratégie : une discipline en plein changement
La stratégie : une discipline en plein changementTP1
 
Boom Sketch Box 2013
Boom Sketch Box 2013Boom Sketch Box 2013
Boom Sketch Box 2013TP1
 
The Cupcake Effect
The Cupcake EffectThe Cupcake Effect
The Cupcake EffectTP1
 
L'effet Cupcake
L'effet CupcakeL'effet Cupcake
L'effet CupcakeTP1
 
Ma relation d'amour-haine avec la gamification
Ma relation d'amour-haine avec la gamificationMa relation d'amour-haine avec la gamification
Ma relation d'amour-haine avec la gamificationTP1
 
Gamification: Integrating gaming into your brand strategy
Gamification: Integrating gaming into your brand strategy Gamification: Integrating gaming into your brand strategy
Gamification: Integrating gaming into your brand strategy TP1
 

Mehr von TP1 (14)

Tragedy of the common web
Tragedy of the common webTragedy of the common web
Tragedy of the common web
 
Tragédie du web commun
Tragédie du web communTragédie du web commun
Tragédie du web commun
 
Échecologie en design au FailCampMTL 2014
Échecologie en design au FailCampMTL 2014Échecologie en design au FailCampMTL 2014
Échecologie en design au FailCampMTL 2014
 
Connect (français)
Connect (français)Connect (français)
Connect (français)
 
Satisfaction: La différence entre les Robots et les Humains
Satisfaction: La différence entre les Robots et les HumainsSatisfaction: La différence entre les Robots et les Humains
Satisfaction: La différence entre les Robots et les Humains
 
Design, honesty and emotions
Design, honesty and emotionsDesign, honesty and emotions
Design, honesty and emotions
 
Design, authenticité et émotions
Design, authenticité et émotionsDesign, authenticité et émotions
Design, authenticité et émotions
 
The strategist: An ever-evolving profession
The strategist: An ever-evolving professionThe strategist: An ever-evolving profession
The strategist: An ever-evolving profession
 
La stratégie : une discipline en plein changement
La stratégie : une discipline en plein changementLa stratégie : une discipline en plein changement
La stratégie : une discipline en plein changement
 
Boom Sketch Box 2013
Boom Sketch Box 2013Boom Sketch Box 2013
Boom Sketch Box 2013
 
The Cupcake Effect
The Cupcake EffectThe Cupcake Effect
The Cupcake Effect
 
L'effet Cupcake
L'effet CupcakeL'effet Cupcake
L'effet Cupcake
 
Ma relation d'amour-haine avec la gamification
Ma relation d'amour-haine avec la gamificationMa relation d'amour-haine avec la gamification
Ma relation d'amour-haine avec la gamification
 
Gamification: Integrating gaming into your brand strategy
Gamification: Integrating gaming into your brand strategy Gamification: Integrating gaming into your brand strategy
Gamification: Integrating gaming into your brand strategy
 

Cas de la refonte de STM.info

  • 1. CAS DE LA
 REFONTE DE STM.INFO DrupalCamp Montréal 2013 !
  • 2. Bonjour ! Jan-Nicolas Vanderveken, associé, TP1, @nvanderv Albert Albala, développeur, TP1, @alberto56 Frédéric Gouin, analyste applications, STM Nicole Gruslin, conseillère corporative web, STM 2
  • 3. Aujourd’hui Contexte Gestion de projet Intégration avec les systèmes de la STM Tests automatisés et intégration continue Infrastructure et performance Site mobile Tests utilisateurs 3 Contributions à la communauté Drupal Gestion du changement
  • 5. Des utilisateurs satisfaits Site développé en 1996 - 1997 Mis en ligne en 1997 90 % de satisfaction Dans le contexte actuel, STM.info doit avant tout faciliter les déplacements des usagers et être disponible en tout temps, même dans les périodes de pointe et de crise. 5
  • 6. L’open source à la STM La STM crée un blogue WordPress en 2008 En 2009, elle entreprend de choisir un outil pour la refonte de ses propriétés web. Drupal est sélectionné. L’open source fait désormais partie intégrante des outils privilégiés par la STM (Drupal, Nuxeo, Liferay, etc.) Début du projet STM.info : mi-2012 6
  • 7. Philosophie Nous avons, tout au long du projet, considéré STM.info comme un service, et non comme un site web. Comme pour ses services de déplacement, STM.info devait être accessible au plus grand nombre possible. Nous avons placé l’utilisateur au centre du projet. Finalement, chaque solution était évaluée en fonction de sa stabilité, de son évolutivité et de sa performance. 7
  • 9.
  • 12. Ce que le chargé de 
 compte explique
  • 14. Ce que le designer propose
  • 15. Ce que le développeur a compris
  • 17. Les équipes multidisciplaires Encourage la discussion parmi les différentes expertises Les expertises sont impliquées tôt dans le processus Un plus grand sens d'autonomie et de ownership Moins d’ego, moins de « divas », nulle part où se cacher Une dimension sociale plus grande Place l’utilisateur au centre des préoccupation 17
  • 18. Ça prend du rythme ! Des cycles de deux semaines, 
 qu’on planifie un lundi sur deux. Une démo client un vendredi sur deux. Chaque matin, un meeting debout. Et une démo d’agence chaque deux semaines. 18
  • 19. Ça va vite! - Nicole Gruslin, STM
  • 20. Nos musts : Des équipes multidisciplinaires Un espace de travail propice Un rythme d’agence constant Des produits plutôt que des plans
  • 21. Intégration avec les 
 systèmes de la STM 21
  • 22. Solution A : Drupal seul Infos sur les trajets Infos sur les autobus 22 ? Infos sur les emplois Site Drupal
  • 23. Solution B : Drupal + middleware Infos sur les trajets Infos sur les autobus 23 Infos sur les emplois Middleware Rails RESTful API Site Drupal
  • 24. Avantages Sous-équipes au sein de l’équipe de développement Impératif de garder une bonne communication Objets bidons (« Mock objects ») Tests plus efficaces Abstraction des APIs Documentation des interfaces 24
  • 26. Les grands objectifs Optimiser les activités de déplacement pour les téléphones intelligents (itinéraires, horaires, tarifs et état du service métro et autobus). Obtenir un design de marque cohérent, pour les trois environnements ciblés par la STM : ordinateurs, tablettes 
 et téléphones intelligents. Créer une solution évolutive tenant compte des grandes tendances du marché et pouvant s’adapter. 26
  • 27.
  • 28. L’écosystème mobile Un site web adaptatif (dès le début) Une application web (à 80% du développement) Des applications natives (hors mandat) 28
  • 29. Solution proposée Optimisation mobile, en mode adaptatif, pour les sections informationnelles du site. Développer une application web mobile optimisée pour le plus d’appareils mobiles intelligents possible. Mettre à profit les API et le CMS développés à ce jour. Rendre la carte disponible sur les téléphones intelligents. Offrir à la clientèle une expérience optimisée et unifiée pour les téléphones intelligents sur l’ensemble du site. 29
  • 30. ACCUEIL ET PAGES DE CONTENU ACCUEIL ET THÈMES DE DÉPLACEMENT (ADAPTATIF) THÈMES DE DÉPLACEMENT ordinateur + tablette + téléphone intelligent téléphone intelligent (ADAPTATIF) ordinateur + tablette
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42. Orientations technologiques Optimiser le planificateur de trajet pour une expérience mobile en misant sur un développement en Ruby on Rails. C’est le volet applicatif. Optimiser les pages intérieures pour les plateformes mobiles en version adaptative, sous Drupal. C’est le volet informationnel, en développement depuis le début du projet. La gestion du site et l’entrée du contenu sont centralisées dans Drupal. Une seule interface pour les webmestres. 42
  • 43. visiteur ordinateur + tablette répartiteur de charge téléphone intelligent (HAProxy) appel à l’action stm.info m.stm.info lien en pied de page ordinateur + téléphones intelligents application mobile
  • 44. Les avantages? Un client web mobile ultra-léger qui met l’accent sur l’expérience du client en déplacement. Aucun changement à l’infrastructure nécessaire. Développement accéléré utilisant l’architecture existante. Environnement permettant de répondre aux besoins spécifiques des utilisateurs de téléphones intelligents. Gains de performance grâce à un accès direct aux API. 44
  • 46. Beta public TP1 Tests d’accessibilité AccessibilitéWeb Yu Centrik Tri de cartes TP1 / Adviso Tests utilisateurs sur maquettes fonctionnelles Yu Centrik Beta panel 
 6000 clients TP1 / Adviso Focus group 
 sur le design Callosum Beta panel 
 3000 employés STM Tests utilisateurs sur version alpha Yu Centrik 46
  • 47. Tests automatisés et 
 intégration continue 47
  • 48. Défi #1 : Tests de JavaScript Drupal est excellent pour tester des pages statiques Mise en place de tests avec Behat Nécessité de tester Internet Explorer, Firefox, Chrome... Défi : la prolifération des plateformes mobiles 48
  • 49. Défi #2 : Bien définir les tests Développement piloté par les besoins d’affaires, ou
 « Behavior-driven development » Utilisation d’exemples concrets pour les tâches à accomplir dans Jira (agile) Automatisation basée sur un langage commun 49
  • 50. 1 2 3 4 5 6 7 8 9 10 11 12 13             Scénario: (Sprint 7, Story STMMEO-43) En tant que client, Je veux être! en mesure de minimiser les correspondances dans mon itinéraire! ! Soit je suis sur la page d'accueil! Et je cherche le premier itinéraire entre "cote ste-ca" et "jean-talon [m"! Alors je vois "Ligne orange" avant "Itinérare 2"! Alors je vois "Ligne bleue" avant "Itinérare 2"! Et j'appuie sur "Modifier l'itinéraire"! Et j'appuie sur "Afficher les options"! Et je mets dans les options "Minimiser les correspondances"! Et j'appuie sur "Rechercher l'itinéraire"! Alors je ne vois pas "Ligne orange" avant "Itinérare 2"! Alors je ne vois pas "Ligne bleue" avant "Itinérare 2"! /**"  * @Given /^je vois sur la carte la ligne verte mise en évidence$/"  */" public function jeVoisSurLaCarteLaLigneVerteMiseEnEvidence() {"   _assert_html($this, MARKUP_CARTE_LIGNE_VERTE_SELECTIONNEE);" }" ! 50
  • 51.
  • 52. Défi #3 : Tests d’APIs externes Objets bidons Développement et contribution du module Mockable Importance de simuler tous les scénarios potentiels (serveur externe non-disponible, temps de réponse inacceptable, etc.) 52
  • 53. Défi #4 : Internet Explorer Selenium Machine virtuelle Batterie de tests relativement longue : 2 heures Images de VM de Microsoft (un cauchemar!) 53
  • 54. Intégration continue Un serveur d’intégration continue Jenkins a été mis en place plus tard dans le projet. Les prochaines phases utiliseront l’intégration continue dès le début. 54
  • 55.
  • 56. Avantages et défis Très peu de régressions se sont rendues en production Découverte de bogues tôt dans le processus de déploiement Batterie de tests trop longue, nécessité de l’automatiser davantage À l’avenir, importance de mieux simuler l’environnement de production 56
  • 58. Infrastructure STM.info Des dizaines de serveurs physiques et virtuels Des centaines de milliers d’utilisateurs par jour, des centaines de requêtes simultanées Mise en cache : entre 60 secondes et 30 minutes 58
  • 59. Leçon : bien utiliser la cache Drupal Tests de charge Identifier et reproduire une utilisation réaliste pour la STM Cache Varnish à 30 minutes et cache Drupal anonyme, sauf l’information importante (60 secondes) et les
 formulaires (aucune cache) Utilisation massive de AJAX 59
  • 60. Contributions à la 
 communauté Drupal 60
  • 61. Contributions à la communauté Participation à plus de 100 « issues » Près de 30 « patchs » soumises à divers modules, 
 Drupal core 7.x et 8.x Blogue technique Deux modules Drupal : Mockable et Representative Image Partage de code avec NBCUniversal 61