jeudi 25 septembre 2008

Roadmap et Chemin de migration vers Rosario

L’idée du présent article est de fournir de l’information pour planifier et faciliter le passage vers la future plate forme de TFS : ROSARIO dont la release est prévue pour Q4 2009.
L'objectif est d’anticiper les problèmes potentiels de migration ou d’installation mais aussi de planifier et budgéter les actions à engager par avance. En principe, la Beta 1 devrait être une version installable du produit et non une VPC permettant ainsi de jouer par avance les scénarios envisagés pour validation. Les informations sont présentés par sujet, en commençant par la plate forme serveur :
OS Serveur
Rosario supportera Windows 2003, 2008 et toute version future des OS Serveur de Windows. La recommandation est tout de même d’adopter la plate forme serveur Windows 2008, vu que les versions futures risquent de ne plus supporter Windows 2003.
64-bit
Enfin la nouvelle release de Team Foundation Server Rosario va supporter le 64 bit. En revanche dans les versions futures, le support du 32 bit sera supprimé. Pour cette raison, il est recommandé de penser à migrer ses plate formes vers du 64 bits
Virtualisation
Le test et le support des environnements de Virtualisation reste plus que jamais d’actualité. Dans le cas de l’utilisation de Virtual Server, il fortement recommandé d’installer le Data Tiers de TFS donc SQL sur une machine physique. En revanche dans le cas d’un Virtualisation sous Hyper V, l’installation en tout virtuel restera un scénario tout à fait viable
SQL Server
Sans aucun doute la décision la plus importante prise par les équipes de Rosario : la suppression du support de SQL 2005 !!! Cette décision a été très controversée mais finalement actée. Le fondement de cette décision réside dans les nouvelles fonctionnalités apportées par le module Reporting Services de SQL 2008, module qui a été tellement amélioré par rapport à la version précédente qu’il a été jugé impossible de ne pas en tirer profit : De nouveaux rapports ont été crées avec des looks très attrayant. D’autres raisons également tel que l’amélioration de l’indexation Full Text, la compression des index dont TFS va réellement tirer profit, la compression des données pour les Back up. Pour information, ci-dessous les principales améliorations apportées par la plate forme SQL 2008 :

1. Développement
  • Nouveau type HierarchyID facilitant la modélisation d'arborescences dans les bases de données (méthodes GetAncestor GetDescendant ou encore GetRoot pour manipuler efficacement les données hiérarchiques).
  • Nouveau type Filestream (Avec cet attribut, le serveur de base de données autorise le stockage des données de type blob sur le système de fichiers permettant de réduire considérablement la taille des bases de données et des Backups).
  • Nouveau type Table ( permettant de passer directement une table à une procédure stockée ou fonction)
  • Paramétrisation du nom de tables pour les requêtes (exemple : SELECT * FROM @MaTable)
  • Ordre SQL MERGE (Combinaison de INSERT et UPDATE)
  • Intégration de LINQ
  • Module de Géo localisation spatial (SIG) avec le type Geography

2. Stockage

  • la compression des données permettant à SQL Server de se positionner sur le créneau multi TeraBytes.
  • Backups compressés

3. Reporting

  • Déploiement Reporting Services ne nécessitant plus IIS.
  • Report Builder 2.0

4. Sécurité

  • Traçabilité des données (accès asynchrone au données modifiées dans les tables)
  • Possibilité d'implanter des règles de sécurité (par exemple respect d'une police de nommage - à l'instar des GPO de Windows)

5. Divers

  • Intégration plus forte avec Office

Le support de SQL 2005 étant supprimé, il va falloir dans un premier temps opérer une mise à jour vers SQL 2008 puis mettre à jour TFS. Ces migrations seront à planifier dans les prochains mois. Une migration de TFS vers TFS 2008 SP1 sur SQL 2008 est sans contexte une bonne approche pour anticiper et faciliter le chemin de migration vers Rosario. Une stratégie de migration pourra également de procéder à des détachement / rattachement de bases de données.


