mardi 30 décembre 2008

Team Foudation Server et PowerShell

PowerShell est un outil manifique et les API de Team Foundation Server aussi. Alors pourquoi pas ce servir de l'un pour utiliser l'autre.

PsTFS est une initiative que j'ai pris afin de manipuler Team Foundation Server via PowerShell.

Avec ces CMDLET il est facillement possible:

  • De visualiser les membres d'un projet ou de chaque projet
  • D'ajouter une liste de membres dans des groupes de projet
  • De lister les projets
  • De visualiser les wokitems
  • D'exécuter des requetes de Workitem
  • D'ajouter un ou plusieurs fichiers à un projet
  • D'ajouter un ou plusieurs répertoires avec le contenu (récursivité)
  • D'effectuer des merges

Et bien d'autre encore.

Liste des CmdLet

CmdLetDescription
Add-FilesPermet d'ajouter des fichiers
Add-MemberProjectPermet d'ajouter des membres à des groupes d'un projet
Add-ProjectPermet d'ajouter un nouveau projet au server Team Foundation Server
Get-AllProjectPermet de récupérer les information de tous les projets
Get-ChangesetPermet de récupérer les changeset pour un projet ou l'ensemble des projets
Get-MemberProjectPermet de récupérer la liste des membres d'un projet
Get-PendingStatusPermet de récupérer les fichiers en attente d'archivage
Get-TFSPermet de ce connecter à un serveur TFS
Get-WIPermet de récupérer un workitem depuis son ID ou son URI dans une version spécifique
Get-WIQueryPermet de récupérer les requêtes stockées dans un projet
Get-WIsPermet d'exécuter une requête
Remove-MemberProjectPermet de supprimer des membres d'un projet
Set-MergePermet d'effectuer des merges entre branche


L'outil sera disponible dans les prochains jours, pour ne pas le louper, abonnez vous au RSS de mon blog.

mardi 9 décembre 2008

Migration de WorkItem d'un projet à un autre

Dans le cadre d'une migration, j'ai du migrer les workitem d'un projet sur un nouveau projet qui se trouve être sur un autre serveur TFS.
N'ayant pas trouvé d'outils me permettant cette manipulation j'ai donc développé mon propre outil.

Mon outil, nommé "MigrationWI", permet de migrer des workitems:
  • D'un projet vers un autre projet sur le même serveur
  • D'un projet vers un autre projet sur un autre serveur

L'outil permet de migrer tout le contenu du WI mise à part :

  • Les dates
  • Les itérations
  • Les zones
  • Le statut (Le workitem migrer est en état "Actif")
  • La raison (Le workitem migrer est en raison "Nouveau")

Pour le moment il gère également la migration

  • Des liens de type Hypertexte
  • Des documents attachés
Il est possible de migrer:
  • Par type de workitem (Bug, Tache ...)
  • De choisir seulement de migrer certain WI
Voici des captures écrans

Connexion aux deux serveurs:


Récupération des projets sur le serveur d'origine:


Récupération des types de workitem, et sélection de ceux à migrer:


Choix des workitems à migrer:


Connexion au serveur destinataire et choix du projet destinataire:



Information de fin de transfert



Vu sur le projet destinataire:

Vu sur le WI nouvellement transferé (avec les liens hypertext):



Fenêtre de log sur les opérations effectuées:


Si vous souhaitez le programme il vous suffit de me contacter n.choulant@evaluant.com et je vous l'enverrais.

Bonne migration.

vendredi 5 décembre 2008

TFS 2008 sur Windows Server 2008 et SQL Server 2008

Rentrant tout juste de ma mission d'installation de Team Foundation Server 2008 sur un environnement Windows Server 2008 et SQL Server 2008, je tenais à donner mon feedback sur ce type d'installation.

En un mot je dirais "C'est que du bonheur", bon d'accord il y a plus d'un mot mais c'est vraix.

Il n'y a aucun souci, Team Foundation Server 2008 avec son SP1, s'install parfaitement et avec SQL Server 2008 il gagne en performence.

Pour preuve voici les captures ecran :










Installation de SQL Server 2008











Instalation réussit de TFS 2008.










Ouverture de Team Explorer 2008 SP1 sur Windows Server 2008.









