vendredi 20 juillet 2012

Synchronisation bi directionnelle TFS / Microsoft Project

Par défaut, il n'est pas possible de synchroniser de manière bidirectionnelle les champs Dates (Début et Fin) d'une tache entre Microsoft Project et TFS. La mise en oeuvre de cette fonctionnalité est pourtant très utile et simple à mettre en oeuvre modulo un peu de configuration et pourra permettre par exemple à un développeur de mettre à jour les dates de début des taches sur lesquelles il travaille , avec une prise en compte automatique pour le chef de projet par un simple Refresh du planning connecté à TFS.
Cet configuration se fait à l'aide de l'utilitaire en ligne de commande tfsfieldmapping
Prérequis : Les champs Date dans le formulaire du work item type Task doivent être éditable et s'afficher sous la forme d'un contrôle Date Time Picker afin de permettre au développeur la mise à jour.
Si ce n'est pas le cas, utiliser le Process Template Editor pour modifier le Layout du Work Item Type Task comme suit :
Lancer le Process template Editor, choisir la commande Open WIT from Server, sélectionner la collection et le projet d'équipe cible, sélectionner le work item Task pour modification.
Lorsque l'éditeur est chargé, activer l'onglet Layout puis sélectionner successivement les champs Start Date et End Date et paramétrer la propriété Read Only à False et le Type en Date Time Control comme montré ci dessous. Sauvegarder.

L'affichage se présente alors comme suit : 

Pour la modification du mapping, la première étape consiste à télécharger le fichier de mapping MS Project - TFS du serveur TFS, pour cela entrer la commande suivante en remplaçant le nom de la collection et du projet d'équipe cible :
C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE>tfsfieldmapping download /collection:”http://serverName:8080/tfs/collectionname” /teamproject:”teamprojectname” /mappingfile:”c:\temp\fieldmapping.xml” 
Le fichier est stocké dans c:\temp dans notre exemple
Editer et mettre à jour à l'aide du notepad ou Visual Studio ce fichier comme illustré ci dessous, les champs à modifier sont Microsoft.VSTS.Scheduling.StartDate et Microsoft.VSTS.Scheduling.FinishDate avec les valeurs ci dessous :

finalement, sauvegarder le fichier, puis procéder à l'upload du fichier vers TFS à l'aide de la commande : 
C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE>tfsfieldmapping upload /collection:”http://serverName:8080/tfs/collectionname” /teamproject:”teamprojectname” /mappingfile:”c:\temp\fieldmapping.xml”

Tester et valider la modification du mapping

mercredi 9 mai 2012

Power Tools pour TFS 2011 disponibles en version Beta

Comme nous avons pu le constater, la version de TFS 2011 vient avec un nombre impressionnant de nouveautés, en revanche, quelques éléments critiques étaient passés momentanément à la trappe, avec notamment le Process Template Editor qui est l'un des composants majeurs des Power Tools de TFS.
La sortie des Power Tools vient remédier à cela, et je vous propose de découvrir la release note décrivant le contenu des éléments maintenus dans cette nouvelle version des Power Tools (Source Brian Harry) et de les télécharger en cliquant sur les liens ci dessous. A noter que cette nouvelle version s'intègre à Visual Studio 2011 et permet de travailler sur des work items de TFS 2010 également.

  1. TFS Power Tools
    1. TFPT Command Line
    2. Les  extensions  Team Explorer – Tout sauf les Work items Templates.
    3. Windows Shell Extension –Version améloirée avec le support des workspaces locaux, meilleur support offline.
    4. Process Template Editor – Cette nouvelle version vient avec le support de toutes les nouvelles fonctionnalités du modèle de processus 2011, avec toutefois des obligations d'édition XML pour certaines configurations Agile.
    5. Best Practices Analyzer
    6. Test Attachment Cleaner
    7. TFS Powershell commands
  2. Build Extensions
  3. MSSCCI (32-bit) & MSSCCI (64-Bit)
Ci dessous la liste des éléments qui n'ont pas été inclus dans la nouvelle version : 
  • Work Item Search – Cette fonctionnalité fait partie intégrante maintenant de Web Access et Team Explorer
  • Work Item Templates: Bulk Edit – Out of the box dans la nouvelle version de Web Access
  • Team Members: Team – Le soncept d'équipe fait partie du produit désormais
  • Alerts Explorer – Intégré dans Web Access
  • Team Explorer: Rollback –Inclus via le menu contextuel
  • Check-in Policy: Comments – inclus au serveur
