Jak ocenić przejście na Team Foundation Server

10

Mój zespół programistów obecnie korzysta z następującego oprogramowania w naszym przepływie pracy:

  • JIRA
  • Bambus (ciągła integracja Atlassian)
  • Greenhopper (Atlassian zwinne zarządzanie projektami)
  • Zbieg
  • Git, hostowany na BitBucket
  • Visual Studio 2012

Jak widać, jesteśmy dość mocno zainwestowani w ekosystem Atlassian. Zastanawiamy się nad przejściem na TFS, abyśmy mogli poznać zalety zaawansowanych integracji Visual Studio, takich jak recenzje kodu i, co ważniejsze, Microsoft Test Manager.

Moje poprzednie doświadczenia z TFS były w 2005 lub 2008 roku (nie pamiętam) i mam złe wspomnienia z tego, choć nie tak złe, jak mój czas z ClearCase.

Jakie kryteria powinniśmy wziąć pod uwagę, aby właściwie ocenić nasze przejście do TFS?

Sam
źródło
4
Przeprowadziłem się z firmy na git do firmy z TFS 2008 i jest to niezwykle bolesne. Słyszałem, że rok 2012 jest o wiele ładniejszy ... ale w tej chwili nie jesteśmy w stanie dokonać aktualizacji. Tak jak jest obecnie ... Zabiłbym, aby wrócić do git :(
Simon Whitehead
1
To jest poprawne. TFS 2008 był trudny zarówno w utrzymaniu, jak i obsłudze. Ale istnieje silna pozytywna tendencja: TFS 2010 był znacznie lepszy niż 2008, TFS 2012 jest o wiele lepszy niż 2010. Jest o wiele łatwiejszy w utrzymaniu i ma świetny interfejs WWW, dzięki czemu może być używany przez osoby bez Visual Studio (testerzy i właściciele produktów itp.)
Andrei Zubov
@ SimonWhitehead jako ktoś, kto przeniósł się z TFS2008 na TFS2012, różnice na podstawowym poziomie użytkownika niewiele się zmieniły - wokół są nowe bity (np. Recenzje kodu, strona internetowa Scrum itp.), Ale nadal byś tego nienawidził. Aktualizacja ... zapomnij o tym, musisz wykonać czystą instalację i skopiować swoje dane.
gbjbaanb
4
Nawet TFS 13 nie ma nic do porównania z JIRA Agile. Ich obecne wdrożenie „Tablicy Kanban” jest żałosną próbą ożywienia tego martwego dziecka. Aby zastąpić Cofluence, nie znajdziesz nic. Nie jestem pewien, dlaczego ktokolwiek powinien rozważyć przejście ze stosu Atlassian na stos TFS. Używam TFS od wielu lat i nigdy nie byłem z niego zadowolony, podobnie jak moi koledzy.
Alexey Zimarev
Ponieważ już zainwestowałeś w ekosysten Atlassian, nikt nie wspomniał o Atlassian Stash , który działa na Git i oferuje takie funkcje, jak zarządzanie dostępem do repozytorium, żądania ściągania, recenzje kodu i strategie automatycznego łączenia. To całkiem miłe.
Mike Chamberlain,

Odpowiedzi:

17

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.

gbjbaanb
źródło
1
Dziękujemy za podzielenie się swoimi doświadczeniami i dobrze jest zdobyć negatywne opinie. Użyłem ClearCase jakiś czas temu w przedsiębiorstwie i to był najgorszy SCM, jakiego kiedykolwiek używałem. Obciążenie administracyjne jest niepokojące, jesteśmy małym startupem, ale naprawdę uwielbiam to, że nasza obecna konfiguracja praktycznie nie wymaga administracji.
Sam
Serena Dimensions była najgorsza, jakiej kiedykolwiek użyłem, Clearcase nie wydawał się wcale taki zły w porównaniu, przynajmniej działał! Myślę, że MS chce, abyś użył ich wersji TFS w chmurze, a samodzielna instalacja to coś, co mogą sprzedać korporacjom za duże pieniądze. Trzymałbym się tego, co masz. Zdobądź więcej narzędzi, aby zapewnić tę samą funkcjonalność (np. ReviewBoard).
gbjbaanb,
och, i wiem, że jest to błąd, więc nie jest sprawiedliwe, aby go podświetlić - ale jeśli spróbujesz skorzystać z funkcji przeglądu kodu TFS i spróbujesz przejrzeć plik, który został przemianowany i zmodyfikowany, TFS zgłosi „poprzednie wersja nie znaleziona ”błąd. Jeśli wykonujesz dużo refaktoryzacji, może to stanowić problem. Może to być mały błąd, ale może to być także poważny problem architektoniczny, jeśli nie będą śledzić zmian nazw plików w sklepie zaplecza TFS.
gbjbaanb,
2
Przepraszam za spóźnioną odpowiedź, to ostatecznie to ty namówiłeś mnie do korzystania z TFS. Dzięki.
Sam
1
Dobrze to słyszeć - wydaje się, że wszyscy uważają, że muszą korzystać z TFS, podczas gdy naprawdę wszyscy powinniśmy korzystać z szerokiej gamy narzędzi. W przeciwnym razie skończymy z 1 lub 2 firmami, które dostarczają wszystkie nasze narzędzia IT ... Microsoft i Oracle ... to nie byłby najlepszy świat do życia :) Atlassian robi dobre narzędzia, więcej ludzi powinno je oceniać.
gbjbaanb
12