SI vous souhaitez être accompagné dans cette installation contactez moi : n.choulant@evaluant.com

Je tiens à préciser qu'il n'y a aucune erreur caché ou warning...

mercredi 26 novembre 2008

Fusionner une installation de TFS 2008 avec son SP1

Comment pouvons nous installer un TFS 2008 avec le SP1 surtout dans une configuration Windows Server 2008 & SQL Server 2008.

J'ai fait une petite vidéo simple permettant de le faire rapidement.

Fusion de TFS2008 avec le SP1


video

vendredi 14 novembre 2008

Team-Building ou comment construire son équipe

Gérer son équipe peut devenir très rapidement source de conflits et d'incompréhension. Connaitre le problème de ce mal être n'est pas évident et bien entendu le projet en ressent directement les effets. Dans un cas comme celui-ci il faut absolument stopper le projet afin de rétablir la communication et arrivé à une solution. Je parlerais plus longuement des pratiques possibles dans ce cas de figure dans un prochain post. Avant d'arriver à ce stade critique il faut mettre en pratique le Team-Building qui est tout simplement comme sa traduction l'indique, la "construction de l'équipe".



C'est simple me diriez vous, ou au contraire que ce n'est pas évident car je n'ai que deux ou trois développeurs. Effectivement c'est simple et compliqué à la foi. Simple si nous connaissons notre équipe et quelle se connaisse elle même. Compliqué également car les hommes ne sont pas tous fais pour travailler ensemble et j'ai pu m'en apercevoir il y a encore peut de temps.
C'est là qu'intervient "Team-Building", la définition que nous pouvons trouver sur WikiPedia est la suivante :

"Un team building est un processus permettant de développer des valeurs collectives au sein d’une entreprise, comme la cohésion, l’interdépendance, ou l’implication. Grâce à des activités à caractère évènementiel, souvent de nature collective et interactive, les participants cultivent leurs facultés à travailler en équipe."

Pour construire son équipe il faut :

Observer : Chaque individu réagit différemment aux divers étapes du projet. Stress, angoisse, panique, soulagement ... Observer son équipe c'est pouvoir identifier le caractère de chaque membres.

Construire/Assembler : Chaque compétences, trait de caractère (Compétence/Incompétence, Stress compétitif/Stress pathologique, Communicatif/Renfermé ...) sont autant d'éléments à prendre en compte. Il faut faire avec, chaque personne reste une personne unique. Tisser ces compétences pour les rendre complémentaires. Par exemple, une personne incompétente (Débutant, changement de technologie...) doit pouvoir devenir compétent mais surtout pas en l'isolant mais en l'intégrant dans l'équipe.

Produire/Performance : La performance peut être sujet à discussion mais dans ce cas, j'emplois ce mot dans le sens de l'aboutissement d'une action. Sur le site "EducInfo" la définition donnée ce rapproche du sens que je souhaite utiliser pour ce mot:

"Ce terme désigne l’atteinte des objectifs de l’administration dans la réalisation d’un programme. La performance est définie selon trois critères :
l’impact ou le résultat final de l’action publique (efficacité) ;
l’amélioration du rapport entre les moyens consommés et la réalisation (efficience) ;
• la qualité du service apporté à l’étranger
."

Votre équipe doit pouvoir produit un projet en y mettant une certaine performance. Chaque membre de l'équipe doit pouvoir contribuer à une partie de la réussite du projet. Être performant c'est COMMENCER une tâche, FAIRE cette tâche et surtout FINIR cette tache.

Pour illustrer le Team-Building voici une fable:

Le Lion dans sa tête avoit une entreprise.
Il tint conseil de guerre, envoya ses prévots,
Fit avertir les animaux ;
Tous furent du dessein,
chacun selon sa guise :
L’éléphant devoit sur son dos
Porter l’attirail nécessaire,
Et combattre à son ordinaire ;
L’ours, s’apprêter pour les assauts ;
Le renard, ménager de secrètes pratiques ;
Et le singe, amuser l’ennemi par ses tours.
Renvoyez, dit quelqu’un, les ânes qui sont lourds,
Et les lièvres, sujets à des terreurs paniques.
Point du tout, dit le roi, je les veux employer :
Notre troupe sans eux ne seroit pas complète.
L’âne effraîra les gens, nous servant de trompette ;
Et le lièvre pourra nous servir de courrier.
Le monarque prudent et sage
De ses moindres sujets sait tirer quelque usage,
Et connoît les divers talents.
Il n’est rien d’inutile aux personnes de sens.
Jean de La Fontaine, Fable XIX, Livre V.