Avec ces PowerTools et la qualité Golive de TFS 2011, plus rien ne s'oppose à un passage en production
Ci dessous un écran montrant l'intégration dans VS 11 avec l'édition du Workflow d'un Work Item Type Product Backlog Item de la méthodologie SCRUM

jeudi 12 avril 2012

De l'intérêt de l' ALM avec Visual Studio / TFS 2010

Une analyse rapide de ce graphique permet de dégager 2 informations clés :

· La tendance reste stable au cours du temps malgré les progrès technologiques

· Une équipe projet qui démarre un projet aujourd’hui a 1 chance sur 3 de voir son projet se dérouler dans les meilleures conditions et 2 chances sur 3 pour que ça ne soit pas le cas, à savoir des tensions sur les délais, le budget, le scope ou la qualité, voire pire un arrêt du projet par le client.

Dans un premier temps, nous allons identifier les problématiques à résoudre, puis nous revisiteront les solutions potentielles avant de définir ce qu’est l’ALM et comment Microsoft a outillé avec succès une solution ALM de premier rang comme facteur clé de succès des projets informatiques.

1.2 Les principales causes d'échecs projets

Les raisons majeures qui sont à l’origine des échecs projets sont de deux ordres : Génériques et opérationnelles.

Les causes génériques sont :

Le Facteur « Time to Market » toujours plus agressif entrainant des rythmes projets difficilement soutenables et des dérapages dans les délais qui statistiquement constituent une des premières cause de conflit sur projet

Des besoins métiers toujours plus complexes coté client pour assurer la compétitivité, induisant de la complexité coté implémentation technique

Une évolution incessante et très rapide des technologies et des méthodes de développement apportant une surcouche de complexité supplémentaire dont tout le monde se serait bien passé.

Ceci étant dit, l’exercice qu’il est intéressant de mener est ce que l’on appelle une « Root Cause Analysis ». L’idée ici étant de déterminer quels sont les facteurs qui vont contribuer le plus fortement au fait que les projets, au plan opérationnel, soient en difficulté.

Tout le monde connait ces principales causes d’échecs, simplement, la difficulté va consister à les prioriser, nous allons donc proposer cette liste, qui bien évidemment n’est pas exhaustive:

Gestion de Projet Lacunaire

Manque de Réactivité Face au Changement

Manque de communication / collaboration, information disséminée

Spécification incomplètes ou surréalistes

Mauvaise gestion des risques

Gestion de projet lacunaire

La gestion de projet reste un élément clé dans la réussite d’un projet. Cette activité va permettre de s’assurer de la satisfaction du client qui est un des objectifs majeur de tout projet par la capacité à communiquer au travers d’un certain nombre de rapports sur l’état d’avancement, la qualité, le budget et le planning en vue de détecter tout écart et enclencher si nécessaire des actions correctives au plus vite afin de réaligner le projet avec les attentes du client et les objectifs stratégiques de l’entreprise.

Manque de réactivité face au changement

Entre le moment ou un projet démarre et sa livraison, beaucoup de changements vont intervenir, c’est inévitable. Cet état de fait est particulièrement impactant dans des contrats de type forfait dans lesquels les intégrateurs s’engagent à délivrer un périmètre en s’appuyant sur le fameux cycle en V voire Waterfall (Cascade) qui rendent encore plus compliqué tout changement du fait de la lourdeur des processus. Tout changement doit au contraire être accueilli favorablement comme avantage compétitif pour le client.

Manque de communication, information disséminée

Pour faire simple, la communication est la clé de voute d’un projet informatique, pour comprendre comment ce point est fondamental en projet, on parle souvent du syndrome de la Tour de Babel. La tour de Babel a été un le premier grand projet de l’’humanité ayant subi un échec, il y a près de 5000 ans.

Ce projet, surréaliste en terme d’exigences au demeurant, a échoué à partir du moment où les bâtisseurs se mirent à parler des langues différentes et donc ne plus communiquer efficacement, la leçon de cette histoire nous a démontré la nécessité qu'ont les parties prenantes de se parler, de se comprendre pour réaliser de grands projets avec succès.

Spécification incomplètes ou surréalistes

