So bewerten Sie die Umstellung auf Team Foundation Server

10

Mein Entwicklungsteam verwendet derzeit die folgende Software in unserem Workflow:

  • JIRA
  • Bambus (Atlassian kontinuierliche Integration)
  • Greenhopper (agiles Projektmanagement von Atlassian)
  • Zusammenfluss
  • Git, gehostet auf BitBucket
  • Visual Studio 2012

Wie Sie sehen, sind wir ziemlich stark in das atlassische Ökosystem investiert. Wir erwägen eine Umstellung auf TFS, damit wir die Vorteile erweiterter Visual Studio-Integrationen wie Codeüberprüfungen und vor allem den Microsoft Test Manager nutzen können.

Meine früheren Erfahrungen mit TFS waren 2005 oder 2008 (ich kann mich nicht erinnern) und ich habe schlechte Erinnerungen daran, obwohl nicht ganz so schlecht wie meine Zeit mit ClearCase.

Welche Kriterien sollten wir berücksichtigen, um unseren Wechsel zu TFS richtig bewerten zu können?

Sam
quelle
4
Ich bin von einer Firma auf Git zu einer Firma mit TFS 2008 gewechselt und es ist unglaublich schmerzhaft. Ich höre, dass 2012 viel schöner ist. Aber wir sind im Moment nicht in der Lage, ein Upgrade durchzuführen. Wie es derzeit ist ... Ich würde töten, um zu git zurückzukehren :(
Simon Whitehead
1
Das ist richtig. TFS 2008 war sowohl zu warten als auch zu verwenden. Es gibt jedoch eine starke positive Tendenz: TFS 2010 war viel besser als 2008, TFS 2012 ist genauso viel besser als 2010. Es ist viel wartbarer und verfügt über eine hervorragende Weboberfläche, sodass es von Personen ohne Visual Studio (Tester und Produktbesitzer) verwendet werden kann , etc)
Andrei Zubov
@SimonWhitehead Als jemand, der von TFS2008 zu TFS2012 gewechselt ist, haben sich die Unterschiede auf einer grundlegenden Benutzerebene nicht wesentlich geändert - es gibt neue Aspekte (z. B. Codeüberprüfungen, Scrum-Webseiten usw.), aber Sie würden es trotzdem hassen. Upgrade ... vergiss es, du musst eine Neuinstallation durchführen und deine Daten kopieren.
gbjbaanb
4
Auch TFS 13 hat nichts mit JIRA Agile zu vergleichen. Ihre derzeitige Implementierung des "Kanban-Boards" ist ein erbärmlicher Versuch, diesem totgeborenen Kind Leben einzuhauchen. Um Cofluence zu ersetzen, finden Sie überhaupt nichts. Ich bin mir nicht sicher, warum jemand in Betracht ziehen sollte, vom Atlassian-Stack zum TFS-Stack zu wechseln. Ich benutze TFS seit vielen, vielen Jahren und war nie zufrieden damit, meine Kollegen auch nicht.
Alexey Zimarev
Da Sie bereits in das Atlassian-Ökosystem investiert sind, bin ich überrascht, dass niemand Atlassian Stash erwähnt hat , das auf Git ausgeführt wird und Ihnen Funktionen wie Repository-Zugriffsverwaltung, Pull-Anforderungen, Codeüberprüfungen und automatische Zusammenführungsstrategien bietet. Es ist ganz nett.
Mike Chamberlain

Antworten:

17

