Dans cette session, nous allons utiliser un cas concret d'une société française leader en eCommerce. Avec plus de 150 développeurs, des patches toutes les semaines, et des releases mensuelles et la plate-forme Team Foundation Server pour orchestrer tout ça, faire de l'ALM peut s'avérer challenging ! Nous vous proposons donc de regarder sous le capot de leur processus ALM, la synchronisation des équipes, les contraintes de delivery, l'utilisation des builds, des branches. Comment TFS a été customisé pour répondre à tout cela. Enfin c'est l'occasion de faire le point sur des problématiques réelles et les solutions qui sont envisagées.
1. Donnez votre avis !
Depuis votre smartphone, sur :
http://notes.mstechdays.fr
De nombreux lots à gagner toutes les heures !!!
Claviers, souris et jeux Microsoft…
Merci de nous aider à améliorer les TechDays
http://notes.mstechdays.fr
2. ALM204 - ALM & eCommerce
des challenges en continu !
Vincent LABATUT Kamel KHELIL
MVP Visual Studio ALM Solution Sales Pro. Visual Studio
Sogeti Microsoft
ALM204
Site web
Code / Développement
4. La recette d’une évolution…
• le contexte du eCommerce
• « Cuisiner » une évolution
• Les perspectives d’avenir
Agenda
5. Chapitre 1
LE CONTEXTE
ALM204 - ALM & eCommerce : des challenges en continu !
6. Le périmètre ALM
Gouvernance
Dev
Application
Lifecycle Développement Test Build
Management
Deploy
Exploitation
ALM <> SDLC
7. Les équipes (en cuisine)
Build master Intégrateurs Testeurs
Développeurs,
Designers
Chefs de Spécialistes :
Architectes
Projet Web, Perf
MOA Stakeholder Métier Production
Ceux dont on ne va pas parler…
8. Les priorités techniques du eCommerce
• Objectifs classiques
– Réduction des coûts et ROI
– Réduction des bugs bloquants
Vitesse
• Objectifs commerciaux
– Time to market!
• Objectifs stratégiques
– Modularité, réutilisabilité
Coûts Qualité
« Time is of the essence… »
9. Chapitre 2
« CUISINER » UNE EVOLUTION
ALM204 - ALM & eCommerce : des challenges en continu !
10. Une idée, une envie…
• Impacte les sites
– Front Office
– Middle Office
• Impacte les bases de données
A la Saint Valentin, déclarez votre
flamme et faites profiter de réductions • Impacte la configuration
inédites* à l’élu(e) de votre cœur !
* cf tous les articles marqués d’un cœur !
Une idée marketing qui tue
11. Une commande spéciale…
• Demande du métier
• Chef de projet fonctionnel (MOA)
– Estimation et chiffrage
• Planification
Patches 1a 1b 2a 2b 3a 3b 4a 4b
Livraison 1 Livraison 2 Livraison 3 Livraison 4 Livraison 5
Livraisons et patches sont planifiés de longue date
12. Applications (Fronts, Middle)
La composition du plat
• Le Framework et la couche de
services
Service 1 Service 2 … Service N – De nombreux services
découpés en domaines
fonctionnels
• Gestion des dépendances
Framework simple
• Découpage très fin :
– Maîtrise naturelle
… – Solution assez lourde
BD 1 BD 2 BD N
Les entrailles
13. La répartition des commis
• Le projet est réparti sur plusieurs équipes
– Front Office
– Middle Office
• Les développeurs rapportent le suivi au fur et à
mesure du développement
• Ils produisent 3 artefacts principaux :
– Evolutions de code
– Evolutions de bases de données
– Evolutions de configuration
• On distingue le suivi développement du suivi
facturation
Champ de bataille
14. Question d’organisation
Project
Requirement ExtBug • Une arborescence de Work Items
Task Task partant des « projets »
Task Task • Modèle CMMI fortement modifié
Configuration Task • Les évolutions sont composées de :
Task Synchro – Code (Task puis merges
Resource Database rattachés à des Synchro)
Synchro – Configuration
Database – Resource
Task
– Database
Configuration
Database
Work Items customization
16. Le travail sur l’ingrédient principal
• Le code est archivé dans TFS
– Nous avons mis en place des contraintes avec des
Checkin Policies
• Commentaire obligatoire
• Work Item obligatoire
• Expérimentation : UpdateTime Policy
– Mise en place sur un chemin précis
• Politique de surveillance des checkins sans Work
Item !
Assurer l’intégrité
17. Les difficultés (mineures)
• Du temps passé à expliquer (et
Bonjour Truc,
Il faudrait que tu associes tes checkins à des Work Items, pourras-tu le faire à
l’avenir ?
Si tu as besoin d’infos n’hésite pas à revenir vers moi,
Cordialement,
éduquer) les développeurs
Vincent
Bonjour Machin,
En effectuant ce checkin tu as overridé la policy qui restreint volontairement le champ
des work items « associables » aux tâches en état « Active », or la tâche que tu as
• Pas si chronophage
choisie était « Proposed ». Au besoin, il faut changer ou faire changer l’état de la
tâche en cours.
Cordialement,
Vincent
• Résultats visibles
Bonjour Bidule,
Le problème avec la policy Work Item Query a été expliqué dans mon mail du 6 juin
dernier, il ne faut pas l'overrider : il y a en fait un problème de cache et de refresh
• Au final meilleur contact
côté client. Si le WI est repassé à Active tout récemment, il y a une solution simple
et rapide : ne pas utiliser la fenêtre Pending Checkins qui met en cache le résultat
de la requête , on peut passer par le checkin depuis le Solution Explorer ou le
Source Control Explorer. Si cela ne passe toujours pas, relancer Visual Studio, ou
bien faire le checkin depuis une autre instance de Visual Studio.
Désolé que cela ne se refresh pas bien sans avoir faire cela, n’hésite pas à revenir vers
moi si tu as des problèmes ou questions,
Cordialement,
Vincent
« Prendre un enfant par la main, pour l’emmener vers demain… » (chanson populaire pour admin ALM)
20. L’intégration des ingrédients (les builds)
• Build continu sur la branche de dev
• Environ 250… (multiplicité liées aux branches,
aux différents projets par équipe)
– Historique des builds prend beaucoup de Go dans la base
TFS
• A lancer dans l’ordre
• Fortement customisés
• N’utilisent pas les workflows (la migration est
souhaitée mais pas encore réalisée)
Faire monter la sauce
21. Finalisation du plat
• L’évolution arrive sur la branche
d’intégration (Main)
– Le merge est fait par l’équipe de développement
– Ce sont les responsables techniques et les
développeurs qui contrôlent cette plate-forme
• Puis elle est intégrée sur la branche de
recette
– Les intégrateurs opèrent le merge
Une pointe de sel
22. Les goûteurs
• Les testeurs déroulent les cas
Equipes test Développeurs de test
Commu-
nication – Centre de test Sogeti
• Les anomalies sont créées dans
Rapport un outil de bug tracking tiers
Correctif
anomalie – Une synchro a été mise en
place
– L’outil tiers est encore la
Gestionnaire Synchro référence
TFS
de bugs – La traçabilité avec TFS est
en place
Lâchez les fauves !
23. Le plat est-il satisfaisant ?
• Un développeur a-t-il produit un bug ?
– A) « Non merci, je ne fais que très peu de bugs »
– B) clients.Where(x=>x.IsAmoureux).CrediterSoldeBonAchat(100);
– C) Le développeur déteste la St Valentin, il a transformé la réduction en
augmentation pour les profils St Valentin
– D) Obi-Wan Kenobi
A vos buzzers… Votez !
24. Problème : manque d’épices
• Un correctif est réalisé par l’équipe de
développement concernée
• Puis intégré jusqu’à la branche de recette !
• Nouvelle session de test
– Jeu réduit de TNR
Cycle de correction court
25. Le dressage et la présentation
• Préparation des livraisons et packaging
– Le mot d’ordre : traçabilité
– Procédure de déploiement
Synchro 1 Itération
MAIN
Changeset Synchro 2
RECETTE
Livraison
Resource 1
Changeset
Database 1
PRODUCTION
Déploiement en pré-prod
27. Le jury final (l’examen calorique)
• Le jury final : tests de perf
– 1ers tests avec Load Testing (Visual Studio)
– Tests exhaustifs avec un logiciel tiers
• Servi en salle : passage en prod
– La nuit à 2h du matin
– Cache serveurs important : pré-caching de 30 minutes
au moins
Chaud devant !
28. Améliorer un plat déjà servi, c’est possible…
• Prise en main de la fiche bug
– Equipe de TMA ou de Développement selon les
cas
MAIN
• Correctif sur branche de maintenance
• Eventuellement fusionné vers la
production
RECETTE
– Nombreux correctifs abandonnés
• Trop mineur
• Trop impactant, conséquences trop flous ou
PRODUCTION
peu maitrisées
• Durée limitée : de nouvelles évolutions vont
MAINTENANCE le rendre obsolète le mois d’après
• Pipeline de livraison accéléré
– Les patches entrelacés avec les livraisons
d’évolutions
Cycle de correction long
29. Chapitre 3
LES PERSPECTIVES D’AVENIR
ALM204 - ALM & eCommerce : des challenges en continu !
30. Rétrospective
TFS
Source
Développeurs Controller
Builds Build master
Intégrateurs Work
Reporting
Items
MOA Testeurs Chefs de Projet Architectes
TFS encore plus au cœur de l’ALM
31. Meilleure utilisation du testing
• Démarrage de l’utilisation des campagnes
MTM
– Ajustement sur les WIs pour tirer parti au mieux du
reporting
• Les premières fiches de bugs 100% TFS
– Bientôt seulement TFS pour le bug tracking ?
MTM rulez
32. Des processus plus fluides
• Gestion des évolutions de bases de
données dans le contrôleur de sources
• Idem pour les évolutions de configuration
• Des outils pour surveiller l’intégrité des
Changesets et Work Items
La productivité, toujours…
33. Le reporting de bout en bout
• Avec les campagnes et les fiches de bugs
• + le temps passé en temps réel
• Le fameux rapport « User Story overview » devient exploitable
Avancement des campagnes de test
Projets, ou fonctionnalités (inclus les tests automatisés)
Bugs et
Avancement des développements
correctifs
Transparence…
34. Migration Visual Studio 2012 et TFS 2012
• Fonctionnalités d’équipe
• Tests exploratoires
• Feedback utilisateur
MTM rulez
35.
36. Développeurs Pros de l’IT
http://aka.ms/generation-app Formez-vous en ligne www.microsoftvirtualacademy.com
http://aka.ms/evenements-
developpeurs Retrouvez nos évènements http://aka.ms/itcamps-france
Les accélérateurs
Faites-vous accompagner
Windows Azure, Windows Phone,
gratuitement
Windows 8
Essayer gratuitement nos http://aka.ms/telechargements
solutions IT
La Dev’Team sur MSDN Retrouver nos experts L’IT Team sur TechNet
http://aka.ms/devteam Microsoft http://aka.ms/itteam