SharePoint
Dans TFS "Rosario", le support de WSS 2.0 sera abandonné, le pré-requis sera au minimum SharePoint 3.0 (2007) pour le module portail. MOSS 2007 reste un option importante comme plate forme de Reporting. MOSS ne sera pas un pré-requis, mais néanmoins, les fonctionnalités et le Look des portails projets seront nettement améliorés dans le cas de l’utilisation de MOSS, nécessitant en contrepartie l’acquisition de licences en plus de celles de TFS. Il sera possible de s’appuyer sur un portail MOSS existant. Néanmoins pour certains clients, le module portail n’est pas une priorité et ils ne souhaitent pas l’utiliser. Pour répondre à ce cas de figure, le module portail n’est plus une étape obligatoire dans l’installation de TFS, la fonctionnalité de portail devient optionnelle.

Project Server
TFS "Rosario" va inclure en standard l’intégration avec Project Server. Cette intégration va permettre une utilisation PMO de TFS et fournir une multitude de Dashboard avancés pour le suivi de projets. L’utilisation de Project Server nécessitera l’utilisation d’un client Project 2007 ou plus au minimum. Ce processus d’intégration doit également être pris en compte par avance, le modèle de licences ne dépendant pas des équipes de TFS.

Serveurs de Build
Comme pour les versions précédente de TFS, le module de build est dépendant de la version du serveur TFS. Par conséquent , il sera nécessaire de migrer tous les serveurs de builds existants en même temps que la plate forme TFS. La capacité à builder des applications basées sur différentes versions du Framework .net va incontestablement faciliter cette migration. Cela devrait tout simplement fonctionner.

Versions Client Visual Studio
Une des plus grandes préoccupations, reste la compatibilité avec les versions précédentes de Visual Studio. Ce point a souvent été un frein à la migration de la plate forme TFS, par exemple la migration de TFS 2005 vers 2008 obligeait la conversion des solutions (fichiers sln), qui ne pouvaient alors plus être ouverts à l’aide de Visual Studio 2005. Pour Rosario, en tant que release majeure de TFS, le maintien de compatibilité est impossible. La démarche sera de fournir des patches ou SP pour toutes les versions précédentes (Team Explorer 2005 et 2008 et les providers MSSCCI), permettant de se connecter et inter opérer avec un serveur TFS Rosario. En revanche, le client Rosario permettra de se connecter à des serveurs TFS 2005 et 2008.

Office
Dans TFS "Rosario", Office 2007 et supérieur sera supporté, ce qui sous entend que le support d’office 2003 sera supprimé. Ceci a été motivé par l’implémentation de la fonction Undo dans Project ainsi que des nouvelles fonctionnalités d’Excel 2007.

Les informations contenues dans cette articles font référence à un article de Brian Harry, Product Unit Manager pour Team Foundation Server chez Microsoft.

jeudi 4 septembre 2008

ROSARIO : Quoi de neuf?

La dernière version de la plate forme ALM de Microsoft arrive. On s'attendait à une plate forme présentant des évolutions compte tenu du haut niveau de services déjà proposés dans les versions précédentes (2005 et 2008), le résultat est en fait plus proche d'une révolution tant la plate forme propose de nouvelles fonctionnalités et de nouveaux outils.
Dans cette série d'articles, nous allons donc nous interesser module par module aux nouvelles fonctionnalités et innovations apportées par cette release majeure de TFS dont le nom de code est ROSARIO.
Le présent article constitue une vue synthétique de l'ensemble des innovations apportées à la plate forme ALM de Microsoft, pour avoir une description détaillée de ces innovations avec des exemples de mise en oeuvre, les articles suivants sont accessibles en utilisant les liens suivants :
Pour Rappel, TFS est la plate forme ALM (Application Lifecycle Management) proposée par Microsoft, c'est une plate forme serveur orientée services accompagnée d'une partie cliente Visual Studio Team System.
Ces différents services sont au nombre de 6 et se décomposent de la manière suivante :
  • Project Management
  • Work Item Tracking
  • Reporting
  • Build
  • Source Control
  • Document Repository
Ces différents services sont adressables de manière extensible, au travers de multiples clients comme le montre le schéma ci dessous, Microsoft a dans Rosario non seulement enrichi les fonctionnalités des clients existants et a de plus créer de nouveaux clients.


Vue synthétique de la plate forme TFS
(cliquer pour agrandir)

