Outillage agile dans un environnement de
développement Microsoft
Scrum Day France 2011
Christophe HERAL [email protected]
Geoffrey DANIEL [email protected]
Merci aux sponsors du Scrum Day !
Sponsors Platinum
Sponsors Gold
Parrainage :
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)
Sommaire
• Pourquoi s’outiller ?
• Team Foundation Server 2010
• Scénario
• Outils annexes
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, …)
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
TEAM FOUNDATION SERVER 2010
Positionnement de TFSTeam 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 projet
Site web ?
Documents (mise à dispo) Site web ? Repository ?
Couverture de code NCover
Analyse statique de code Gendarme / FxCop
Architecture de TFS
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
Template MSF for Agile v5.0pour 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
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
Template Scrum v1.0 pour TFS• Vocabulaire Scrum • WorkItem de type Sprint
– Onglet Rétrospective
• Nouveaux rapports– Release Burndown– Velocity– Sprint Burndown
SCENARIO
Gérer son backlog sous Excel• Interopérabilité Office avec TFS
– Microsoft Excel– Microsoft Project
• Possibilité de gérer les WorkItems en masse
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
Tests unitaires
• Projets de tests unitaires• MSTest• Interaction possible avec d’autres outils de
tests (NUnit, MBUnit, …)
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.
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
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ènementsmais aussi les appels de méthodes
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
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
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
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
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
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écutionou à la compilation (Edition Premium)
• PEX : générateur de tests unitaires
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…)
Documents• Stockés dans Sharepoint• Gestion des versions
Rapports
Basés sur un cube OLAP
• Stockés sur un serveur SSRS• Gestion des droits fine et granulaire
OUTILS ANNEXES
Scrum for Team System v3• Process Template• Application Tableau de Bord
Urban Turtle• Plug-in à TFS 2010 Web Access, enrichit
l’utilisation de Scrum avec TFS• Ex : Priorisation du backlog via drag & drop
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
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
Applications de Planning Poker sur Smartphones
• Iphone, Android, Windows Phone 7, ...
Questions
MERCI
Top Related