Die kleine Umfrage von Martin Fowler sagt viel über den Stand der TFS in den vergangenen Jahren aus. "gefährlich" ist ganz richtig. (Ich denke, dies bezieht sich auf die Art und Weise, in der Änderungen, die außerhalb von VS vorgenommen wurden, nicht erkannt werden. Sie können also ein WCF-Projekt erstellen, dann mit dem externen svcutil-Tool Ihren Client erstellen und dann alle Änderungen in überprüfen. TFS wird dies jedoch tun Ignorieren Sie Ihre Client-Änderungen gerne, da sie nicht in VS vorgenommen wurden.

Sie müssen die Kosten zählen: Die erforderliche Version von VS, um die Goodies zu erhalten - Codeüberprüfungen erfordern beispielsweise die Premium Edition, die erheblich teurer ist, wenn Sie VS über MSDN erhalten. Auch der Zugriff auf das System für Nicht-VS-Benutzer ist in Ordnung. Wenn sie jedoch den vollständigen Zugriff anstelle der reduzierten Webansicht wünschen, müssen Sie für sie nach CALs suchen. Die Gesamtkosten von TFS können sehr hoch sein. Sogar der jüngste Forrester-Bericht(von Microsoft in Auftrag gegeben, Sie müssen also ein wenig zwischen den Zeilen lesen) sagt, dass TFS erhebliche Verwaltungsunterstützung erfordert - 2 Berater und 6 Administratoren (die 25% ihrer Zeit verbrachten) mussten TFS für ihre Fallstudie mit 122 Benutzern unterstützen (Dies entspricht einer Anzahl von 4,5 Administratoren über diese 122 Benutzer. Dies ist eine Menge im Vergleich dazu, dass ich nur eine vollständige SVN-Lösung eingerichtet und gewartet habe, während ich gleichzeitig meine tägliche Arbeit erledige.) TFS kann viel Mühe kosten, um so weiterzuarbeiten, wie es die Leute erwarten.

Nach meiner Erfahrung mit TFS2012 (vergessen Sie frühere Versionen, da diese Mist sind) ist dies eine sehr komplizierte Systemverwaltung, insbesondere wenn Sie das vordefinierte Setup verlassen. Wenn Sie beispielsweise MSBuild verwenden, um alles zu erstellen, ist alles in Ordnung. Wenn Sie jedoch beispielsweise eine Menge alter .vdproj-Projekte haben, die von MSBuild nicht mehr unterstützt werden, müssen Sie das riesige xaml-Build-Skript bearbeiten, damit diese Projekte erstellt werden. Nachdem ich mehrere Tage daran gearbeitet hatte, war das Beste, was ich tun konnte, die Lösung neu zu erstellen, indem ich sie an devenv weitergab, und selbst dann war es unmöglich, die Build-Ergebnisse in die Build-Zusammenfassung aufzunehmen. Ähnliche Ergebnisse erzielten andere Teams, die NUnit für ihre Tests verwendeten. Wenn Sie den integrierten MSTest verwenden, funktioniert dies. Ansonsten bist du ziemlich voll.

Als Benutzer finde ich, dass die Integration eher störend ist. Ich bevorzuge TortoiseSVN und mache fast meine gesamte SCM-Arbeit damit (da es ein großartiges Tool ist). Mit TFS erhalten Sie für jede Operation einen neuen Bildschirm in VS. Sie haben also eine neue Registerkarte in Ihrer Umgebung für den Team-Explorer und eine andere für die Builds und eine weitere für jede Build-Zusammenfassung, die Sie anzeigen möchten (und wenn Sie die Details eines Builds anzeigen möchten, haben Sie beispielsweise einen Fehler durch zu viele Links klicken). Ich fand, dass die Anzahl der Dokumente, die ich bei der Verwendung von TFS geöffnet hatte, mehr war als die Quelldateien!

Gleiches gilt für Checkins, bei denen Änderungen vorgenommen werden müssen, die durch Klicken auf mehrere Registerkarten im Bereich "Ausstehende Änderungen" in VS erforderlich sind, um Ihren Checkins ein Arbeitselement und einen Kommentar zuzuweisen. Es ist eine kleine Sache, aber ich fand es ärgerlich, da ich an optimierte Werkzeuge gewöhnt war.

Die Erweiterung des Build-Systems war ein weiterer Bereich, der mir fehlte. Das Hinzufügen neuer Funktionen zum Build ist aufgrund der xaml-Konfiguration schwierig, und das Abrufen der Ergebnisse dieser Funktionen in Ihre Build-Bildschirme ist entweder sehr, sehr schwierig oder unmöglich. Wenn Sie also gerne Dinge wie Codekomplexität oder statische Analyse hinzufügen oder sogar automatisierte Tests über beispielsweise Selen oder Bereitstellungen durchführen möchten, vergessen Sie dies. Es sei denn, Sie verwenden die Microsoft-Tools für diese Aspekte (z. B. fxcop).

Das Aktualisieren des Workflows war ein weiteres Problem - obwohl die Powertoys enorm geholfen haben, war es immer noch umständlich, den Workflow richtig zu machen, und Sie können das Scrum Board immer noch nicht mit den Informationen konfigurieren, die Sie wirklich sehen möchten - wieder erhalten Sie die Standardeinstellungen oder nichts .

Das Zusammenführen war auch schmerzhaft. Ich denke, es gibt einen sehr guten Grund, warum MS Git für TFS übernommen hat (beachten Sie, dass dies nur mit brandneuen TFS-Projekten funktioniert, Sie können nicht von TFS zu Git-Backends konvertieren).

Alles in allem ist es also nicht schlecht, da es funktioniert, aber ich habe festgestellt, dass viele andere Tools viel besser sind. Der Nachteil dieser Tools ist, dass sie nicht vollständig integriert sind, aber meiner Meinung nach ist dies eine Stärke, da Sie die besten Bits auswählen können, die Sie möchten. Mit TFS bekommen Sie so ziemlich das, was jemand anderes von Ihnen erwartet. Wenn Sie feststellen, dass das Fehlersystem in TFS schlecht ist (und ich denke, Sie werden es tun), fällt es Ihnen schwer, zu einem anderen zu wechseln.

TFS sollte zusammen mit anderen großen, fetten Tools für den gesamten Lebenszyklus in Betracht gezogen werden. Die meisten Entwickler hassen solche Dinge, weil sie die Einschränkungen, die diese Tools ihnen auferlegen, nicht mögen.

Ich würde es aber versuchen, die 30-Tage-Testversionen herunterladen und installieren. Denken Sie bei der Bewertung daran, hier und da ein wenig zu ändern. Verwenden Sie es nicht nur zum Einchecken des Quellcodes, sondern zum Einchecken mit einem erforderlichen Workitem und zum Abrufen von Berichten, die auf diesem Workitem basieren. Versuchen Sie, mehreren Workitems ein Einchecken zuzuweisen, und versuchen Sie, Workitems wie verwandt miteinander zu kombinieren. Versuchen Sie, etwas anderes in das Build-System zu integrieren, und erfahren Sie, wie Sie einen täglichen Fortschrittsbericht aus den Berichtsservices herausholen, ein Dokument mit einer Workflow-Anforderung verknüpfen und es durch Fehlerbehebung mit Codierung verfolgen, um es zu erstellen, zu überarbeiten und dann freizugeben. Verzweigen und verschmelzen viel. Wenn Sie all diese Dinge nicht einfach machen können, können Sie sich genauso gut an Git halten. Es macht nicht viel Sinn, TFS zu verwenden, wenn Sie die meisten ALM-Funktionen nicht nutzen.

gbjbaanb
quelle
1
Vielen Dank für das Teilen Ihrer Erfahrungen und es ist gut, einige Negative zu bekommen. Ich habe ClearCase vor einiger Zeit in einem Unternehmen verwendet, und das war das schlechteste SCM, das ich jemals verwendet habe. Der Verwaltungsaufwand ist besorgniserregend, wir sind ein kleines Startup, aber ich finde es wirklich toll, dass unser aktuelles Setup praktisch keine Verwaltung erfordert.
Sam
Serena Dimensions war das schlechteste, das ich je benutzt habe. Clearcase schien im Vergleich nicht annähernd so schlecht zu sein, zumindest hat es funktioniert! Ich denke, MS möchte, dass Sie mit ihrer Cloud-Version von TFS arbeiten. Selbstinstalliert ist etwas, das sie für viel Geld an Unternehmen verkaufen können. Ich würde bei dem bleiben, was du hast. Holen Sie sich weitere Tools, um die gleiche Funktionalität zu erhalten (z. B. ReviewBoard).
Gbjbaanb
Oh, und ich weiß, dass es ein Fehler ist, daher ist es nicht wirklich fair, ihn hervorzuheben. Wenn Sie jedoch die Codeüberprüfungsfunktion von TFS ausprobieren und versuchen, eine Datei zu überprüfen, die umbenannt oder geändert wurde, meldet TFS eine "vorherige" Revision nicht gefunden "Fehler. Wenn Sie viel umgestalten, kann dies ein Problem sein. Es könnte ein kleiner Fehler sein, aber es könnte auch ein großes Architekturproblem sein, wenn sie die Umbenennung von Dateien im TFS-Back-End-Speicher nicht verfolgen.
Gbjbaanb
2
Entschuldigung für die späte Antwort, letztendlich haben Sie mich davon abgehalten, TFS zu verwenden. Vielen Dank.
Sam
1
Gut zu hören - jeder scheint zu denken, dass er TFS verwenden muss, wenn wir alle wirklich eine breite Palette von Tools verwenden sollten. Andernfalls haben wir nur 1 oder 2 Unternehmen, die alle unsere IT-Tools bereitstellen ... Microsoft und Oracle ... das wäre nicht die schönste Welt zum Leben :) Atlassian macht gute Tools, mehr Leute sollten sie bewerten.
Gbjbaanb
12