La gestion des spécifications constitue indéniablement une des principales sources de problèmes sur les projets lorsque l’on interroge des parties prenantes. Tout le monde le sait et pourtant la situation continue. Démarrer un projet avec un périmètre insuffisamment défini ou surréaliste est une ineptie qui va précipiter l’équipe en charge du projet dans des difficultés de tout instant.

Mauvaise Gestion des risques

Qui gère ses risques sur un projet ? A cette question suit inéluctablement une réponse évasive. Ceci est pourtant une erreur stratégique. Chaque membre de l’équipe projet est conscient des risques potentiels et pourtant, ils ne sont pas gérés et s’imposent comme une fatalité.

L'ALM : La Solution et les Outils

Malgré la multiplication des outils, des méthodologies et des technologies, la situation semble inébranlable, et pourtant des solutions existent, des solutions capables d’adresser l’ensemble des problématiques abordées dans le cadre d’un projet informatique, ce panel de solutions porte un nom : ALM (Application Lifecycle Management) L’ALM serait-elle la clé à tous ces problèmes ? De nombreux retours d’expérience semblent attester ce fait, et nous allons dans le cadre de cet article ouvrir des pistes apportant des solutions à la plupart des problèmes et difficultés rencontrés sur les projets aujourd’hui.

Qu’est ce que l’ALM

La problématique des projets IT est récurrente : gérer toujours plus de complexité, tant métier que technique, rester aligné avec le métier et réactifs au changement pour respecter les priorités sans cesse changeantes avec une demande rémanente : faire toujours plus avec moins de moyens.

Pour faire face à ces challenges, une solution de type ALM est incontournable afin de suivre piloter et communiquer sur le statut d’une solution IT en cours d’élaboration afin de s’assurer à tout instant que la solution développée sera en mesure de répondre au besoin métier cible. Cela reposera sur de l’industrialisation, de l’automatisation, de l’intégration continue, de la traçabilité et surtout du pilotage et du Reporting temps réel sur l’ensemble des artefacts produits par le projet et le produit du projet.

Les bénéfices de l’ALM sont globalement :

· Une amélioration du ROI sur les investissements IT

· Une amélioration du Time To Market

· Une amélioration de la qualité

· Un meilleur alignement avec le métier

· Un taux de réussite de projet en progression

Les trois piliers fondamentaux de l’ALM sont :

Traçabilité et liaisons entre les artefacts : Ceci est traditionnellement un processus manuel extrêmement lourd, dont l’effort varie selon la taille d’un projet et les variétés d’artefacts à relier. La conformité aux exigences fait de la traçabilité une nécessité.

L’automatisation des processus : Les solutions ALM optimisent l’efficacité en fournissant tout une gamme de pistes pour l’automatisation de processus journaliers soit sur des aspects méthodologiques, gestion de projet, et permettant également une communication fluidifiée avec aussi tout une batterie d’outils permettant d’automatiser des processus liés à l’activité de développement ou de tests alliant productivité et qualité.

Le Reporting pour augmenter la visibilité : La plupart des chefs de projet ont une visibilité limitée de la progression des développements, la visibilité qu’ils ont est généralement issue de données déclaratives donc subjectives. Le Reporting à partir d’une plate-forme ALM profite de l’intégration de l’ensemble des artefacts pour fournir des informations temps réel sur l’état du projet à tout instant.

La Solution ALM de Microsoft : Visual Studio 2010 / Team Foundation Server 2010

La plateforme ALM Microsoft TFS 2010 fournit un ensemble d’outil très riche fonctionnellement permettant d’adresser l’ensemble des activités liées au cycle de vie du développement d’une application de la définition des exigences jusqu’aux phases de Test et Déploiement avec un support riche pour la méthodologie et la gestion de projet. Ci-dessous la Roadmap fonctionnelle de l’ALM

La plate-forme ALM TFS 2010 apporte un grand nombre de fonctionnalités à haute valeur pour la réalisation de projets dont :

Un support hiérarchique pour les Work Items : Cette fonctionnalité permet une véritable activité de Gestion de projet avec le support d’un WBS Projet (Work Breakdown Structure qui représente l’ arborescence hiérarchique des livrables d’un projet), ceci permet par exemple de gérer une arborescence de type Projet / Phase / Module / Exigence / Tache en mode CMMI ou bien User Story / Task pour un Carnet de produit en mode Agile ou SCRUM, et de se synchroniser avec un fichier MS Project ou encore avec Project Server. TFS 2010 intègre de plus un mécanisme de Roll up permettant la consolidation hiérarchique de données horaires ou financières.

