Jeżdżę sobie ostatnio po TFSie jak Heniek po łysej kobyle, ale żyć z tym trzeba. Poniżej kilka tipów, które uczyniły moje życie trochę lepszym. Z przeogromną wdzięcznością poczytam w komentarzach kolejne sugestie dotyczące dalszych uproszczeń.
1. git-tfs
https://github.com/git-tfs/git-tfs
Ten projekcik zdecydowanie na pierwszym miejscu. Ale ostatnio o nim się osobno rozpisałem.
2. Telerik TFS Work Item Manager
http://www.telerik.com/agile-project-management-tools/tfs.aspx
Narzędzie mające pełnić rolę alternatywy dla VS. Jest darmowe, jest w becie, jest strasznie wolne (dużo wolniejsze niż VS!), ale pozwala na dwie bardzo przydatne rzeczy. Po pierwsze: na edycję wielu tasków naraz. Po drugie: oferuje dość fajny ekran do planowania iteracji. W skrócie: wybieramy iterację, którą będziemy planować, potem typ workitemów do porozrzucania, następnie atrybut użyty do zliczania "pracochłonności", a na koniec ustalamy sumę wartości owego atrybutu dostępną podczas iteracji. Po takiej konfiguracji możemy dragiem i dropem poprzepisywać wybrane itemy do iteracji, ciągle monitorując jej "zapełnienie". Daleko temu rozwiązaniu do ideału, ale i tak jest wygodniejsze niż robienie tego samego w VS lub Excelu.
3. "Compare" zamiast "Open" w oknie zmian
Po wciśnięciu shift+enter zamiast enter otwiera się "compare…" a nie cały plik. Life saver.
4. Zmiana zachowania doubleclick w oknie zmian
Punkt 3. to dla mnie za mało, chciałem mieć "compare…" jako domyślną akcję dla double click oraz enter. Okazało się, że się da.
Ale musimy zmodyfikować rejestr:
Path: HKCU\Software\Microsoft\VisualStudio\<ver>\TeamFoundation\SourceControl\Behavior
Value: DoubleClickOnChange (DWORD)
0 == view as the primary command (default)
1== compare as primary command
(za http://www.richard-banks.org/2010/07/how-to-double-click-to-diff-pending.html)
5. Zastąpienie diff/merge tool
Tools -> Options -> Source Control -> Visual Studio Team Foundation -> Configure User Tools. Ja wpisałem tam sobie ulubiony TortoiseDiff (tylko po instaluję TortoiseSVN).
Bez tego… cusz, ani rusz.
(za http://fooberry.com/2008/10/24/replacing-tfs-diff-tool/)
6. Team Foundation Server Power Tools
http://visualstudiogallery.msdn.microsoft.com/c255a1e4-04ba-4f68-8f4e-cd473d6b971f
Znowu: bez tego żyć się nie da. A w szczególności:
- alerts explorer (right click na root) – skonfigurowałem tak, żeby dostawać maile o jakichkolwiek zmianach w moim projekcie – dzięki temu nie muszę sam wchodzić do TFS co jakiś czas i sprawdzać czy coś się zmienilo… czyli push vs pull notifications :) ; co prawda BARDZO mi brakuje "inteligentnych" powiadomień znanych w każdego właściwie innego systemu (typu "Tester 1 has assigned you a new bug", "Developer 1 has finished a feature" itd), ale może znajdzie się i na to jakiś plugin… albo może w któryś weekend "sam się napisze"
- work item templates – szablony do edycji wielu wierszy naraz, niezbyt wygodne ale czasami niezastąpione
- integracja z shell – do ctx menu dodają się jakieś opcje, ale w sumie ich nie używam (z powodu pkt 1. w tym poście)
7. Separacja "project management" od kodowania w IDE
W miarę możliwości wychodzę z proj mgmt poza VS. Tak jest o wiele wygodniej – w moim "koderskim" VS mam otwarte tylko pliki z kodem, a wszystko inne wyrzucam na zewnątrz. Połączenie tych dwóch aktywności w jednym narzędziu to jakaś porażka…
Próbowałem TFS Web Access – strasznie wolne. Wspomniany Telerik – strasznie wolny. Na chwilę obecną najbardziej wydajnym/wygodnym rozwiązaniem okazuje się druga instancja VS, dedykowana dla TFSa. O wiele bardziej wolałbym jakieś szybkie, intuicyjne UI w przeglądarce, ale póki co – nie mam. Może w kolejnej wersji będzie to wyglądało lepiej, skoro będzie ona stała na Sharepoincie 2010 a nie 2007?
Dzięki tym krokom z TFSem… nawet jakoś da się żyć. Co prawda nie jest to życie idealnie, ale nie jest bardzo źle. Po zastąpieniu kontroli wersji gitem, co jest krokiem zdecydowanie w całej procedurze najważniejszym, zostajemy tak naprawdę ze znośnym (choć czasem mega-denerwującym, ale mnie każdy soft czasami mega-denerwuje) narzędziem do operacji CRUD na obiektach "task".
Mam nadzieję, że komuś to pomoże. I że pod spodem coś ciekawego jeszcze podrzucicie:).
Coś niekoniecznie miłego o TFS11 http://www.richard-banks.org/2011/09/tfs11-and-source-control-improvements.html
pawelek,
Thx. Jak widać nie ma co czekać z przesiadką na gita, chyba że mamy duuużo czasu. Pewnie przynajmniej ze 2 lata zanim dvcs pojawi się w TFS, i kolejne 2 zanim będzie go się dało bezboleśnie używać:).
Odnośnie punktu 7. Nie korzytałem, ale ostatnio się natknąłem: https://tfspreview.com/. Wydaje mi się, że warto zobaczyć sam filmik i poddać rozwiązanie własnej ocenie.
Apropo pkt 5.
Można ściągnąć samego TortoiseDiff jako standalone.
Nie wiem natomiast, czy jest to dokładnie ta sama wersja co w instalatorze.
http://sourceforge.net/projects/tortoisesvn/files/Tools/1.6.7/
Odnośnie project management to wystarczającym wydaje się być spięcie TFS z MS Projectem – Rozpisanie różnych funkcjonalności w WBS i wysłanie jako WorkItemyśledzenia na bieżąco.
Co więcej rozbicie zadania na podzadania pozwala (a wręcz wymusza):
1) developerowi na zastanowienie się nad zadaniem.
2) managerowi na śledzenie postępu prac (check-iny na podzadania)
Dodatkowo można tak zmodyfikować szablon WorkItemu, żeby miał np pola do estymowanego czasu, ale i realnie zużytego. Od ręki mamy ogromną bazę wiedzy pozwalającą na dokładniejsze estymowanie w przyszłości.
Generalnie odnoszę wrażenie z Twoich wpisów, że robisz wszystko, żeby nie używać TFS, zamiast dopasować go do swoich potrzeb. Narzędzia są dla ludzi, a nie ludzie dla narzędzi! A TFS (mimo wielu wad – ale które oprogramowanie ich nie ma) jest potężny i elastyczny.
swieka,
Akurat nie robię NIC aby nie używać TFSa, ponieważ nie mam na to wpływu. Używam i staram się jak najbardziej podnieść swoją produktywność w zaistniałej sytuacji. Nie chcę mieć nic wspólnego z tfsową kontrolą wersji, ponieważ jest to najgorsze rozwiązanie tego typu z jakim miałem do czynienia, ale z tym sobie poradziłem – i o tym pisałem.
Do rozbicia zadań na podzadania nie jest potrzebny msproject, wszelkie metody zarządzania zadaniami można stosować i w pliku txt wersjonowanym razem z projektem. Ja odnoszę się do wygody użytkowana tfsa i chcę ją podnieść do akceptowalnego poziomu.