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?
Antworten:
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.
quelle
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.
quelle
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.
quelle
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.
quelle