WikiSource

vendredi 7 novembre 2008

La méthode "Café".

Qu'est ce que la méthode "Café" ?
Aujourd'hui nous voyons apparaitre dans le décor de multitude méthodologie dite AGILE ou CLASSIQUE. Il faut bien comprendre que la meilleure méthode n'est pas décrite dans un livre ou sur un site web quellque soit sa réputation.

Dans la plupart des méthodologies nous parlent d'équipe, de collaboration.
Que signifient ces termes ? Collaboration ? Equipe ?
Pas si simple de mettre en place une définition exacte pouvant s'appliquer au cœur de métier qui est le votre:


Les dictionnaires nous disent :
Equipe : Une équipe est un groupe d'individus partenaires dans un but commun.
Collaboration : Travail où les artistes participants se partagent de façon égale les tâches liées à la recherche artistique et à la création


La collaboration est à mon sens une discution avant tout. Nous pouvons mettre les meilleurs outils en place, définir des réunions à des heures précises ou non, s'assurer de la présence des personnes, centraliser les documents...
Mais pour ma part la collaboration est avant tout basé sur la communication (je ne parle pas de Skype, MSN ...) mais de ce voir, de parler.
L'équipe maintenant ce n'est pas un ordinateur (non je vous promets qu'il ne fait pas parti de votre équipe, bien que vous ayez des sentiments pour lui ça ne reste qu'une machine). L'équipe c'est votre voisin, votre chef de projet ou vos développeurs. C'est aussi le Directeur technique mais également le service commercial, l'équipe c'est toutes les personnes permettant de vous sentir HUMAIN.
En reprenant ces deux éléments fondamentaux d'un projet, nous pouvons définir que l'élément permettant de faire le lien est la communication. Alors pourquoi ne pas prendre le temps de boire un café, d'échanger, de dialoguer. Lors de pause café c'est le meilleur moment de connaitre l'état moral ou/et de santé de votre équipe. D'accord vous êtes le chef de projet, mais vous n'êtes qu'une partie de l'équipe. Ce sont vos développeurs qui permettront au projet d'arrivé à bon port.
La méthode "Café" à un seul fondement (concept) prenez un bon café avec votre équipe afin d'améliorer la communication pour connaitre l'état de santé de votre projet.

Pour la petite histoire, ce post est fait depuis un petit café rue du fourbourg des poissonière ;)

dimanche 2 novembre 2008

[VSTS]Déployer des fichiers, dll ... avec les Tests

Bonjour à toutes et à tous

il arrive qu'il soit nécéssaire de déployer des fichiers lors des tests . Un test unitaire c'est rarement pour un méthode du style :

public double Multiplication(double x, double y)
{
return y * x;
}

Les méthodes utilisées dans la plupart des développements sont complexes, dans un développement que j'ai vu, il a fallut pour le bon déroulement, déployer des fichiers XML dans le répertoire des tests.

Il faut savoir que l'exécution de ces tests créée un répertoire spécifique avec deux répertoires (IN et OUT)

Pour pouvoir déployer ces fichiers XML il faut aller dans les propriétés du test



Puis la propriété "Déployment Items":


C'est dans cette fenêtre qu'il va être possible d'indiquer tous les fichiers qui doivent être déployer. Lors de la génération du test les fichiers seront déployés comme l'indique l'image suivante:

Le fichier "mapping.eum.xml" ce trouve bien dans le répertoire de mon test.

Il est également possible de l'ajouter dans les attributs du test unitaire:

-------------------------------------------------------------------------

[DeploymentItem("mapping.eum.xml"), TestMethod()]

public void SimpleTest()

{

using (IRepository rep = new ServiceBase().GetRepository())

{

Parameter p = new Parameter();

p.Package = "F1";

p.Name = "test1";

p.ValueType = "Int32";

p.Value = "4";

rep.Add<Parameter>(p);

rep.Complete();

}

}

--------------------------------------------------------------------------


Bon test ;)