Une Plate-forme de Test : Avec Test & Lab Center, Microsoft propose une offre complète pour des équipes de test professionnelles, la plate-forme est entièrement intégrée à TFS 2010 et propose un client dédié aux testeurs fonctionnels avec des outils de planification de campagnes de test, un outil d’exécution des tests incluant des possibilités d’automatisation et de gestion de paramètres de tests pour améliorer la productivité et la fiabilité lors de la phase d’exécution. Avec cette plate-forme, Microsoft adresse le syndrome bien connu de la non reproductibilité des bugs en fournissant un mécanisme de collecte d’artefacts contextuels au test qui sont téléchargés automatiquement dans les données lors de la création d’un bug dont : les étapes détaillées du test avec les résultats, le Recording Video de la session de test, les données Intellitrace (débogueur intelligent Microsoft) permettant au développeur de connaitre le code fautif avec les données source de l’exception, la pile d’appel (Mini dump mémoire) et également des données de type Event Log et Informations Système. De plus avec Lab Center, Microsoft fournit une plate-forme de Provisioning d’environnement pour les tests avec des capacités de déploiement des binaires applicatifs et d’exécution de tests de manière automatisés unitaires ou fonctionnels. Cette dernière fonctionnalité améliore considérablement la productivité et la qualité sur les projets car il est bien connu que le Provisioning et la maintenance d’environnements d’exécution pour les tests est couteuse en temps et répétitive, tout ce que l’on veut éviter sur projet.

Le Support de l’UML: Des cas d’utilisation ou tout type de diagramme UML peuvent être créés avec ce module et surtout on notera la possibilité de les relier à n’importe quel autre artefact projet.

Une Plate forme de Build : Une nouvelle version de Team Build basée sur le moteur dernière génération Microsoft Workflow Foundation 4.0 s’impose comme un outil exceptionnel pour l’ensemble des concepts d’intégration continue pour une usine logicielle. Cette nouvelle version permet en plus des options standards d’Analyse de qualité du code, d’exécution de listes de tests unitaires avec le calcul de la couverture de code, de personnaliser simplement un processus de Build avec par exemple le rajout d’activités de déploiement en fin de Build ou encore la génération de release note automatique.

Program and Portfolio Management : Le produit vient en standard avec une intégration avec l’EPM Project Server 2010 ou 2007 offrant des fonctionnalités de consolidation niveau entreprise pour la gestion des ressources, de Programmes et ou Portfolio au-dessus de TFS 2010 qui représente le suivi opérationnel projet par projet.

Ci-dessous une vue de la RoadMap technique mettant en exergue l’évolution de la plate-forme depuis la version précédente.

Un des facteurs clé de TFS est un ensemble très complet de rapports fournis en standard qui correspondent à plus de 80% des besoins de Reporting. Par exemple, le rapport ci-dessous nommé « Requirement Overview » qui donne un vue complète du statut d’un projet avec les exigences du projet à gauche, et en regard, l’avancement, le reste à faire, le nombre de tests écrit par exigences, l’état et le résultat de l’exécution des tests et les bugs ouverts et résolus. On notera la notion de roll up des données du niveau exigence jusqu’au niveau projet.

Un autre exemple de rapport est le Build Success Over Time montrant la stabilité du processus de Build avec une légende pour le niveau de qualité de chaque Build en fonction du résultat de la compilation mais également des tests et de la couverture de code jour après jour.

En terme de gestion de configuration, TFS 2010 permet l’implémentation de scénario simples ou avancés avec la prise en compte de version majeures et mineures pour la gestion de version, mais également de riche scénario de parallélisation et isolation pour maintenance, test, mise en production etc…
Exemple de Structure de Contrôle de Code Source

Exemple de Modèle de Branche

La plate-forme ALM TFS est également extensible, La Feuille de saisie des Temps développée par Avanade est un excellent exemple d’extensibilité, apportant la possibilité d’un suivi très précis des heures sous la forme d’un CRA conventionnel, cet outil développé en Silverlight permet une saisie des temps multi projets avec également des fonctionnalités intégrées de Reporting et une synchronisation temps réel avec TFS.