Ich bin von einer Firma mit einem weitgehend atlassischen Stack (und Mercurial) zu einer Firma mit einem schweren TFS-Stack gewechselt. Ich finde zwei Irritationen.

Das erste ist die Quellcodeverwaltung .

Wenn Sie sich an DVCS gewöhnt haben, ist es schmerzhaft, wieder zu einem CVCS zu wechseln. TFS ist besonders schmerzhaft, da es bei all dieser Integration darauf besteht, jederzeit mit dem Server verbunden zu sein.

Zum Glück hat Microsoft kürzlich die Integration der Git-Versionskontrolle in den Rest des TFS-Stacks zugelassen. Sie müssen Git also nicht aufgeben, und ich rate Ihnen, dies nicht zu tun, da jeder es bereits weiß.

Ich bin mir noch nicht sicher, wie gut das Code-Review-Tool gegen Git funktioniert, da es sich anscheinend stark auf Regale stützt (ein bisschen wie Stashes, aber nicht so leistungsfähig). Aber dann ist es an sich schmerzhaft, sich bei der Codeüberprüfung auf Regale zu verlassen, da dies regelmäßige Commits verhindert.

Die andere Irritation ist der Grund, warum die meisten Menschen nicht in Betracht ziehen, sich von TFS zu entfernen: Die Visual Studio-Integration .