Przeniosłem się z firmy z dużym stosem Atlassian (i Mercurial) do firmy z dużym stosem TFS. Znajduję dwa podrażnienia.

Pierwszy to kontrola źródła .

Kiedy przyzwyczaisz się do DVCS, powrót do CVCS jest bolesny. TFS jest szczególnie bolesny, ponieważ aby cała ta integracja działała, nalega na ciągłe połączenie z serwerem.

Jednak na szczęście Microsoft ostatnio zezwolił na integrację kontroli wersji Git z resztą stosu TFS. Więc nie musisz rezygnować z Gita i radzę ci tego nie robić, biorąc pod uwagę, że wszyscy już to wiedzą.

Nie jestem jednak pewien, jak dobrze narzędzie do sprawdzania kodu działa przeciwko Gitowi, ponieważ wydaje się, że w dużej mierze opiera się na zestawach półek (trochę jak skrytki, ale nie tak potężne). Ale opieranie się na zestawach półek przy przeglądaniu kodu jest samo w sobie bolesne, ponieważ zniechęca do regularnych zatwierdzeń.

Druga irytacja jest powodem, dla którego większość ludzi nie rozważy odejścia od TFS: Visual Studio Integration .

Muszę jeszcze zrozumieć uzasadnienie poznawcze stojące za tym, ale z mojego doświadczenia (i biorąc pod uwagę, że to jest uogólnienie) ludzie przyzwyczajeni do TFS uwielbiają tę integrację. Nie lubią wychodzić poza swoje IDE.

Ja z drugiej strony nie ogrzałem się po roku. Uważam, że jest zaśmiecony i trudny w nawigacji, w porównaniu do posiadania mojego serwera kompilacji na jednej karcie przeglądarki, moich biletów na innej karcie przeglądarki i tak dalej. (Edycja: Jak zauważa Andrei, istnieje interfejs sieciowy, ale jest również niewytłumaczalny, gdy przyzwyczaiłeś się do nowszych wersji Jiry i Jenkinsa. Ale nadal działa przynajmniej w przeglądarkach innych niż IE. Więc to jest coś.)

Nigdy nie patrzę na kompilacje, chyba że próbuję to zrobić, a potem trudno mi się dowiedzieć, czy ktoś inny już to robi. Nie widzę zmian innych osób, chyba że poproszę o sprawdzenie.

Ale twój przebieg może się różnić. Jak mówię, niektórym wydaje się, że jest to niezbędne. Po prostu nie mogę nie zauważyć, że generalnie ludzie nigdy nie zrobili tego inaczej.

Nie zapominaj też, że są to 2 negatywy, z których jeden może być osobisty, w dość dużej infrastrukturze. Większość mojego doświadczenia jest dobra, a TFS nie jest tak zły, jak niektórzy uwierzą. I większość rzeczy, których brakuje, można prawdopodobnie włączyć (jest to bardzo konfigurowalne); biorąc pod uwagę, że przenosisz cały zespół, a nie jedną osobę, możesz znaleźć mniejszy opór.