Ces différents services sont mis à disposition de différentes catégories de personnes adressées par des rôles . Les différents rôles adressés par la plate forme sont :
  • Project Manager
  • Architecte (logiciel et infrastructure)
  • Développeur
  • Développeur Bases de données et DBA
  • Testeur
Le schéma ci dessous illustre l'accès aux services par les différents rôles. Rosario fournit une gestion de la sécurité très fine permettant de définr les droits et permissions de chaque intervenant sur un projet et ce service par service.


Roles et Services dans TFS

Nous allons aborder la présentation de l'ensemble des nouveautés module par module. Les points présentés ne sont pas exhaustifs sachant que la plate forme est toujours en cours de développement. L'édition 2008 des Tech Ed à Barcelone sera sans doute le rendez vous permettant de faire un point précis de la version finale de Rosario.
Les nouveautés du module Project Management
L'activité de Program Management est une des activités les mieux loties en terme d'améliorations. On notera tout d'abord le très attendu support d'une structure WBS pour les phases de préparation et de pilotage des projets dans TFS, cette structure hiérarchique pourra être gérée en affichage et modification à partir de tous les clients proposés : Visual Studio, Excel, Project et même Team System Web Access ainsi qu'un tout nouveau client : Team Tracker.
Les Program Managers et Project Lead bénéficieront d'une multitude de nouveaux rapports et dashboards disponibles via Reporting services, Excel mais aussi le client Web Team System Web Access ainsi que le client Project PortFolio fourni avec Project. Ci dessous quelques captures illustrant ces nouveaux outils de reporting, les connaisseurs s'apercevront au traverss de ces snapshots que nous entrons dans une nouvelle ère du reporting projet, avec une véritable approche dashboard, de la Business Intelligence et des KPIs :







L'intégration avec Project Server est maintenant incluse en standard permettant de ce fait une approche PMO pour les projets gérés à l'aide de TFS.
Pour plus de détails sur ces nouveautés, se référer à l'article : Module Project Management

Les nouveautés du Module Team Architect

Avec ROSARIO Team Architect, Microsoft se fixe les objectifs suivants :

  • Gérer la complexité à l'aide de modèles visuels
  • Comprendre, Manipuler et faire évoluer des applications existantes.
  • Améliorer la maintenabilité, la modularité et la réutilisation de composants des applications.
Pour atteindre ces objectifs, les fonctionnalités suivantes ont été implémentées :

L'Architecture Explorer : L'architecte possède maintenant un couteau suisse sous la forme d'un outil avec une interface en WPF, lui permettant d'explorer une solution existante afin de recueillir des informations sur l'ensemble des artefacts d'un projet ainsi que leur dépendances et la possibilité d'exécuter des actions sur les éléments selectionnés.
Le Support de l'UML : Après la modélisation physique avec les DSL , Microsoft a décidé d'intégrer la modélisation logique avec le support du langage UML via des designers pour réaliser les types de graphiques suivants :
  • Diagrammes de Use Case
  • Diagrammes d'activité
  • Diagrammes de classes
  • Diagrammes de composants
  • Diagrammes de séquence
A noter que les diagrammes de séquence permettent même d'effectuer des actions de rétro-conception sur du code existant, ou encore de la génération de code à partir d'un modèle.
L'intégration des software factories via DSL : Issu d'un rapprochement des équipes de Rosario et de Patterns & Practices, les architectes pourront aller jusqu'au Design en mode graphique de services WCF par exemple avec génération du code associés : implémentation, contrat et host. Le concept WSSF exploitant GAX est maintenant intégré au Diagramme Application Designer.
Pour plus de détails sur ces nouveautés, se référer à l'article :Module Architecte