En conclusion, la mise en œuvre d’une plate-forme ALM adresse réellement l’ensemble des besoins du cycle de vie projet avec un support fort d’activités en mode Collaboratif, un socle pour la méthodologie de type Agile, Scrum ou CMMI, des fonctions de Contrôle de version, la Gestion des Builds, des rapports et tableaux de bord, un centre de qualité logicielle et un ensemble d’outils connectés adapté aux différents rôle présent sur le projet leur permettant de mieux collaborer et communiquer en partageant la même information avec leurs outils du quotidien. Des fonctions de gouvernance niveau entreprise peuvent également appuyer une gestion de portefeuilles projets de l’identification d’une opportunité jusqu’au déploiement en production. Enfin, au plan technique, la plate-forme ALM de Microsoft est interopérable avec différents type de langages et technologies permettant d’élargir son périmètre d’adoption et surtout répondre aux exigences d’entreprise exploitant un large panel de technologies Microsoft et non Microsoft.

mercredi 4 avril 2012

TFS Event Worfklow Events : Un Must Have


TFS Event Workflow permet en toute simplicité d'être abonné à des évènements TFS tel que l'enregistrement d'un Work Item ou encore un évènement de checkin pour déclencher le traitement de notre choix. Cette technique permet d'apporter des possibilités de programmation évènementielle dans notre monde TFS pour tout un tas de bonnes raisons dont par exemple :
  • Le calcul de champs de Work Items à la volée dans le cadre d'un SLA ou de calcul de Earned Value Management
  • La modification de l'état de wok items dynamiquemnet, par exemple, lorsque tous les work items de type tache sont en resolved, il est possible automatiquement de passer en resolved le requirement ou la User Story Parent
  • Et bien d'autres scénarios bien sur
Pour activer cette fonctionnalité. Tout simplement télécharger sur CodePlex l'asset publié par Artiso TFSEventWorkflow à l'adresse Suivante : TFS Event Workflow
Cet asset exploite le système Bisubscribe d'abonnement aux évènements de Team Foundation Server pour la partie déclenchement et pour la partie logique d'exécution, Workflow Foundation 4.0 avec un set d'activités Custom qui ont été développées dans le cadre de ce projet, mais qui bien entendu peut être étendu à volonté.
On reste pleinement dans la logique des workflows de Build sauf que le host du workflow n'est pas le Build Service mais le serveur TFS lui même et que le déclenchement de l'exécution des Workflows est arbitré par les évènements déclenchés sur la plate forme TFS.
Dans le cadre de cet article, nous allons démontré un cas d'utilisation très simple et utile, la création automatique d'une Tache enfant lors de la création d'une User Story, cet exemple est intéressant car il permet d'apporter de la productivité dans le méthode Agile pour ce qui concerne la génération des taches pour les développeurs.
Nous allons démontrer cette fonctionnalité en réalisant étape par étape le projet complet jusqu'à son déploiement
Etape 1 : Installer les prérequis : Télécharger TFS Event Workflow sur CodePlex et installer les librairies sur le poste de développement. Idéalement, le développement doit être réalisé sur une serveur TFS de développement, sinon, installer le SDK TFS 2010 ou installer les Dlls nécéssaires au développement qui sont :
  • Microsoft.TeamFoundation.Framework.Server
  • Microsoft.TeamFoundation.WorkItemTracking.Client
  • Microsoft.TeamFoundation.WorkItemTracking.Server.Dataaccesslayer
Etape 2 : Création du projet, lancer Visual Studio 2010 et Créer un projet et choisir dans la rubrique Workflow, le template "Activity Designer Library" et nommer le projet TFSEventWorkflowSample par exemple puis valider

Etape 3 : Ajouter les références nécessaires au projet en utilisant le bouton Browse si les dlls n'ont pas été inscrites dans le GAC :
  • artiso.TFSEventWorkflows.TFSActivitiesLib
  • Microsoft.TeamFoundation.Framework.Server
  • Microsoft.TeamFoundation.WorkItemTracking.Client
  • Microsoft.TeamFoundation.WorkItemTracking.Server.Dataaccesslayer
puis valider
Ci dessous les références
Etape 3 : Ajouter au projet une activité nommée AddTaskToNewUserStory
Etape 4 : Mettre à jour la boite à outils pour afficher les activités customs livrées avec TFS Event Workflow. Pour cela afficher la boite à outil (Ctrl Alt X) puis à l'aide du menu contextuel lancer la commande New Tab et entrer le nom TFS Event Workflow

Puis le nouvel onglet TFSEventWorkflow étant actif, à l'aide du menu contextuel, lancer la commande Choose Items pour peupler la boite à outil

