mardi 20 octobre 2009

Comparaison VSTS 2010 / VSTS 2008

L'objectif de cet article est de se faire un idée du gap technique et fonctionnel qui sépare ces 2 versions majeures de l'offre ALM de Microsoft TFS 2008 et TFS 2010.
Comme disait l'adage chinois, une image vaut mille mots!
Si l'on applique ce principe à la plate forme VSTS, on obtient 2 mots et 2 images :

AVANT

APRES

Nous allons regarder maintenant dans le détail, les points sur lesquels Microsoft a travaillé pour d'une part améliorer la plate forme en tentant de répondre d'avantage aux exigences des grandes entreprises et également, dans la fin de l'article, parcourir les nouvelles fonctionnalités implémentées dans cette version 2010.

Installation

TFS 2008

  • L'installation nécessite beaucoup de pré-requis
  • Les options de configuration sont limitées
  • L'installation est longue et ardue
  • Le Serveur Couche Application est limité à une architecture 32 bits

TFS 2010

  • Peu de pré-requis à l'installation.
  • Installaiton rapide (10mns) demandant peu d'input : ceci constitue le changement majeur, un setup drastiquement simplifié, en 2 phases : installation puis configuration.
  • SharePoint, Reporting Services, ou Analysis Services ne sont désormais plus obligatoires mais peuvent être rajouté plus tard comme "features" additionnels.
  • Installation facilement scriptable
  • Support du 64 bits pour le Serveur Couche Application
Administration

TFS 2008
  • Pas d'interface utilsateur pour l'administration en standard
  • Beaucoup de taches en ligne de commande, logs difficilement localisables etc..

TFS 2010

  • Une console MMC d'administration est founie en standard et permet d'exécuter les taches suivantes : Gestion des comptes de service, Configuration du Data Tier, Configuration SSL, Ajouter / Configurer Sharepoint, Configuration Reporting / Analysis Services, Configuration de Team System Web Access, Gestion des collections de projets d'équipe.
  • Accès aux Logs de la plate forme.

Gestion des projets d'équipes

TFS 2008
  • Les projets d'équipes ne peuvent pas être individuellement déplacés vers différentes instances TFS.
  • Les projets d'équipes ne peuvent pas être individuellement backupés/restaurés, seul l'ensemble du système de bases de données peut l'être.
  • Limitation du nombre de projets d'équipe à 250-500 par instance TFS.
TFS 2010

  • Nouveau concept de Team Project Collection qui consiste essentiellement en un conteneur isolé de Projets d'équipes
  • Possibilité de Backup/Restore au niveau Team Project Collection.
  • Possibilité de déplacement d'un Team Project Collection d'une instance TFS vers une autre.
  • Possibilité de Scale out du serveur Couche Application sur différents serveurs physiques permettant ainsi la mise en oeuvre d'un Load balancer pour améliorer les temps de réponses et la performance. Le principe de Load Balancing permet également la mise en oeuvre du principe de redondance de la couche serveur applicative (TFS Application Tier).
  • La possibilité de gérer plusieurs Team Project Collection de 500 projets d'équipes permet de s'affranchir de la limite avec la version précédente.
Pilotage de l'activité (Work Item Tracking)

TFS 2008
  • Excellent pour toute la partie suivi : assignation des éléments de travail, utilisation du workflow pour renforcer les processus méthodologiques de l'entreprise, liens des éléments de travail avec les élements de code source, les tests et les builds et une restitution multi-dimensionnel des données tout au long du projet pour l'analyse et le reporting.
  • Limité pour la partie plannification : Pas de support de structure hiérarchique pour les éléments de travail, pas d'outil de gestion de backlog ou de capacité d'équipe en standard. Impossibilité d'injecter l'intégralité d'un WBS projet dans TFS.
TFS 2010

  • Support hiérarchique pour les éléments de travail (Work Items) permettant un suivi en mode Top Down avec des relations de type Parent/Enfant et Predecesseur/ Successeur. TFS 2010 permet également la mise en oeuvre de fonctions de type Rollup (consolidation vers le haut) et Drill Down pour l'inspection au niveau détail. une synchronisation bidirectionnel avec Project et Excel vient grandement améliorer la puissance de l'outil.
  • Outil de Planning Agile en Standard
Reporting

TFS 2008
  • Les rapports fournis en standard sont garants de la prédictabilité sur projet et contribuent à éliminer les mauvaises suprises en diminuant le fameux effet tunnel
  • Les rapports standards ne peuvent apporter des réponses à toutes les questions
  • La mise en place de rapports personnalisés reste une tache complexe er requiert de plus la maitrise du schéma du cube OLAP
  • La personnalisation du Process template peut altérer voire même détruire l'affichage d'un rapport standard