Les nouveautés du Module Team Developer
Les développeurs vont également découvrir 4 nouveautés leur permettant d'améliorer la qualité de leur code ainsi que leur productivité :
  • Le Standalone Debugger : pour effecuer des opérations de débogage sur des stations non équipées de Visual Studio.
  • Le History Debugger : Une nouvelle expérience F5 avec un processus d'enregistrement en tache de fond des évènements et erreurs ayant lieu durant une session de debug. Le développeur peut alors revenir par la suite et consulter les informations recueillies en parcourant le stack des appels.
  • La gestion des tests unitaires impactés : Après chaque modification de code, le développeur est informé des tests unitaires impactés par les modifications de code apportées, et peut donc rejouer ces tests afin de pallier à tout phénomène de regression.
  • La gestion de l'analyse statique de code par groupe de règles paramétrables : Cette nouvelle fonctionnalité permet au développeur de cibler les règles à corriger gràce au paramétrage de groupe de règles. Le développeur peut donc réduire le bruit généré par l'application des 206 règles et cibler plus précisément les corrections à effectuer en fonction d'un contexte donné.

Pour plus de détails sur la mise en oeuvre de ces 4 nouveautés, se référer à l'article : Module Développeur

Les nouveautés du Module Team Tester
Les testeurs sont sans contexte les utilisateurs qui seront les plus surpris, tant les nouveautés apportés à ce module sont importantes. Microsoft a entièrement revu son framework de tests et également développé une nouvelle génération d'outils qui vont améliorer grandement la productivité des équipes de test.

Les Principaux objectifs de Team Test sont donc :
  • Aligner l’assurance qualité dans l’organisation du cycle de vie projet
  • Gérer la qualité au plus tôt dans le cycle de vie projet
  • Augmenter la productivité des équipes de Test
  • Eliminer le syndrome de non reproductibilité des bugs
  • Mise à disposition d’outils modernes, et simples à utiliser
  • Capacité de priorisation des tests ( Connaitre les tests impactés par des modifications de code)
  • Capacité de calcul de Taux de couverture des tests (par rapport au WBS Projet)
Ces objectifs ont été atteints par la production des outils et concepts suivants :
  1. CAMANO : Le client de dernière génération pour gérer et exécuter les cas de tests incluant l'ensemble du cycle de vie de l'activité de tests. CAMANO a pour fonction principale la planification, l'analyse et le reporting sur l’activité de test, mais aussi la création et l'exécution des tests ainsi que la transmission des bugs reproductibles aux développeurs encapsulant la trace (Proteus), les captures d'écrans et optionnellement la séquence video du jeu du test ainsi que le détails des étapes du test et les résultats obtenus par le testeur.
  2. Automation Strips : Ce nouveau concept permet de mémoriser les étapes d'un test par une technique de recording pour automatisater le jeu de tests manuels et donc accèlérer les campagnes de tests.
  3. Coded UI Tests : Les tests codés permettent à partir d'un Automation Strip de coder un test afin de produire une automatisation complète du test manuel afin de pouvoir par exemple jouer ce test lors de builds automatisés. Un test codé va jusqu'à controler les valeurs présentes dans des controles d'interface Graphiques et controler la conformité avec la valeur attendue du test. La fonctionnalité est aujourd'hui fonctionnelle pour les clients Web et est attendue très prochainement pour les clients riches.
  4. TEAM LAB : Sans contexte l'innovation la plus spectaculaire de Rosario : avec Team Lab Microsoft apporte une solution à la probblématique récurrente des temps passés à la préparation, la configuration et le déploiement d’environnements de tests entrainant de la perte en productivité des équipes. Team Lab est basé sur une technologie de virtualisation et offre en outre le concept de snapshot, permettant au testeurs de mettre à disposition des développeurs des snapshots d'environnements pour reproduire des bugs identifiés. Team Lab sera intégré à Camano. Team Lab permet de déployer des environnements de tests à la demande en quelques minutes.
Pour plus de détails sur les nouveautés incluses dans ce module, se référer à l'article : Module Testeur

Autres nouveautés apportées par Rosario
Parmi les autres nouveautés, on citera :
  • L'intégration de Windows Workflow Foundation à Team Build permettant de gérer des scenarios complexes de build automatisés.
  • Coté Source Control il est possible désormais d'ajouter des fichiers au contrôle de code source par un simple cliquer glisser de fichier, la gestion des Workspaces est simplifiée et les fonctions de recherche, les affichages d'historique et la navigarion ont également amélioré.
  • Un module de visualisation des branches permettra de suivre graphiquement les activités de brnaching et de merge. Ci dessous une illustration de cette nouveauté :

  • Une nouvelle version de Team System Web Access entièrement relookée