Cliquer sur Browse, localiser la dll artiso.TFSEventWorkflows.TFSActivitiesLib.dll, la liste des activités customs apparait, valider simplement
La boite à outil est mise à jour avec les activités fournies avec TFS Event Workflow
Etape 5 : Construction du workflow, A partir de la boite à outils Glisser une Sequence sur la surface de Design
L'étape suivant va consister à mettre en place les arguments et variables nécessaires au workflow, pour cela activer le bloc Sequence puis l'onglet variable et entrer les trois variables suivantes :
  • SavedWorkitem de type WorkItem
  • NewWorkitem de type WorkItem
  • TfsUrl de type String
activer ensuite l'onglet Arguments et entrer les deux arguments suivants :
  • TFSEvent Direction In et Type WorkItemChangedEvent
  • TeamFoundationRequestContext Direction In et de Type : TeamFoundationRequestContext

A noter, pour récupérer les bons types facilement, utiliser le bouton Browse for Types dans la liste et taper une partie du nom pour activer l'auto filtrage comme montré ci dessous
et également
Pour la suite nous allons simplement implémenter la logique du worklow et paramétrer les différentes activités.
Pour commencer glisser l'activité GetWorkItemChangedEventData à l'intérieur de la séquence


Appuyer sur F4 pour afficher la fenêtre de propriétés et complèter comme suit
  • TeamFoundationRequestContext ==>TeamFoundationRequestContext
  • TFSCollectionUrl ==>TFSUrl
  • WorkItem ==> SavedWorkitem
  • WorkItemChangedEvent ==> TFSEvent

Glisser un bloc If au dessous de l'activité précédente,

appuyer sur F4 pour afficher la fenêtre de propriété et entrer la condition suivante :
SavedWorkitem.Type.Name.Equals("User Story") And SavedWorkitem.Links.Count.Equals(1) And SavedWorkitem.Revision.Equals(1)

Puis glisser un bloc Sequence dans le bloc Then du If
Glisser une activité CreateNewWorkItem dans le nouveau bloc Séquence
Afficher la fenêtre de propriété et compléter comme suit :
  • NewWorkItem ==> NewWorkItem
  • TeamProjectName ==> SavedWorkitem.Project.Name
  • TfsCollectionUrl ==> TFSUrl
  • WorkItemType ==> "Task"

Glisser ensuite une activité ChangeWorkItemField au dessous de la précédente
Afficher les propriétés et compléter comme suit :
  • FieldReferenceName ==> "System.Title"
  • NewValue ==> "Task for User Story: " + SavedWorkitem.Title
  • WorkItem ==> NewWorkItem
Vous pouvez modifier New Value qui sera le titre de la tache créée dynamiquement en fonction de vos besoins
Glisser ensuite au dessous une activité SaveWorkItem qui permettra de sauvegarder la tache précédemment créée
Afficher la fenêtre de propriété et configurer comme suit :
WorkItem ==> NewWorkItem
Glisser enfin l'activité CreateLink qui va permettre de créer un lien child entre la User Story sauvegardée et la tache dynamiquement créée par notre workflow
Afficher la fenêtre de propriétés et configurer comme suit :
  • ChildWorkItem ==> NewWorkItem
  • LinkType ==> "System.LinkTypes.Hierarchy"
  • ParentWorkItem ==> SavedWorkitem
Le Workflow est terminé, il ne reste plus qu'à déployer le tout sur le serveur TFS puis Tester
Pour cela, il reste 3 étapes
1 - Installer TFS Event Workflow sur le serveur TFS en utilisant l'installer au format msi
2 - Copier le fichier de workflow créé ci dessous dans le dossier Plugins de TFS, le dossier ou a été installé d'ailleurs Tfs Event Workflow : c:\Program Files\Microsoft Team Foundation Server 2010\Application Tier\Web Services\bin\Plugins

3 - Procéder à la configuration du Plugin pour exécuter notre workflow :
Pour cela éditer le fichier de configuration "artiso.TFSEventWorkflows.TFSEventWorkflowsServerPlugin.dll"
Se placer dans la balise tfsEvents et complèter comme ci dessous. A noter que comme le fichier de workflow a été déposé dans le dossier de plug in, le nom du workflow suffit sans donner le chemin complet

<tfsEventConfig>

<tfsEvents>