TFS 2010
  • Un reporting modifiable par le commun des mortels enfin!
  • Plus large panel de rapports fournis en standards exploitant notamment l'affichage hiérarchique et la consolidation des données (rollup)
  • Possibilité de générer des rapports à partir de requètes.
  • Un cuble OLAP plus User Friendly
  • Manipulation des données à partir d'Excel plus puissante
  • Project Dashboards fournis en standard.
  • Rapports affichés simplement dans MOSS
Dans la seconde partie de cet article nous allons nous interesser aux nouvelles fonctionnalités qui viennent pour le coup combler de grands manques dans version 2008.

Le Module Team Test

Ce module permet notamment la résolution du "syndrome de non reproductibilité des bugs" générateurs le plus souvent de pertes de temps et aller retours inutiles entre les testeurs et les développeurs. Désormais, le testeur peut encapsuler un bug dans un fichier actionable qui contient les données suivantes automatiquement collectées sur le poste du testeur :
  • Les étapes à reproduire
  • Les information Systèmes de l'environnement de Test
  • Les enregistrements videos et captures d'écran permettant aux développeurs de suivre les étapes du test
  • Les Trace debug log
  • Un lien vers un snapshot (au sens hyper-V) pour se connecter sur l'environnment restitué dans l'état au moment du bug (uniquement disponible avec Team Lab installé)
Un autre point adressé par la plate forme sera la non régression au niveau interface utilisateur. on sait aujourd'hui que l'approche manuelle est couteuse. La solution automatisée proposée par Microsoft passe par les nouveaux concepts "Automation Tool Strip" et "UI Coded Tests" permettant l'automatisation des tests des interfaces hommes machines avec controles des valeurs attendues.

Le Module Team Build

Grace au nouveau concept de "Quality Gated Check-in" plus de Builds cassés.
Le Gated check-in se fait en 3 étapes, le code source archivé est placé dans un Shelveset coté serveur, puis fusionné avec le code de la branche prinicpal pour enfin être "buildé", en cas de succès , les changements sont comittés dans la branche Main, le cas échéant le Check-In est rejeté. Les raisons d'échec peuvent être : Compilation échouée, Tests unitaires non passés, Validation d'architecture échouée, autres erreurs de workflow.

Le Module Team Architect
La version 2008 ne bénéficiait que d'une ébauche d'un module architecte basé sur des DSL mais n'adressant aucune problématique sérieuse d'architecture.

Les éléments suivants permettent aujourd'hui à un architecte de valider que les développements effectués sur son projet sont conformes au Guidelines architecturaux mis en place dans l'entreprise avec notamment :

  • Les Diagrammes de Couches (Layer Diagramm) : encapsule un mécanisme de validation architectural pour s'assurer que le code écrit est conforme au Design attendu. Un Designer permet de mapper les classes et les namespaces avec les couches du diagrammes. Toute non conformité detectée peut bloquer le build.
  • L'Architecture Explorer : Le couteau suisse de l'architecte permettant de découvrir et comprendre visuellement le fonctionnement d'un système existant (application en TMA par exemple) mais aussi visualiser les compsants de code existants et comment ils sont connectés (Notion de dépendances)
  • Outil d'affichage des dépendances entre les différents composants d'un système en mode interactif.
Le Module Source Control
La parallélisation des développemnents reste une fonctionnalité majeure pour une usine logicielle. TFS 2008 vient avec un module abouti à ce niveau permettant d'appliquer les patterns de gestion de configuration classique. En revanche la gestion des branches mises en place demande de la part du release Manager un effort considérable de documentation et peut devenir rapidement très complexe.
TFS 2010 vient encore avec quelques révolutions dans le domaine de la gestion des branches.

  • Les branches deviennent un élément de premier plan dans le Source Control
  • Mécanisme de création des branches coté serveur
  • Visualisation graphique (WPF) des relations entre les branches
  • Suivi des changements au travers des différentes branches (par Changeset par exemple)
  • Visualisation par Timeline
  • Fonction d' "Annotate" enrichie
  • Résolution de conflits améliorée
Module Team Lab
Ce module constitue véritablement une avancée notoire de Microsoft dans le domaine des tests et donc de la qualité.Team Lab est une composant dont le role premier est de permettre de provisionner facilement des environnments de test, en permettant de créer des templates d'environnemnets puis de les déployer rapidement. Team Lab est entièrement basé sur la virtualisation. La présentation de Team Lab dépasse largement le cadre de cet article, une autre article sur ce blog approfondit la description de ce module clé de TFS 2010