pdr
źródło
1
Zasadniczo na to bym odpowiedział. Cieszę się, że nie jestem jedyny!
Simon Whitehead,
1
możesz dokonać przeglądu kodu popełnionego kodu, ale wiesz tylko, że możesz zapobiegać meldowaniu się, dopóki po sprawdzeniu nie będzie tak, że ludzie będą go używać dokładnie w ten sposób. Zasady korporacyjne na całym świecie zostaną napisane, więc jest to obowiązkowe, a następnie stanie się kolejnym wąskim gardłem w procesie wkurzania programistów.
gbjbaanb,
5

Mam bardzo pozytywne doświadczenia z korzystaniem z TFS 2012. Konfigurowanie serwera TFS jest dość łatwe, automatyzacja kompilacji CI jest bardzo prosta i łatwa (a kompilacja odprawy Gated jest po prostu niesamowita. Nie udało nam się osiągnąć tej samej funkcjonalności z Team City). Interakcja w zespole jest również bardzo przejrzysta i prosta. Możesz łatwo powiązać swoje zameldowania z elementami roboczymi TFS, zarządzać zaległościami, śledzić defekty, przeglądać kody i tak dalej. Jest nawet wbudowany komunikator =)

Pamiętaj jednak, że jeśli przyzwyczaiłeś się do przepływu pracy JIRA, skonfigurowanie przepływu pracy TFS może być trudnym zadaniem. Sugeruję przyjęcie jednego ze wstępnie zdefiniowanych przepływów pracy TFS. Będziesz także musiał zachować Confluence jako bazę wiedzy lub przełączyć się na SharePoint, ponieważ w TFS nie ma wbudowanej wiki.

TFS jest znacznie tańszy, jeśli masz subskrypcję MSDN (uważam, że większość firm deweloperskich pracujących ze stosem technologii MS ma ją), w tym przypadku masz TFS za darmo.

Myślę, że nie ma powodu, aby nadal używać narzędzi stron towarzyszących, jeśli wszyscy programiści pracują z Visual Studio. TFS zapewnia zintegrowany, solidny, ale łatwy w użyciu system ALM. Z przyjemnością odpowiem na twoje pytania, jeśli masz jakieś.

Andrei Zubov
źródło
1
dziękuję bardzo za twoją opinię. Używamy BizSpark, który, jestem pewien, że zawiera TFS. Chyba jedyną rzeczą, którą chciałbym od ciebie, są jakieś negatywy, tylko po to, żeby to zważyć. Cieszę się, że mogę pozostać z Confluence, ponieważ naprawdę nie lubię SharePoint.
Sam
System powiadamiania o zmianach w TFS jest nieco prostszy niż w innych rozwiązaniach (na przykład Tor testowy ma znacznie bardziej solidny system). W TFS otrzymujesz powiadomienia tylko wtedy, gdy przypisany jest Ci element roboczy, nie możesz na przykład subskrybować zmian dotyczących określonego elementu roboczego. Myślę, że nie jest to duży problem w sprawnym procesie pracy, ale jeśli polegasz w dużej mierze na powiadomieniach w procesie pracy, może to być uciążliwe. Kontrola źródła wymaga trochę czasu, aby się przyzwyczaić. Zwłaszcza jeśli przyzwyczaiłeś się do poleceń wiersza poleceń GIT. Ale myślę, że rozgałęziona wizualizacja jest warta wysiłku.
Andrei Zubov,
-3

Ludzie powinni wiedzieć, że TFS to nie tylko VCS, to ALM .

Wydaje się, że wiele osób chce po prostu VCS, ale pójdź po TFS, to zły sposób.
W przypadku CVCS nadal wolę SVN.
W przypadku solo lub open source wybierz GIT.

Ale TFS2012 nie jest zły, łatwo zrozumieć na scalanie / rozwidlenie, a następnie SVN.
A usługa tworzenia zespołu jest bezpłatna dla 5 użytkowników / nieograniczone, prywatne repo.

Klient jest również darmowy, eksplorator TFS oparty na VS2010 i jest bezpłatny.
W przypadku Eclipse ma wtyczkę Eclipse - TFS wszędzie.

Nie widzę w tym żadnego problemu z kosztami.
TFS express (bezpłatny) może współpracować z SQL Server Express (bezpłatny).

Cheung
źródło
1
Jak to odpowiada na zadane pytanie?
komara