Executive summary : TFS Basic est un point d’entrée simplifié de Team Foundation Server. Il ne s’agit pas d’une version diminuée, car elle peut facilement évoluer vers un TFS complet, mais simplement d’une version plus facile à installer, et suffisante pour les petits projets, et qui peut s’installer sur des OS non serveurs. Bref, une excellente occasion de tester cette techno qui semble être devenue mature depuis 2008. Je vais aller chercher le CD sur le stand demain… En plus d’être facile à installer, elle ne fait aucun compromis grave sur la gestion de code source ou le build. Il faut savoir, au passage, que si vous êtes partenaire Gold, vous avez certainement des licences d’utilisation.
Session présentée par Florent Santin, technique, et Blaise Vignon, plus orienté marketing.
Introduction
Microsoft s’est lancé dans l’Application Lifecycle Management (VSS n’est pas du tout ça : ce n’était qu’un gestionnaire de code source, et encore diraient certains) il n’y a pas si longtemps que ça, en 2005. Il s’agissait de la mise sur le marché de produits que Microsoft utilisait en interne.
La présentation se fait à partir d’une machine sans rien du tout d’installé. TFS Basic est le même serveur que Team Foundation Server, sans limitation, mais simplement avec une installation fortement simplifié. Auparavant, il fallait une journée ou deux pour installer le produit. Maintenant, on peut installer le produit en trois clics, dont un double.
Sur la version 2008, il manquait le haut de gamme et le bas de gamme était pris par SourceSafe, Excel, etc. Sur la version 2010, Microsoft chercher à occuper toute la gamme, avec en particulier TFS Basic pour les petits utilisateurs et la version normale pour le milieu et le haut de gamme (processus réparti à l’international). TFS Basic est très adapté aux petites équipes :
- Contrôle de code source
- Automatisation des builds
- Gestion de cas de test
Du coup, on laisse de côté les fermes de serveur, la gestion du reporting, etc.
TFS Basic s’installe sur une machine client, et peut utiliser SQLExpress comme base de données. La deuxième phase est la configuration, où il installe le service Windows de scheduler, les deux bases de données nécessaires, le site web, et un point d’entrée dans la base pour les projets. C’est intéressant car on peut fortement faciliter le portage sur un TFS non Basic. Les tâches sont personnalisables pour faire du Scrum, même sur Basic. On peut même personnaliser pour une entreprise avec un processus donné.
On a, dans TFS Basic, une vraie console d’administration graphique qui simplifie les opérations de maintenance courantes.
Très important : TFS Basic peut être étendu jusqu’à avoir un TFS complet.
Clients de TFS
Plusieurs logiciels communiquent avec le serveur TFS :
- Visual Studio, évidemment, depuis lequel on peut créer un projet, s’attacher sur un workspace avec copie locale, etc.
- Excel avec un plugin installé automatiquement et qui permet à un chef de projet de mettre en place des tâches.
- Un plugin de Project (on parle bien de MS Project et pas MS Project Server), qui permet à un profil plutôt chef d’équipe de dispatcher les ressources et de vérifier l’état d’avancement de manière très granulaire.
- Un site web qui permet de remplir les bugs ou les tâches comme sur un Bugzilla.
- Test & Lab Manager : la version de Visual Studio pour les testeurs, leur permettant de mettre en place des scenarii de tests et des campagnes.
Gestion de code source
Toutes les fonctions de base sont là :
- Archivage
- Extraction
- Etiquetage
Mais les fonctions avancées ne sont pas absentes, même si on est sur une version Basic :
- Mise sur étagère (livrer un développement, mais dans une zone tampon)
- Développement parallèle
- Archivage par règle / atomique
- Gated checkin : possibilité de conditionner une livraison au passage de certaines règles, comme la validation de tests unitaires ou le respect de règles de code.
Contrairement à SourceSafe, toute l’intelligence est sur le serveur. Un truc sympa est que, lors de la validation du code, on a le choix entre toutes les tâches en cours sur lesquelles on peut valider. Et une fois le code correspondant validé, cette tâche est considérée comme réalisée. Les intervenants insistent, à raison, sur l’importance de la mise en correspondance entre du code et un work item, pour pouvoir retrouver l’historique d’une fonction, d’une correction de bug, etc.
On dispose également d’une fonction Annotate, qui est l’équivalent du blame en CVS / SVN : on affiche, bloc par bloc, l’auteur des modifications sur le code même.
Le merge visuel des branches est impressionnant : on peut glisser-déposer des changesets sur une branche depuis une autre.
Build
La génération des livrables est également au rendez-vous, avec toutes les options intéressantes (intégration continue, à heure fixe, à la demande, gated check-in, etc.)
Un agent de build est installé comme service Windows, de façon que le build soit indépendant de Visual Studio. On peut amender le workflow de définition du build avec de nombreuses actions pour qu’il se charge de lancer des tests, envoyer des mails, générer un fichier .msi, etc. Le tout paraît très adaptable, et c’est apparemment le Workflow .NET qui est utilisé, ou à tout le moins son designer.
Il faut passer par la console graphique d’administration (nouveauté) pour installer l’agent de build, et la KB977226 est nécessaire pour la beta2 quand elle est utilisé sur un OS français.
Quelque chose de très intéressant est que, avec l’association forte qu’on a entre les work items et le code, et la gestion historisée des builds, on peut donner la liste des corrections contenues dans un build donné par rapport au précédent. Encore une fois, pour quelqu’un comme moi qui s’intéresse surtout à ce qui va apporter de la productivité à une équipe de développement, c’est le genre de fonction qui ne saute pas aux yeux, mais qui est pourtant à elle seule un facteur de décision pour partir sur TFS.
Conclusion
Vu que nous avons notre propre plateforme de build et de gestion de code source, je me demandais si nous avions vraiment un avantage à passer sur TFS, mais cette version Basic m’a définitivement convaincu que ça valait le coup, ne serait-ce qu’en commençant en parallèle sur un petit projet.
http://blogs.developpeur.org/azra pour plus de détails sur les astuces de Florent Santin.
Voilà pour la première journée. J’ai les doigts usés, mais je tiens le rythme pour l’instant !