[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
1. Outillage agile dans un
environnement de
développement Microsoft
Scrum Day France 2011
Christophe HERAL christophe.heral@winwise.com
Geoffrey DANIEL geoffrey.daniel@winwise.com
2. Merci aux sponsors
du Scrum Day !
Sponsors Platinum
Sponsors Gold
Parrainage :
3. Partenaire historique et stratégique de Microsoft
Plus de 90 collaborateurs certifiés interviennent chaque jour sur des missions
variées :
Missions d’expertise
Conseil & Audit
Réalisation de projets à engagement de résultats
Une offre qui couvre l’ensemble du cycle de vie des applications :
Travail collaboratif, portail d’entreprise et Workflow
Business Intelligence & Data Management
Interfaces utilisateurs, Rich Internet Application & desktop application
Architecture d’entreprise et Architecture Life cycle Management
Infrastructure, Sécurité et Réseaux
Centre de formation et de Certification Microsoft
Accompagnement dans la mise en place de méthodes Agiles (Scrum notamment)
5. Outils vs Papier
• Méthodes agiles basées sur une approche sans outil
(paperboard, posts-it, interaction physique de l’équipe…)
• L’utilisation d’outils apporte de la valeur ajoutée (équipe
distribuée, amélioration continue du code produit, …)
6. Outillage agile dans un
environnement Microsoft
• Outillage proposé par Microsoft
– Visual Studio 2010
– Team Foundation Server 2010
• Outils complémentaires
– Outils intégrés à TFS
– Outils non intégrés
8. Positionnement de TFS
Team Foundation Server Open Source
Contrôleur de source SVN / Git / Mercurial
Taches (WorkItems) Bug Tracker / Redmine
Process Template -
Builds Cruise Control / NAnt / Hudson
Tests NUnit
Rapports ?
Portail Collaboratif Site web ?
Portail de gestion de Site web ?
projet
Documents (mise à dispo) Site web ? Repository ?
Couverture de code NCover
Analyse statique de code Gendarme / FxCop
10. Un outil Agile ?
• Positionnement Agile dès TFS 2005/2008
– MSF for Agile
– eScrum
• Quels autres ALM Agiles ?
– Outils Agiles (ScrumWorks, Rally, IceScrum, …)
– Agile Accelerator de HP
– Polarion ALM
11. Template MSF for Agile v5.0
pour TFS
• Template « historique » de Visual Studio pour
les méthodologies Agiles (par opposition au
template CMMI)
• Basé sur MSF (Microsoft Solutions Framework)
• Convient pour des projets Agiles en général
12. MSF for Agile v5.0 vs Scrum v1.0
• Les différents types de workitems
MSF For Agile v5.0 Scrum v1.0
User Story Product Backlog Item
Task Task
Test case Test case
Bug Bug
Issue Impediment
Itération Sprint
13. Template Scrum v1.0 pour TFS
• Vocabulaire Scrum
• WorkItem de type Sprint
– Onglet Rétrospective
• Nouveaux rapports
– Release Burndown
– Velocity
– Sprint Burndown
15. Gérer son backlog sous Excel
• Interopérabilité Office avec TFS
– Microsoft Excel
– Microsoft Project
• Possibilité de gérer les WorkItems en masse
16. Les tests
• Validation des fonctionnalités, performances,
charges et non-régression
• Types de tests
– Tests unitaires
– Tests Web
– Tests chaînés
– UI
– Tests manuels
17. Tests unitaires
• Projets de tests unitaires
• MSTest
• Interaction possible avec d’autres outils de
tests (NUnit, MBUnit, …)
18. Couverture de code
• Mesure qui permet de définir quel est le taux de code
source testé d’un programme (sous forme de %)
• Dans Visual Studio :
• Tests impactés : permet de savoir quels tests rejouer
après une modification de code.
19. Tests manuels
• Tests fonctionnels / non automatisables
• Test Manager 2010
– Gestion des Tests / Etapes de tests
– « Action Recording »
• Enregistrement des actions utilisateurs
• Possibilité de rejouer le test
• Mieux que des mots, Démo
20. Debugging avec Visual Studio 2010
• Debug traditionnel : permet de connaître
l’état de l’application à un moment donné
• IntelliTrace (VS 2010 Ultimate)
– Permet de connaître l’état pour
les évènements du passé
– Peut être généré par le testeur
– Peut enregistrer les évènements
mais aussi les appels de méthodes
21. Outillage pour le développeur
• Apprendre de son propre code (grâce aux
autres ou grâce aux outils)
• Rembourser la dette technique
• Restructurer sans tout casser
• S’assurer de la robustesse du code
22. Revue de code
• Examen systématique du code source par une autre
personne
• Détection au plus tôt des bugs et des vulnérabilités
• Le code de l’examinateur est aussi examiné
• Partage de la connaissance, permet de faire ressortir les
meilleurs choix d’architecture
• Permet de former les membres de l’équipe
• Possible avec des équipes distribuées
• Avant l’intégration au contrôle de code source ou après
• TeamReview
23. Analyse automatique du code
• Ensemble de règles qui permettent
d’améliorer la structure du programme en se
basant sur le code MSIL
– Les performances
– La sécurité
– L’architecture des bibliothèques
– La conception
– …
• FxCop : inclus comme outil d’analyse de code
standard de Visual Studio
24. Analyse du code source
• Travaille sur le code avant compilation
• Définit un lot de règles concernant :
– Le nommage
– La maintenabilité
– La lisibilité
– …
• StyleCop
• Analyse du code dupliqué
– Clone Detective
25. Refactoring
• En quoi cela consiste ?
– Modification de la présentation du code source
– Suppression du code mort
– Renommage de classes et de méthodes
– Modifications algorithmiques
– Refonte de la conception
• Nécessite des tests unitaires pour éviter les
régressions
• Resharper
26. Programmation par contrat
• 3 types d’assertions :
– Invariant : condition toujours vraie
– Pré-condition : condition à vérifier avant le lancement du
traitement
– Post-condition : condition garantie après le traitement
• Code Contracts
– Vérifie les assertions à l’exécution
ou à la compilation (Edition Premium)
• PEX : générateur de tests unitaires
27. Intégration continue avec TFS
• Builds
• Gated checkins
– Force l’équipe à exécuter une Build avant
d’archiver
• Intégration d’outils tiers (Code Analysis…)
31. Scrum for Team System v3
• Process Template
• Application Tableau de Bord
32. Urban Turtle
• Plug-in à TFS 2010 Web Access, enrichit
l’utilisation de Scrum avec TFS
• Ex : Priorisation du backlog via drag & drop
33. Et Java dans tout ça ?
• Visual Studio Team Explorer Everywhere 2010
– Anciennement Team Prise
• racheté par Microsoft en 2009
– Plug-in pour Eclipse qui permet d’accéder à Team
Foundation Server
– Crée une passerelle entre les développements
Java et .Net
34. Team Table
• Une application Scrum sur la table Microsoft Surface
• Exploite le tactile et le multi-points
• Permet de sélectionner les tâches d’un sprint
• Peut s’utiliser en complément du Scrum Dashboard
Gendarme sous MonoEn ligne avec des outils comme Kalistick (plugin Visual Studio, qui gère aussi le Java, plugin JIRA/Greenhopper).
CodeRush
Produit de MS Research, téléchargeable gratuitement (2 versions), anciennementSpec#.ContractInvariantMethod, Contract.Requires,Contract.EnsuresPex inclus dans l’abonnement MSDN, fonctionne en ligne de commande.
Distribué gratuitement par EMC Consulting
Payant, développé par Pyxis.On peut aussi évoquer TeamPulse développé par Telerik