<add eventName="Microsoft.TeamFoundation.WorkItemTracking.Server.WorkItemChangedEvent"

eventAssemblyName="Microsoft.TeamFoundation.WorkItemTracking.Server.Dataaccesslayer"

workflowFileName="AddTaskToNewUserStory.xaml" />

tfsEvents>

tfsEventConfig>

Pour tester, simplement créer une User Story sur le serveur TFS et constater la création de la tache fille automatiquement
Cet outil publié par l'équipe de Thomas Schlisser - Artiso, simplifie considérablement le branchement logique métier sur les évènements TFS, attention toutefois à rester cohérent dans les implémentations pour ne pas surcharger la plate forme par une exécution excessive de Workflows.
Bon développement évènementiel sur TFS!

jeudi 22 mars 2012

Toutes les ressources pour bien démarrer avec TFS et Visual Studio 2011

La nouvelle plate forme ALM 2001 est sortie disponible en Version Beta mais titrée "Go Live" par Microsoft, indiquant que l'on peut partir en production sur cette version et qu'il sera possible de basculer en RTM par la suite.

De nombreuses ressources sont d'ores et déjà disponibles permettant d'appréhender l'ensemble des problématiques liées à cette nouvelle plate forme tel que l'évaluation de nouveaux scénarios d'utilisation ou fonctionnalités, les scénarios de migration ou encore l'installation.
Je vous propose dans ce post un accès à des ressources incontournables pour démarrer dans les meilleures conditions avec TFS 2011. La plus incontournable étant la machine virtuelle de Brian Keller et ses Hands on Lab, première de la liste.


mercredi 14 mars 2012

Visual Studio 2011 Quoi de neuf – Part 2

Dans cet article nous allons nous focaliser sur les avancées clés apportées par Visual Studio 2011 pour ce qui concerne la partie ALM. nous verrons que la qualité reste au centre des préoccupations avec de notables améliorations de l'outil existant mais également de nouveaux outils. Lab Management revient en force avec simplification et ouverture au monde non Hyper V, enfin la communication et la collaboration est outillée de bout en bout permettant toujours toujours plus d'agilité y compris sur des projets de types CMMI ou cycle en V.
Gestion des Exigences et Outil de Storyboarding

Il restait un gap à combler, la gestion des exigences au-delà de la simple description textuel. C’est chose faite avec l’outil de Storyboarding intégré à Powerpoint. Cela permet aux parties prenantes fonctionnelles d’être au cœur du cycle de développement avec la capacité à fournir des Storyboard d’une application de manière intuitive et simple ou encore aux équipes techniques pour élaborer des Mock up d’écrans. Les points forts de l’outil sont : Tout d’abord l’utilisation d’un produit connu de tous Powerpoint donc pas de courbe d’apprentissage pour cet outil ainsi que la connectivité à TFS. L’outil de Storyboarding apporte sous la forme d’un Add-in trois fonctionnalités

  • Une bibliothèque de formes permettant de représenter toute sorte de symboles tels que des contrôles de formulaires, des pages web etc. permettant d’élaborer très rapidement le look & feel d’un page
  • La possibilité de relier ce fichier à des Requirements ou User Stories dans TFS
  • La possibilité de créer simplement des animations pour simuler des cinématiques écran afin de de démontrer le comportement de l’IHM
  • Un outil d’image clipping permettant d’intégrer des captures d’écrans d’applications existantes puis de les modifier, outils très intéressant dans le cadre de TMA ou l’on souhaite faire évoluer une application
  • Tous les outils de mise en forme et graphisme de PowerPoint sont également disponible pour enrichir les scénarios

La nouvelle version Web Access : au cœur de l’agilité

Avec la nouvelle version de TFS Web Access, Microsoft révolutionne son approche en fournissant une interface hautement performante du fait de l’utilisation de la programmation asynchrone permettant d’avoir une interface réactive et jamais bloqué par un processus en cours d’exécution apportant de ce fait beaucoup de fluidité et d’interactivité. On est réellement dans des actions temps réels. Cette interface est d’ailleurs le point d’entrée pour l’ensemble des actions de configurations d’un projet d’équipe désormais. De plus le style Metro a été intégré dans web Access permettant d’avoir des liens favoris incluant des informations High Level comme montré sur la page d’accueil ci-dessous :