Ich habe die kognitiven Gründe dafür noch nicht herausgefunden, aber meiner Erfahrung nach (und unter Berücksichtigung der Verallgemeinerung) lieben Menschen, die an TFS gewöhnt sind, die Integration. Sie mögen es nicht, sich für irgendetwas außerhalb ihrer IDE zu bewegen.

Ich hingegen habe mich nach einem Jahr nicht mehr darauf erwärmt. Ich finde es unübersichtlich und schwierig zu navigieren, verglichen mit meinem Build-Server in einem Browser-Tab, meinen Tickets in einem anderen Browser-Tab und so weiter. (Bearbeiten: Wie Andrei bemerkt, gibt es ein Webinterface, aber es ist auch unerklärlich klobig, wenn Sie an neuere Versionen von Jira und Jenkins gewöhnt sind. Aber es funktioniert jetzt zumindest in anderen Browsern als dem IE das ist etwas.)

Ich schaue mir niemals Builds an, es sei denn, ich versuche, einen zu erstellen, und dann fällt es mir schwer herauszufinden, ob jemand anderes bereits einen erstellt. Ich sehe die Änderungen anderer Leute nur, wenn ich gebeten werde, sie zu überprüfen.

Ihr Kilometerstand kann jedoch variieren. Wie gesagt, manche Leute scheinen es unverzichtbar zu finden. Ich kann einfach nicht anders, als zu bemerken, dass es im Allgemeinen Menschen sind, die es nie anders gemacht haben.

Versäumen Sie auch nicht zu bemerken, dass dies 2 Negative sind, von denen eines persönlich sein kann, in einer ziemlich großen Infrastruktur. Die meisten meiner Erfahrungen sind gut und TFS ist nicht so schlecht, wie manche Leute glauben machen werden. Und die meisten Dinge, die Sie vermissen, können wahrscheinlich eingeschaltet werden (es ist sehr konfigurierbar); Angesichts der Tatsache, dass Sie ein ganzes Team und nicht nur eine Person bewegen, finden Sie möglicherweise weniger Widerstand.

