Comment évaluer le passage à Team Foundation Server

10

Mon équipe de développement utilise actuellement les logiciels suivants dans notre flux de travail:

  • JIRA
  • Bamboo (intégration continue Atlassian)
  • Greenhopper (gestion de projet agile Atlassian)
  • Confluence
  • Git, hébergé sur BitBucket
  • Visual Studio 2012

Comme vous pouvez le voir, nous sommes assez investis dans l'écosystème Atlassian. Nous envisageons de passer à TFS afin d'obtenir les subtilités des intégrations avancées de Visual Studio telles que les révisions de code et, plus important encore, le Microsoft Test Manager.

Mon expérience précédente avec TFS était en 2005 ou 2008 (je ne me souviens pas) et j'en garde de mauvais souvenirs, bien que pas aussi mauvais que mon temps avec ClearCase.

Quels critères devrions-nous examiner afin d'évaluer correctement notre passage à TFS?

Sam
la source
4
Je suis passé d'une entreprise sur git à une entreprise avec TFS 2008 et c'est incroyablement douloureux. J'ai entendu dire que 2012 est beaucoup plus agréable .. mais nous ne sommes pas en mesure de mettre à jour pour le moment. Comme c'est le cas actuellement ... je tuerais pour revenir à git :(
Simon Whitehead
1
C'est correct. TFS 2008 a été difficile à maintenir et à utiliser. Mais il y a une forte tendance positive: TFS 2010 était bien meilleur qu'en 2008, TFS 2012 est tout aussi meilleur qu'en 2010. Il est beaucoup plus facile à gérer et possède une excellente interface Web afin qu'il puisse être utilisé par des personnes sans Visual Studio (testeurs et propriétaires de produits , etc)
Andrei Zubov
@SimonWhitehead en tant que personne qui est passée de TFS2008 à TFS2012, les différences au niveau de l'utilisateur fondamental ne changent pas beaucoup - il y a de nouveaux bits au bord (par exemple, révisions de code, page Web Scrum, etc.) mais vous détesteriez toujours. Mise à niveau ... oubliez ça, vous devez faire une installation propre et copier vos données dans.
gbjbaanb
4
Même TFS 13 n'a rien à voir avec JIRA Agile. Leur mise en œuvre actuelle du «tableau Kanban» est une tentative pathétique de donner vie à cet enfant mort-né. Pour remplacer Cofluence, vous ne trouverez rien du tout. Je ne sais pas pourquoi quelqu'un devrait envisager de passer de la pile Atlassian à la pile TFS. J'utilise TFS depuis de nombreuses années et je n'en ai jamais été satisfait, ni mes collègues.
Alexey Zimarev
Comme vous êtes déjà investi dans l'écosystème Atlassian, je suis surpris que personne n'ait mentionné Atlassian Stash , qui fonctionne au-dessus de Git et vous offre des fonctionnalités telles que la gestion de l'accès au référentiel, les demandes d'extraction, les révisions de code et les stratégies de fusion automatique. C'est assez sympa.
Mike Chamberlain

Réponses:

17

Le petit sondage de Martin Fowler en dit long sur l'état du TFS les années précédentes. «dangereux» a tout à fait raison. (Je pense que cela fait référence à la façon dont il ne reconnaît pas les modifications apportées en dehors de VS, vous pouvez donc créer un projet WCF, puis utiliser l'outil svcutil externe pour créer votre client, puis vérifier toutes vos modifications dans .. mais TFS le fera ignorez heureusement les modifications apportées à vos clients car elles n'ont pas été effectuées dans VS).

Vous devez compter le coût: la version requise de VS pour obtenir les avantages - les revues de code, par exemple, nécessitent une édition Premium qui est nettement plus chère si vous obtenez VS via MSDN. En outre, l'accès au système pour les utilisateurs non-VS est très bien, mais s'ils veulent un accès complet à la vue Web réduite, vous devrez alors débourser des CAL pour eux. Le coût global de TFS peut être très élevé. Même le récent rapport Forrester(commandé par Microsoft, vous devez donc lire un peu entre les lignes) dit que TFS nécessite un soutien administratif important - 2 consultants et 6 administrateurs (qui ont passé 25% de leur temps) ont dû prendre en charge TFS pour leur étude de cas de 122 utilisateurs (cela équivaut à 4,5 administrateurs sur ces 122 utilisateurs ... c'est beaucoup par rapport à moi qui configure et gère une solution SVN complète tout en faisant mon travail quotidien). TFS peut prendre beaucoup d'efforts pour continuer à fonctionner comme les gens s'y attendent.

D'après mon expérience avec TFS2012 (oubliez les versions précédentes car elles sont de la merde), c'est qu'il s'agit d'une administration système très compliquée, surtout si vous sortez de la configuration prédéfinie. Par exemple, si vous utilisez MSBuild pour tout construire, tout va bien. Mais si vous avez, par exemple, une charge d'anciens projets .vdproj qui ne sont plus pris en charge par MSBuild, vous devez modifier l'énorme script de construction xaml pour lui permettre de construire ces projets. Après plusieurs jours à travailler sur cela, le mieux que j'ai pu faire était de reconstruire la solution en la passant à devenv, et même alors, obtenir les résultats de la construction et les insérer dans le résumé de la construction était impossible. Des résultats similaires ont été obtenus par d'autres équipes qui ont utilisé NUnit pour leurs tests - si vous utilisez le MSTest intégré, alors cela fonctionne. Sinon, vous êtes à peu près bourré.

En tant qu'utilisateur, je trouve que l'intégration est plus gênante. Je préfère TortoiseSVN et je fais presque tout mon travail SCM via cela (car c'est un outil génial). Avec TFS, vous vous retrouvez avec un nouvel écran dans VS pour chaque opération. Vous avez donc un nouvel onglet dans votre environnement pour l'explorateur d'équipe, un autre pour les builds, et un autre pour chaque résumé de build que vous voulez voir (et si vous voulez voir les détails d'une build, une erreur par exemple, vous avez cliquer sur trop de liens). J'ai trouvé que le nombre de documents que j'avais ouverts lors de l'utilisation de TFS était supérieur aux fichiers source!

Il en va de même pour les consignations, en validant les modifications requises en cliquant sur plusieurs onglets du volet Modifications en attente dans VS pour affecter un élément de travail et un commentaire à vos consignations. C'est une petite chose, mais je l'ai trouvé ennuyeux car j'étais habitué à des outils plus rationalisés.

L'extension du système de construction était un autre domaine qui me manquait. Ajouter de nouvelles fonctionnalités dans la build est difficile à cause de la configuration de xaml, et obtenir les résultats de ces fonctionnalités dans vos écrans de build est soit très difficile, soit impossible. Donc, si vous aimez ajouter des choses comme la complexité du code ou l'analyse statique, ou même des tests automatisés via, disons, du sélénium ou des déploiements ... À moins que vous n'utilisiez les outils Microsoft pour ces aspects (par exemple fxcop).

La mise à jour du flux de travail était un autre problème - bien que les powertoys aient énormément aidé, il était toujours difficile de bien gérer le flux de travail, et vous ne pouvez toujours pas configurer la carte Scrum avec les informations que vous voulez vraiment voir - encore une fois, vous obtenez les valeurs par défaut ou rien .

La fusion a également été douloureuse, je pense qu'il y a une très bonne raison pour laquelle MS a adopté git pour TFS (notez que cela ne fonctionne qu'avec les tout nouveaux projets TFS, vous ne pouvez pas convertir de TFS en backends git).

Donc, dans l'ensemble, ce n'est pas trop mal car cela fonctionne, mais j'ai trouvé que beaucoup d'autres outils sont bien meilleurs. L'inconvénient de ces outils est qu'ils ne sont pas entièrement intégrés, mais à mon humble avis, c'est une force car vous pouvez choisir les meilleurs bits que vous voulez. Avec TFS, vous obtenez à peu près ce que quelqu'un d'autre veut que vous ayez. Si vous décidez que le système de bogues dans TFS est médiocre (et je pense que vous le ferez), vous aurez du mal à passer à un autre.

TFS doit être pris en compte avec d'autres gros et gros outils de cycle de vie complet. La plupart des développeurs détestent ces choses car ils n'aiment pas les restrictions que ces outils finissent par leur imposer.

Je l'essayerais cependant, téléchargerais les essais de 30 jours et l'installerais. Lors de l'évaluation, n'oubliez pas de changer un peu ici et là, ne vous contentez pas de l'utiliser pour une vérification du code source, une vérification avec un élément de travail requis et obtenez des rapports basés sur cet élément de travail. Essayez d'affecter une consignation à plusieurs éléments de travail, et essayez de combiner les éléments de travail ensemble comme liés. Essayez d'incorporer quelque chose de différent dans le système de build, voyez comment obtenir un rapport d'avancement quotidien des services de reporting, liez un document à une exigence de workflow et tracez-le via le triage des bogues jusqu'au codage à construire pour retravailler puis publier. Branche et fusionne beaucoup. Si vous ne pouvez pas facilement faire toutes ces choses, vous pouvez tout aussi bien vous en tenir à Git. Il n'y a pas grand intérêt à utiliser TFS si vous ne profitez pas de la plupart de ses fonctionnalités ALM.

gbjbaanb
la source
1
Merci d'avoir partagé vos expériences et c'est bien d'avoir des points négatifs. J'ai utilisé ClearCase il y a quelque temps dans une entreprise et c'était le pire SCM que j'aie jamais utilisé. Les frais généraux administratifs sont préoccupants, nous sommes une petite startup mais j'aime vraiment que notre configuration actuelle ne nécessite pratiquement aucune administration.
Sam
Serena Dimensions était le pire que j'aie jamais utilisé, Clearcase ne semblait pas si mauvais en comparaison, au moins cela a fonctionné! Je pense que MS veut que vous optiez pour leur version cloud de TFS, l'auto-installation est quelque chose qu'ils peuvent vendre aux entreprises pour beaucoup d'argent. Je m'en tiendrai à ce que vous avez. Obtenez d'autres outils pour vous offrir les mêmes fonctionnalités (par exemple, ReviewBoard).
gbjbaanb
oh, et je sais que c'est un bug, donc ce n'est pas vraiment juste de le mettre en évidence - mais si vous essayez la fonction de révision de code de TFS, et que vous essayez de revoir un fichier qui a été renommé ainsi que modifié, TFS signalera un "précédent révision introuvable "erreur. Si vous faites beaucoup de refactoring, cela peut être un problème. Ce pourrait être un petit bogue, mais cela pourrait également être un problème architectural majeur s'ils ne suivent pas les renommages de fichiers dans le magasin principal TFS.
gbjbaanb
2
Désolé pour la réponse tardive, c'est finalement vous qui m'avez dissuadé d'utiliser TFS. Merci.
Sam
1
C'est bien de l'entendre - tout le monde semble penser qu'ils doivent utiliser TFS, alors qu'en réalité, nous devrions tous utiliser une large gamme d'outils. Sinon, nous nous retrouverons avec seulement 1 ou 2 entreprises qui fournissent tous nos outils informatiques ... Microsoft et Oracle ... ce ne serait pas le monde le plus agréable où vivre :) Atlassian fait de bons outils, plus de gens devraient les évaluer.
gbjbaanb
12

Je suis passé d'une entreprise avec une pile en grande partie Atlassian (et Mercurial) à une entreprise avec une pile TFS lourde. Je trouve deux irritations.

Le premier est le contrôle de source .

Lorsque vous vous êtes habitué au DVCS, revenir à un CVCS est pénible. TFS est particulièrement douloureux car, pour que toute cette intégration fonctionne, il insiste pour être connecté au serveur à tout moment.

Cependant, heureusement, Microsoft a récemment autorisé l'intégration du contrôle de version Git dans le reste de la pile TFS. Vous n'avez donc pas besoin de renoncer à Git, et je vous déconseille, étant donné que tout le monde le sait déjà.

Je ne suis pas encore sûr de la façon dont l'outil de révision de code fonctionne contre Git, étant donné qu'il semble s'appuyer beaucoup sur des étagères (un peu comme des cachettes, mais pas si puissantes). Mais s'appuyer sur des étagères pour la révision de code est douloureux en soi car il décourage les validations régulières.

L'autre irritation est la raison pour laquelle la plupart des gens n'envisageront pas de s'éloigner de TFS: l' intégration de Visual Studio .

Je n'ai pas encore compris le raisonnement cognitif derrière cela, mais, selon mon expérience (et en tenant compte du fait que cela est généralisant), les personnes habituées aux TFS aiment l'intégration. Ils n'aiment pas sortir de leur IDE pour rien.

Moi, en revanche, je ne me suis pas réchauffé après un an. Je trouve cela encombré et difficile à naviguer, comparé à avoir mon serveur de build dans un onglet de navigateur, mes tickets dans un autre onglet de navigateur et ainsi de suite. (Edit: Comme le note Andrei, il existe une interface Web, mais elle est également inexplicablement maladroite, lorsque vous êtes habitué aux versions plus récentes de Jira et Jenkins. Mais tout de même, cela fonctionne au moins dans des navigateurs autres qu'IE maintenant. Donc c'est quelque chose.)

Je ne regarde jamais les builds à moins que j'essaye d'en faire un, et puis j'ai du mal à savoir si quelqu'un d'autre en fait déjà un. Je ne vois pas les changements des autres sauf si on me demande de réviser.

Mais, votre kilométrage peut varier. Comme je l'ai dit, certains semblent le trouver indispensable. Je ne peux pas m'empêcher de remarquer que ce sont généralement des gens qui ne l'ont jamais fait autrement.

De plus, ne manquez pas de remarquer qu'il s'agit de 2 points négatifs, dont l'un peut être personnel, dans une assez grande infrastructure. La plupart de mon expérience est bonne et TFS n'est pas aussi mauvais que certaines personnes vous le feront croire. Et la plupart des choses que vous trouvez manquantes peuvent probablement être activées (c'est très configurable); étant donné que vous déplacez une équipe entière, plutôt qu'une seule personne, vous pourriez trouver moins de résistance.

pdr
la source
1
C'est essentiellement ce que j'aurais répondu. Heureux de savoir que je ne suis pas le seul!
Simon Whitehead
1
vous pouvez faire une révision du code du code validé, mais vous savez juste que vous pouvez empêcher les enregistrements jusqu'à ce que la révision signifie que les gens l'utiliseront exactement comme ça. Partout, les politiques d'entreprise seront écrites, c'est donc obligatoire, puis cela deviendra un autre goulot d'étranglement pour énerver les développeurs.
gbjbaanb
5

J'ai une expérience très positive de l'utilisation de TFS 2012. Il est assez facile de configurer et d'exécuter votre serveur TFS, l'automatisation de la construction CI est très simple et directe (et la construction de l'enregistrement Gated est tout simplement géniale. Nous n'avons pas réussi à obtenir les mêmes fonctionnalités avec Team City). L'interaction en équipe est également très transparente et directe. Vous pouvez facilement associer vos enregistrements à des éléments de travail TFS, gérer un backlog, suivre les défauts, effectuer des revues de code, etc. Il y a même un messager intégré =)

Cependant, gardez à l'esprit que si vous êtes habitué au flux de travail de votre JIRA, la configuration du flux de travail TFS pourrait être une tâche difficile. Je suggère d'adopter l'un des flux de travail TFS prédéfinis. Vous devrez également conserver Confluence comme base de connaissances ou passer à SharePoint car il n'y a pas de construction wiki dans TFS.

TFS est beaucoup moins cher si vous avez un abonnement MSDN (je pense que la plupart des développeurs travaillant avec la technologie MS l'ont), dans ce cas, vous avez TFS gratuitement.

Je pense qu'il n'y a aucune raison de continuer à utiliser les outils des parties secondaires si vous tous vos développeurs travaillez avec Visual Studio. TFS fournit un système ALM intégré, robuste mais facile à utiliser. Je répondrai avec plaisir à vos questions si vous en avez.

Andrei Zubov
la source
1
Merci beaucoup pour vos commentaires. Nous utilisons BizSpark, dont je suis certain que TFS est inclus. Je suppose que la seule chose que j'aimerais de vous, ce sont des négatifs, juste pour le peser. Je suis heureux de rester avec Confluence car je n'aime vraiment pas SharePoint.
Sam
Le système de notification des modifications dans TFS est un peu plus simple que dans d'autres solutions (Test Track, par exemple, a un système beaucoup plus robuste). Dans TFS, vous ne recevez des notifications que si l'élément de travail vous est affecté, vous ne pouvez pas vous abonner aux modifications sur un élément de travail spécifique, par exemple. Je pense que ce n'est pas un gros problème dans un processus de travail agile, mais si vous comptez beaucoup sur les notifications dans votre processus de travail, cela peut être pénible. Le contrôle des sources nécessitera un certain temps pour s'y habituer. Surtout si vous êtes habitué aux commandes de ligne de commande GIT. Mais la visualisation de branchement vaut les efforts je pense.
Andrei Zubov
-3

Les gens devraient savoir, TFS n'est pas seulement VCS, c'est ALM .

Il semble que beaucoup de gens veulent juste un VCS mais opter pour TFS est dans le mauvais sens.
Pour CVCS, je préfère toujours SVN.
Pour solo ou open source, optez pour GIT.

Mais TFS2012 n'est pas mauvais, c'est facile à comprendre sur fusion / fork puis SVN.
Et le service de fondation d'équipe est gratuit pour 5 utilisateurs / repo illimité et privé.

Le client est également gratuit, l'explorateur TFS s'appuie sur VS2010 et il est gratuit.
Pour Eclipse, il a le plugin Eclipse - TFS partout.

Je ne vois aucun problème de coût à ce sujet.
TFS express (gratuit) peut fonctionner avec SQL Server Express (gratuit également).

Cheung
la source
1
comment cela répond-il à la question posée?
moucher