Développement Agile avec Team System et SCRUM

- Partie 1 : Présentation des concepts et outils -

Paru le 23 février 2006
Par Erwan Ducroquet (Valtech)

Dans cette première partie, nous allons présenter les concepts et outils associés aux notions d'usine logicielle et de méthodologie Agile, et leurs implémentations TeamSystem et SCRUM.

 

Sur cette page

Une usine logicielle : Team SystemUne usine logicielle : Team System

Une méthode Agile : SCRUMUne méthode Agile : SCRUM

Le couple Team System - SCRUMLe couple Team System - SCRUM

ConclusionConclusion

 

Une usine logicielle : Team System

Une usine logicielle peut être définie comme l'ensemble des outils mis en oeuvre dans le cadre d'un développement logiciel, ainsi que les démarches associées à l'utilisation de ces outils. Cela ne se limite pas à la production du code source, mais à tous les éléments qui participent à la bonne réalisation du projet (tests, documents, suivis, versions, ...).

Team System, l'usine logicielle de Microsoft, est un ensemble d'outils intégrés qui permet à une équipe de développement de construire une application .NET avec un bon niveau de productivité, de qualité et de support à la gestion de projet.

En plus de l'IDE Visual Studio lui même, on y trouve :

  • des modèles pour décrire ses applications (site web, base de données) et la structure du code (classes, relations, membres).
  • des outils de test : test unitaire, couverture de code, gestionnaire de tests, test web et test de charge.
  • des outils de mesure de qualité : analyse statique et profiler (mémoire et temps d'exécution).
  • et enfin des outils pour gérer le projet : portail, tableaux de bord, gestionnaire de version, de fiches de suivi (taches, bugs, etc ...)

L'usine logicielle Team System

Ces outils ne sont pas innovants par eux-mêmes, des outils équivalents existent par ailleurs chez d'autres éditeurs ou en Open Source, dans le monde Java comme dans le monde .NET, et parfois avec des fonctionnalités plus avancées et une plus grande maturité.

Tout l'attrait de Team System se situe donc plutôt :

  • dans l'intégration de ces outils qui permet une prise en main très rapide et intuitive, qui élimine l'étape de sélection/intégration d'outils divers (pouvant être longue et fastidieuse), et surtout qui met à disposition un référentiel unique et centralisé de toutes les données et métriques liés au projet et permet de relier ces données entre elles (check-ins, builds, tests, tâches, bugs, exigences, scénarios, ...).
  • dans son extensibilité et son ouverture. Les outils de gestion de projet ne sont pas limités au monde .NET et peuvent être utilisés par des projet Java (il existe déjà des plugins pour Eclipse). Et une grande partie des outils peut être à la fois finement configurable et étendue par du développement. De nombreux éditeurs proposent d'ores et déjà des extensions à Team Sytem ou des produits qui s'y intègrent.

Haut de pageHaut de page

 

Une méthode Agile : SCRUM

Les méthodes dites "Agile" sont une façon de mettre en œuvre des projets informatiques qui se base plus sur l'esprit d'équipe et le pragmatisme que sur le respect "aveugle" d'un processus formel et figé.

Le terme "Agile" est apparu en 2001 lors d'une réunion des gurus de ce type de méthode qui ont, à cette occasion, posé les grand principes de leur démarche et ont trouvé ce terme pour la désigner. Une erreur commune est de penser que le terme "Agile" est une façon élégante de désigner des projets "bazar" où règne le système D et où le succès dépend des individualités. Bien au contraire, ces méthodes sont disciplinés, structurées et exigeantes sur la gestion de projet. Les méthodes Agiles sont reconnues pour être plus efficaces que des processus dirigistes dans le cadre de projets complexes et fluctuants.

Parmi ces méthodes, la méthode "SCRUM" a particulièrement fait ses preuves et est compatible avec d'autres méthodes comme "eXtreme Programing" qui ne traitent pas forcément des mêmes problématiques.

La méthode SCRUM

Elle fonctionne suivant les principes suivants.

  • La durée du projet est découpée en itérations de quelques semaines (entre 2 et 6 suivant le projet). Une itération contient juste une partie de l'application, mais qui doit être complète : développée et testée.
  • Une réunion initiale commence chaque itération pour définir les tâches qu'elle va réaliser.
  • Une réunion finale présente une démonstration de l'application et fait un point sur ce qui s'est bien passé ou pas.
  • Chaque jour, une courte réunion d'avancement permet à toute l'équipe d'avoir une vue globale du projet : de savoir ce qui s'y passe et comment ça se passe.
  • Des tableaux de bords sont régulièrement générés pour avoir une vue réelle de l'avancement.
  • Un chef de projet, qui est plus un organisateur/facilitateur qu'un décideur, pilote la gestion de projet et fait son possible pour que tout fonctionne correctement et que l'équipe puisse réaliser ses tâches sereinement. Mais il ne défini pas le planning ni n'assigne les tâches, ce travail est réalisé par l'équipe elle-même.
  • Un responsable fonctionnel définit et priorise les fonctionnalités que doit remplir l'application. Il valide le travail de l'équipe et ajuste les besoins fonctionnels entre chaque itération.

Haut de pageHaut de page

 

Le couple Team System - SCRUM

Quel rapport entre l'usine logicielle et la méthode de développement, entre Team System et SCRUM ? Elles sont inter-dépendantes : une méthode peut plus aisément être mise en œuvre si elle est supportée par un outil, une usine est plus efficace si elle est correctement utilisée dans le cadre d'une méthode. La réussite d'un projet passe donc à la fois par l'implémentation d'une usine logicielle et d'une méthode qui se supportent l'une l'autre et qui toutes deux correspondent bien aux nécessités du projet.

En tant qu'usine logicielle, Team System est tout d'abord bien adapté aux exigences de l'agilité qui recommandent de tester tôt et souvent, de construire régulièrement l'application pour être sûr de son bon fonctionnement, et de rendre facilement visible ces résultats.

De plus, Team System peut être paramétré pour supporter différentes méthodes. Ce paramétrage correspond principalement :

  • aux fiches de suivi (de quelles fiches a-t-on besoin, quelles champs contiennent-elles, quel est leur cycle de vie ?),
  • aux tableaux de bords qui donnent l'état de l'application,
  • à la documentation de la méthode proprement dite.

Par défaut Team System supporte deux méthodes définies par Microsoft : MSF-Agile, orienté agilité comme son nom l'indique, et MSF-CMMi qui est plus dirigiste et contraignante.

La méthode SCRUM, de son coté, nécessite la saisie et le suivi d'une liste de fonctionnalités pour l'ensemble du projet et d'une liste de tâches pour chaque itération. Elle demande également la production de tableaux de bords (ie: rapports graphiques). Bien sûr, un simple fichier Excel peut suffire, mais l'accès partagé à un fichier Excel par toute l'équipe, en écriture et en consultation, est toujours problématique.

Aussi la société Conchango, avec l'aide de Ken Schwaber, un des auteurs de SCRUM, a-t-elle réalisé une extension gratuite qui permet de paramétrer son projet Team System pour fonctionner suivant la méthode SCRUM :

  • Les listes de fonctionnalités et de tâches SCRUM sont gérées par les fiches de suivi Team System (nommées "Work Items"). Excel peut toujours être utilisé pour la saisie et consultation de ces fiches, mais n'est plus obligatoire et chaque membre de l'équipe peut directement consulter/modifier les fiches via Team Sytem.
  • Les tableaux de bords sont automatiquement générés par le mécanisme de rapport de Team System et sont immédiatement accessibles par tout un chacun sur le portail du projet.

 

Haut de pageHaut de page

 

Conclusion

Maintenant que les concepts et outils ont été présentés, nous verrons dans la seconde partie de cet article un exemple de mise en oeuvre d'un projet avec Team System et SCRUM.

Erwan Ducroquet
erwan.ducroquet@valtech.fr
coordinateur communauté .NET - TeamSystem
Valtech Technology Consulting

 

Haut de pageHaut de page