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?
Réponses:
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.
la source
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.
la source
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.
la source
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).
la source