pdr
quelle
1
Dies ist im Grunde das, womit ich geantwortet hätte. Ich bin froh zu wissen, dass ich nicht der einzige bin!
Simon Whitehead
1
Sie können eine Codeüberprüfung für festgeschriebenen Code durchführen, aber Sie wissen nur, dass Sie das Einchecken verhindern können, bis nach der Überprüfung die Benutzer ihn genau so verwenden. Unternehmensrichtlinien werden überall geschrieben, daher ist dies obligatorisch, und dann wird es zu einem weiteren Prozessegpass, der Entwickler verärgert.
Gbjbaanb
5

Ich habe sehr positive Erfahrungen mit der Verwendung von TFS 2012. Es ist recht einfach, Ihren TFS-Server einzurichten und auszuführen. Die Automatisierung der CI-Erstellung ist sehr einfach und unkompliziert (und die Erstellung des Gated-Check-ins ist einfach fantastisch. Wir haben nicht die gleiche Funktionalität erreicht mit Team City). Die Teaminteraktion ist sehr transparent und unkompliziert. Sie können Ihre Eincheckvorgänge problemlos mit TFS-Workitems verknüpfen, einen Rückstand verwalten, Fehler verfolgen, Codereviews durchführen usw. Es ist sogar ein Messenger eingebaut =)

Beachten Sie jedoch, dass das Einrichten des TFS-Workflows eine schwierige Aufgabe sein kann, wenn Sie sich an den Workflow Ihres JIRA gewöhnt haben. Ich würde vorschlagen, einen der vordefinierten TFS-Workflows zu übernehmen. Außerdem müssen Sie Confluence als Wissensdatenbank beibehalten oder zu SharePoint wechseln, da in TFS kein Wiki integriert ist.

TFS ist viel billiger, wenn Sie ein MSDN-Abonnement haben (ich glaube, die meisten Entwicklerunternehmen, die mit MS Technology Stack arbeiten, haben es). In diesem Fall haben Sie TFS kostenlos.

Ich denke, es gibt keinen Grund, weiterhin Side-Party-Tools zu verwenden, wenn Sie alle Ihre Entwickler mit Visual Studio arbeiten. TFS bietet ein integriertes, robustes und dennoch benutzerfreundliches ALM-System. Ich werde Ihre Fragen gerne beantworten, wenn Sie welche haben.

Andrei Zubov
quelle
1
Vielen Dank für Ihr Feedback. Wir verwenden BizSpark, von dem ich ziemlich sicher bin, dass er TFS enthält. Ich denke, das einzige, was ich von Ihnen möchte, sind Negative, nur um es abzuwägen. Ich bin froh, bei Confluence zu bleiben, da ich SharePoint wirklich nicht mag.
Sam
Das Änderungsbenachrichtigungssystem in TFS ist etwas einfacher als in anderen Lösungen (Test Track hat beispielsweise ein viel robusteres System). In TFS erhalten Sie nur Benachrichtigungen, wenn Ihnen ein Workitem zugewiesen ist. Sie können beispielsweise keine Änderungen an einem bestimmten Workitem abonnieren. Ich denke, es ist kein großes Problem in einem agilen Arbeitsprozess, aber wenn Sie sich stark auf Benachrichtigungen in Ihrem Arbeitsprozess verlassen, kann dies schmerzhaft sein. Die Quellcodeverwaltung benötigt einige Zeit, um sich daran zu gewöhnen. Besonders wenn Sie an GIT-Befehlszeilenbefehle gewöhnt sind. Aber die verzweigte Visualisierung ist die Mühe wert, die ich denke.
Andrei Zubov
-3

Die Leute sollten wissen, dass TFS nicht nur VCS ist, sondern ALM .

Anscheinend wollen viele Leute nur ein VCS, aber TFS ist der falsche Weg.
Für CVCS bevorzuge ich immer noch SVN.
Für Solo oder Open Source sollten Sie sich für GIT entscheiden.

Aber TFS2012 ist nicht schlecht, es ist leicht zu verstehen, auf Merge / Fork dann SVN.
Der Team Foundation Service ist für 5 Benutzer / unbegrenztes privates Repo kostenlos.

Der Client ist ebenfalls kostenlos, der TFS-Explorer baut auf VS2010 auf und ist kostenlos.
Für Eclipse gibt es überall das Eclipse-Plugin TFS.

Ich sehe kein Kostenproblem.
TFS Express (kostenlos) kann mit SQL Server Express (auch kostenlos) verwendet werden.

Cheung
quelle
1
Wie beantwortet dies die gestellte Frage?
Mücke