[Scrum Day 2011] Outillage Agile dans un environnement Microsoft

Preview:

DESCRIPTION

 

Citation preview

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

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