La gestion du Product Backlog est également très performante, on entre les User Stories simplement en tapant son titre puis en validant, il est très simple de re-prioriser le Backlog par de simples opérations de cliquer glisser, enfin l'affectation ou réaffectation d'un élément à un sprint ou itération se fait également en cliquer glisser, un outil très très opérationnel
On peut ensuite consulter le contenu de chaque sprint avec en marge les indicateurs d'avancement pour l'équipe mais également par membre de l'équipe. A noter que le Sprint courant est détecté automatiquement puisque chaque Sprint possède une date de début et date de fin
La cerise sur le gâteau est ce nouveau Taskboard permettant enfin de gérer les fameux Post its au format électronique y compris en mode tactile sur grand écran pour les SCRUM Meeting. Le passage entre les différents états se fait par cliquer glisser, il est possible de modifier le reste à faire directement à partir du post it comme montré ci dessous, et le placement en Done passe le reste à faire à 0.
Coté client, avec Visual Studio 2011 le module Team Exporer a été également entièrement revu, le mode de fonctionnement est désormais en mode Web avec une icone Home Page, des hyper liens pour naviguer et la touche Back pour revenir en arrière. On a également en haut à droite une boite de recherche permettant de retrouver un work item en tapant une partie de son titre par exemple
Toujours coté client, on notera une intégration très réussie dans Eclipse permettant aux développeurs Java ou Php d'avoir la même expérience utilisateur quasiment qu'un développeur .Net
La Qualité au centre avec un outil de Feedback et un outil de Test Exploratoire
La nouvelle version de Visual Studio, inclut un outil de test exploratoire. Cet outil présente l'avantage de pouvoir tester de manière interactive et rapide une application sans attendre la formalisation d'un plan de test ainsi que l'écriture des cas de tests et étapes associées. Cet outil permet non seulement de réaliser des tests et remonter des bug comme avec Test Runner mais également durant la phase de test exploratoire, l'outil enregistre les étapes réalisées par l'utilisateur et permet de modifier ces étapes : renommage, suppression etc ce qui peut permettre de les transformer en cas de tests à rejouer.
Un autre outil venant avec la suite Visual Studio est intégré à la suite, cette outil fonctionne sur une base de Workflow se déroulant de la manière suivante : l'équipe technique qui délivre fréquemment des versions opérationnelles de l'application peut envoyer des demandes de feedback qui déclenchent un envoi de mail à l’utilisateur cible incluant un lien pour démarrer l'outil de feedback. Cette outil permet de capturer les étapes réalisées avec potentiellement du recording vidéo de l'écran, des commentaires audio à l'initiative de l'utilisateur et également l'ajout de captures d'écrans et de commentaires. Un tel outil est stratégique car il permet de valider le fait que le module applicatif testé est en phase avec les attentes de l'utilisateur.
La collaboration équipe est également au centre de Team Explorer, avec la possibilité de suspendre un travail en cours en cas d'un problème urgent à régler, par exemple la résolution d'un bug critique. Cette fonctionnalité permet au développeur d'un clic de souris de sauvegarder son espace de travail jusqu'à la position du curseur de la souris en passant par l'ensemble des fichiers ouverts, les points d'arrêts en cours pour basculer sur le point à régler. il pourra par la suite réactiver l'état précédent pour reprendre son travail au point ou il en était.
Le processus de Code Review s'inscrit également dans un Workfow désormais avec des mécanismes de notifications mettant ainsi une grande valeur ajoutée à ce processus qualité.
Lab Management enfin exploitable
Lab Management n'a pas connu jusqu'à ce jour le succès escompté. La raison en est, d'une part la complexité de mise en oeuvre, mais aussi la restriction à Hyper V. Sachant que beaucoup d'entreprises exploitent des fermes de virtualisation VMWare, l'installation du produit était déjà techniquement condamnée.
La nouvelle version apporte les simplifications suivantes :
Un seul agent est à déployer, il contient l'ensemble des agents nécessaires, Lab, Test et Build, de plus cet agent est maintenant déployé automatiquement sur le Lab cible avec une phase de Vérification pour s'assurer du succès avant déploiement.
Dans la nouvelle version, il est possible de créer des Workflows Build Deploy Test sans dépendances avec HYper V et il est possible d'adresser du VMWare, des machines physiques ou virtuelles sur le réseau pour créer des environnements de test en quelques minutes. Cette nouvelle fonctionnalité fera l'objet d'un prochain article pour démontrer la pertinence de cet outil fantastique au service de la qualité et de la productivité