Mała ankieta Martina Fowlera mówi dużo o stanie TFS w poprzednich latach. „niebezpieczne” ma rację. (Myślę, że odnosi się to do sposobu, w jaki nie rozpoznaje zmian dokonanych poza VS, więc możesz utworzyć projekt WCF, a następnie użyć zewnętrznego narzędzia svcutil, aby utworzyć klienta, a następnie sprawdzić wszystkie zmiany w ... ale TFS będzie na szczęście zignoruj zmiany w kliencie, ponieważ nie zostały wprowadzone w VS).
Musisz policzyć koszt: wymagana wersja VS, aby uzyskać korzyści - na przykład recenzje kodu wymagają wersji Premium, która jest znacznie droższa, jeśli otrzymasz VS przez MSDN. Również dostęp do systemu dla użytkowników spoza VS jest w porządku, ale jeśli chcą pełnego dostępu zamiast do przyciętego widoku internetowego, będziesz musiał wydać dla nich licencje CAL. Całkowity koszt TFS może być dość wysoki. Nawet najnowszy raport Forrester(na zlecenie Microsoft, więc trzeba trochę przeczytać między wierszami) mówi, że TFS wymaga znacznego wsparcia administracyjnego - 2 konsultantów i 6 administratorów (którzy spędzili 25% swojego czasu) musiało wspierać TFS w swoim studium przypadku 122 użytkowników (działa z 4,5 administratorami na tych 122 użytkowników ... to dużo w porównaniu do mnie, która konfiguruje i utrzymuje pełne rozwiązanie SVN, jednocześnie wykonując swoją codzienną pracę). TFS może wymagać wiele wysiłku, aby kontynuować pracę zgodnie z oczekiwaniami.
Z mojego doświadczenia z TFS2012 (zapomnij o poprzednich wersjach, bo to bzdury), jest to bardzo skomplikowane administrowanie systemem, szczególnie jeśli wykraczasz poza wcześniej zdefiniowaną konfigurację. Na przykład, jeśli używasz MSBuild do budowania wszystkiego, wszystko w porządku. Ale jeśli masz, powiedzmy, mnóstwo starych propozycji .vdproj, które nie są już obsługiwane przez MSBuild, musisz edytować ogromny skrypt kompilacji xaml, aby umożliwić tworzenie tych projektów. Po kilku dniach pracy nad tym, co mogłem zrobić, to przebudować rozwiązanie, przekazując je devenv, a nawet wtedy uzyskanie wyników kompilacji i podsumowanie kompilacji było niemożliwe. Podobne wyniki uzyskały inne zespoły, które wykorzystały NUnit do swoich testów - jeśli użyjesz wbudowanego MSTest, to zadziała. W przeciwnym razie jesteś prawie wypchany.
Jako użytkownik uważam, że integracja jest bardziej uciążliwa. Wolę TortoiseSVN i wykonuję przez to prawie całą moją pracę SCM (ponieważ jest to niesamowite narzędzie). Dzięki TFS otrzymujesz nowy ekran wewnątrz VS dla każdej operacji. Masz więc w swoim środowisku nową kartę dla eksploratora zespołu, kolejną dla kompilacji i kolejną dla każdego podsumowania kompilacji, które chcesz zobaczyć (a jeśli chcesz zobaczyć szczegóły kompilacji, na przykład błąd, masz klikać za dużo linków). Przekonałem się, że liczba dokumentów, które miałem otwarte podczas korzystania z TFS, była większa niż pliki źródłowe!
To samo dotyczy meldowań, dokonywanie zmian wymagało kliknięcia kilku kart w okienku Oczekujące zmiany w VS, aby przypisać element pracy i komentarz do swoich meldunków. To drobiazg, ale denerwowało mnie to, ponieważ przyzwyczaiłem się do bardziej usprawnionych narzędzi.
Rozszerzenie systemu kompilacji było kolejnym obszarem, którego mi brakowało. Dodanie nowych funkcji do kompilacji jest trudne ze względu na konfigurację Xaml, a umieszczenie wyników tych funkcji na ekranach kompilacji jest bardzo trudne lub niemożliwe. Jeśli więc lubisz dodawać takie elementy, jak złożoność kodu lub analiza statyczna, a nawet automatyczne testowanie za pomocą np. Selenu lub wdrożeń ... zapomnij o tym. Chyba że używasz narzędzi Microsoft do tych aspektów (np. Fxcop).
Aktualizowanie przepływu pracy było kolejnym drobiazgiem - chociaż narzędzia były niezwykle pomocne, nadal było niezręcznie uzyskać prawidłowy przepływ pracy i nadal nie można skonfigurować tablicy scrum z informacjami, które naprawdę chcesz zobaczyć - znowu otrzymujesz wartości domyślne lub nic .
Scalanie było również bolesne, myślę, że istnieje bardzo dobry powód, dla którego MS przyjęło git dla TFS (uwaga: działa to tylko z nowymi projektami TFS, nie można przekonwertować z TFS na backendy git).
Podsumowując, nie jest tak źle, ponieważ działa, ale odkryłem, że wiele innych narzędzi jest znacznie lepszych. Wadą tych narzędzi jest to, że nie są one w pełni zintegrowane, ale IMHO jest to siła, ponieważ możesz wybrać i wybrać najlepsze bity, które chcesz. Dzięki TFS dostajesz prawie to, co ktoś inny chce, abyś miał. Jeśli zdecydujesz, że system błędów w TFS jest słaby (i myślę, że tak będzie), będziesz miał trudności z przejściem na inny.
TFS należy rozważyć wraz z innymi dużymi, grubymi narzędziami w pełnym cyklu życia. Większość programistów nienawidzi takich rzeczy, ponieważ nie lubią ograniczeń, które nakładają na nie te narzędzia.
Chciałbym jednak spróbować, pobrać 30-dniowe wersje próbne i zainstalować. Podczas oceny pamiętaj, aby zmienić trochę tu i tam, nie używaj go tylko do sprawdzania kodu źródłowego, meldowania się z wymaganym elementem roboczym i otrzymywania raportów na podstawie tego elementu roboczego. Spróbuj przypisać zameldowanie do wielu elementów roboczych i spróbuj połączyć elementy robocze razem jako powiązane. Spróbuj włączyć coś innego do systemu kompilacji, zobacz, jak uzyskać codzienny raport postępu z usług raportowania, połącz dokument z wymogiem przepływu pracy i prześledzić go przez triage błędów do kodowania w celu kompilacji do przeróbki, a następnie wydania. Rozgałęziaj i łącz dużo. Jeśli nie możesz łatwo zrobić tych wszystkich rzeczy, równie dobrze możesz trzymać się git. Nie ma sensu używać TFS, jeśli nie korzystasz z większości jego funkcji ALM.