Visual Studio Team Foundation Server 2010 (TFS) je již třetí verzí softwaru pro týmovou spolupráci při vývoji aplikací a řízení jejich životního cyklu – ALM (Application Lifecycle Management). V aktuální verzi doznal mnoha významných změn. Učinily z něj nástroj, který uspokojí jak velké týmy vývojářů rozmístěných po mnoha koutech světa, tak i jednotlivce pracující na projektech samostatně nebo v opravdu malinkých týmech o dvou, třech spolupracovnících.
Malé týmy a jednotlivci se ovšem s TFS nejen v našich končinách dlouho míjely, v zajetí mýtu, že jde „jen“ o komplexní a robustní nástroj pro velké společnosti. Možná to i byla víceméně pravda v předchozích verzích, ale TFS 2010 v sobě skrývá sílu, kterou může využít doslova každý vývojář, kterému záleží na úrovni jeho práce. Rádi bychom vás přesvědčili, že stojí za to si s TFS 2010 začít, zkusit si práci s ním, nebo se alespoň nechat pozvat na akci, kterou představím v samém závěru článku. Možná začnete vyvíjet software v úplně jiných dimenzích a v TFS poznáte „společníka“, který vám opravdu vydatně pomůže.
Pojďme se podívat na ty slíbené mýty. Celá produktová skladba Visual Studio 2010 prodělala řadu změn, o kterých jsme psali v článku Visual Studio 2010 a licence. Připomeňme jen ve zkratce, že Microsoft se rozhodl zcela opustit terminologii specializovaných „týmových“ edic a vrátil se víceméně k modelu, který tu byl předtím. Existuje tedy samotné Visual Studio 2010 Professional a pak v několika dalších variantách s předplatným MSDN (Professional, Premium, Ultimate, Test Professional), což ale vůbec neznamená, že by se „týmový charakter“ produktu někam vytratil. Naopak! Všechny jeho součásti nabízejí velmi těsnou provázanost a dohromady tvoří celek, ze kterého je však možné si vzít jen to, co daný vývojář nebo tým zrovna potřebuje. Navíc je velmi dobře obousměrně provázán s některými aplikacemi ze skupiny Microsoft Office, jako je Excel a Project, díky čemuž dostává každý do ruky nástroj, se kterým se mu nejlépe pracuje a který i důvěrně zná. Ale zpět k zažitým mýtům o Team Foundation server:
Není pravda, že
…je drahý
Není. Team Foundation Server je nyní součástí každého Visual Studia s předplatným MSDN (Professional, Premium, Ultimate; a také nově přidané edice, která by neměla uniknout vaší pozornosti, Visual Studio Test Professional with MSDN). Licence TFS je určena pro produkční použití a je v těchto edicích Visual Studia navíc doprovázena i licencí CAL – tedy přístupovou klientskou licencí pro TFS. Pokud ještě nemáte předplatné s MSDN, můžete si zvolit například Visual Studio Professional 2010 with MSDN Subscription, za které zaplatíte v tříleté smlouvě Open Value necelých patnáct tisíc korun ročně, což není pro profesionálního vývojáře nijak omračující částka. Během předplatného máte zároveň nárok na nové verze Studia i TFS, pokud budou uvedeny, a tato úroveň MSDN vám přinese i SQL Server Developer Edition a všechny operační systémy (desktopové i serverové) spolu s Toolkits, Software Development Kits a Driver Development Kits. Ani vývojáři, kteří se obejdou bez Visual Studio with MSDN Subscription, nemají cestu k TFS nijak komplikovanou. Mohou si koupit krabicovou verzi za necelých třináct tisíc a získají tak TFS s přístupem až pěti uživatelů. K serveru navíc může přistupovat i více uživatelů, pokud mají vlastní licenci TFS CAL.
…je příliš komplikovaný na instalaci i správu
V tomto směru se změnilo asi nejvíce. Microsoft v nové verzi hodně investoval do zjednodušení instalačního procesu a do konfiguračních průvodců, kteří proces nasazení usnadňují. V rámci instalace je možné si vybrat BASIC verzi konfigurace Team Foundation Serveru 2010, která nevyžaduje ani Reporting Services SQL Serveru ani Windows SharePoint Services. I následná správa a konfigurace prošly příjemnými změnami. Vše je omezeno v podstatě na databáze SQL Serveru, které je navíc možné velmi snadno přenášet mezi různými servery.
…vyžaduje serverovou infrastrukturu
Ani to už není pravda, ačkoliv je kvůli bezpečnosti uložených dat rozhodně lepší spoléhat spíše na malý server, než svěřit veškerou svoji práci výhradně jednomu počítači – tím navíc velmi často bývá notebook, jenž je daleko zranitelnější než desktopové řešení. Díky tomu je pravděpodobnost, že přijdete o práci, kterou jen velmi těžko nějak nahradíte, daleko nižší. TFS 2010 bez problému běží na klientském OS (Windows Vista SP2, Windows 7) jak v 32bitové, tak i 64bitové variantě. Ze serverových OS je podporováno vše od Windows Serveru 2003 SP2. Jako úložiště TFS vyžaduje Microsoft SQL Server, ale vystačí si i s edicí Express, která je i volitelnou součástí instalace. Kdykoliv je pak velmi snadné přejít na libovolnou vyšší edici SQL Serveru, což umožňuje plynulý růst od jednotlivce až po velký tým, kterému chod TFS zajištuje několik serverů v rámci serverové farmy. Detailní systémové požadavky pro TFS 2010:
- Windows Vista SP2 (všechny edice vyjma Starter) a novější
- Windows Server 2003 SP2 a novější (instalace na Server Core není podporována)
- SQL Server Express 2008 a novější
- Windows SharePoint Services 3.0 SP1 nebo novější
- IIS 6 a novější (hostuje portál a pak i služby, nezbytné pro Team Explorer a Team Explorer Everywhere 2010)
- procesor 2.2GHz nebo rychlejší; 1 GB RAM pro x86; 8 GB místa na disku
…obsahuje složitou funkcionalitu, kterou využijí pouze týmy vývojářů
Tato část bude jistě nejtěžší na přiblížení a přitom je klíčová pro přijetí Team Foundation Serveru 2010 samostatnými vývojáři či mini-týmy. Sám patřím mezi příležitostné vývojáře webových aplikací a TFS mne zaujal již ve verzi 2008, než jsem se však odhodlal blíže s ním seznámit, objevila se nová verze. Na tomto místě své určité liknavosti jedině děkuji, protože verze 2010 je daleko přístupnější a umožňuje začít s využíváním produktu podstatně snadněji. Protože jsem byl ale hodně ovlivněn marketingovou vizí složitého a robustního „meganástroje“, dopřál jsem si nejprve potěšení pobýt celý den ve společnosti dlouholetého vývojáře, který TFS již od verze 2008 aktivně využívá, a to jak v desetičlenném týmu, tak i osamocen jako vývojář malých projektů. Ten mne jednoznačně přesvědčil, že TFS už i v minulé verzi byla pro „netýmové“ vývojáře cesta, kterou má velký smysl jít. Jen je třeba začít s tím nejsnáze použitelným a postupně si přibírat víc, nepodcenit seznámení s metodikou, až se z něj stane opravdu velmi užitečný a nepostradatelný pomocník v práci nad vývojem aplikací.
Co TFS dává každému vývojáři?
TFS rozhodně není jen nástroj na správu kódu, ale plně podporuje vývojový cyklus aplikace pečlivě po celou dobu. Ukrývá ohromný potenciál, jehož kompletní šíři opravdu ocení jen týmy o více lidech a zejména různých rolích (vedoucí vývoje, designéři aplikací, vývojáři, testeři…). Jednotlivcům a mikrotýmům ovšem přináší prostředky, jak odvést klientům co nejlepší práci. Je tedy zejména pro ty, kdo svůj business staví na solidním partnerském vztahu se zákazníky. Nabízí možnosti, na které vývojáři s Visual Studiem bez TFS jen velmi těžko dosáhnou.
Nástěnka Project v rámci portálu SharepointServices nabízí graf plnění úkolů (task burndown), přehled požadavků (product backlog), nedávné změny zanášené do databáze zdrojového kódu (check-in), nedávná sestavení (build) a celou řadu dalších informací o aktuálním stavu projektu.
Co byste neměli přehlédnout (Kudy na to?)
Hned zkraje musím po pravdě přiznat (a nepodceňujte, prosím, tento krok), že je nutné se dobře seznámit s terminologií a rámcově s používanou metodikou vývojového procesu. Bude to nejpravděpodobněji MSF for Agile Software Development v5.0, která je oproti druhé metodice obsažené v TFS 2010 (MSF for CMMI (Capability Maturity Model Integration) Process Improvement v5.0) jednodušší. K dispozici jsou i další metodiky, například úplně čerstvě se do finální verze dostala velmi oblíbená metodika Scrum, kterou pro TFS najdete ke stažení na webových stránkách o Application Lifecycle Managementu pod názvem Microsoft Visual Studio Scrum 1.0.
Detailní informace o metodikách včetně podrobné dokumentace najdete na stránkách „Process Templates and Tools“ v rámci webu Visual Studio Developer Center. Upřímně, pokud na počátku nevěnujete určitou přípravu studiu metodiky, kterou budete používat, tak se poměrně brzy dostanete do slepé uličky a celé TFS neprávem zavrhnete. TFS také neosloví vývojáře, kterého nezajímá, co se bude s projektem dít v budoucnu, jak dlouho na projektu a jeho jednotlivých částech pracoval, zdali vůbec na konkrétní zakázce něco vydělal nebo se jeho cena za hodinu přiblížila 20 korunám… Jsou i vývojáři, kteří si netouží práci jakkoliv plánovat a je jim celkem jedno, jak kód aplikací vznikal, jestli ho ještě někdy dohledají a budou v něm moci co nejefektivněji dělat nějaké změny. Neřeší, jestli jsou schopni zákazníkovi dodávat včas aplikace, případně ho informovat o tom, jak práce na zakázce pokračují. Vývoj s TFS je totiž velmi předvídatelný, přináší bohatě dokumentovaný průběh celého procesu vývoje a testování a umožňuje včas upozorňovat na těžko splnitelná očekávání.
Metodika do prostředí TFS přináší informace, s jakými typy položek (Work Items) se bude pracovat, jakých stavů mohou jednotlivé WI nabývat a jaké jsou mezi nimi vztahy. Také zavádí určité workflow a celou řadu předdefinovaných reportů a dalších doplňků zejména do portálu, který kompletně práci nad jednotlivými projekty prezentuje. Každou metodiku je možné upravovat a přizpůsobit tak individuálním potřebám. Microsoft na to dokonce poskytuje nástroj v rámci TFS Power Tools, nicméně velmi doporučuji to nedělat, tedy určitě ne hned zpočátku. Jakýkoli zásah do metodiky může způsobit následně problémy v ohromné řadě navazujících míst, jako je TFS WebAccess a zejména pak výstupy v podobě reportů, předdefinovaných Query i případně použitého portálu v rámci SharePoint Services.
Instalace
Instalační proces je velmi jednoduchý, neboť při něm na rozdíl od předchozích verzí nedochází k vůbec žádné konfiguraci. Instalační balík si s sebou nese jak volitelné Windows SharePoint Services, tak SQL Server 2008 Express, bez něhož se pro změnu neobejdete, neb je používán jako jediné úložiště nejen vlastního kódu a veškerých metadat spojených s projekty, ale i veškeré konfigurace. Zálohovat pak stačí pouze patřičné databáze SQL Serveru. Při instalaci si můžete vybrat zjednodušenou verzi TFS, označenou jako BASIC, která má volitelné jak SharePoint Services, tak službu pro sestavování a překlad kódu – Build Service. Instalaci portálu na platformě Windows SharePoint Services zvolte, pokud chcete mít přístupný dashboard k jednotlivým projektům, chcete zákazníkům zpřístupnit detailní informace o vývoji a nebo pracujete ve více lidech a chcete sdílet a verzovat dokumenty, které s prací na daném projektu souvisí. Pro jednotlivce tato komponenta až tak moc nepřináší a proto je možné ji vynechat.
Po instalaci se automaticky spustí konfigurační wizard, který vás jednoduše provede konfigurací a vytvoří nezbytné základní objekty, jako je výchozí Collection. V této fázi také budete potřebovat přístup k SQL Serveru, pokud jste si při instalaci nezvolili i přibalenou Express verzi. Pak následuje konfigurace služby Build Service a máte hotovo.
Teď si můžete prostřednictvím Team Foundation Server Administration Console prohlédnout, co všechno a kde běží, popřípadě donastavit oprávnění dalším uživatelům nebo skupinám, či změnit konfigurace jednotlivých služeb TFS. Veškerá další činnost se již odehrává z Visual Studia a dá se říct, že nikam jinam po celou dobu vývoje ani nemusíte.
Obrázek zachycuje sešit aplikace Excel, který obsahuje User Stories a k nim přiřazené Tasks s jejich vlastníky, množství zbývající práce a celou řadu dalších užitečných informací o stavu projektu. Díky těsné integraci s aplikací Excel je možné tyto položky snadno upravovat, vytvářet nové a změny uložit zpět na TFS. Uživatelé mohou s informacemi v TFS pracovat pomocí různých nástrojů, podle toho co jim je pro dané operace pohodlnějš.
TFS a Visual Studio 2010
A jak se vlastně s kódem v rámci týmových projektů pracuje? Ve Visual Studiu založíte nový Team Project tím, že z nabídky File > New Team Project spustíte průvodce, který vás celým procesem jednoduše provede. Nebudu zde již zabíhat do podrobností, které je stejně nejlepší si ozkoušet na vlastní kůži. Jen se pokusím přiblížit rozdíly mezi projektem uloženým jen ve složkách nějakého disku, nebo spravovaným v repository TFS. Je dobré vědět, že Visual Studio vždy pracuje se soubory „vytaženými“ z TFS do tzv. Workspace, což je namapování projektu v TFS do lokální složky, kde bude Visual Studio fyzicky zacházet s kódem. Veškeré operace Check-in a Chek-out se pak odehrávají mezi TFS a těmito namapovanými složkami.
Práce se zdrojovým kódem
Team Foundation Server poskytuje velmi komfortní správu zdrojového kódu a umožňuje s ním dělat řadu operací. Kontrola verzí zdrojového kódu dovoluje větvení i slučování kódu, a tím usnadňuje spolupráci mezi různými skupinami. Je například možné, aby každá skupina pracovala na vlastní větvi zdrojového kódu, a po ověření provedených změn je možné je sloučit do finálního kódu. Zajímavou funkcionalitou je také uložení kódu v TFS mimo ostatní kód pomocí Shelve/Unshelve, kdy vývojář neblokuje práci ostatních a přesto je kód bezpečně uložen i dokumentován. Po následném otestování může být s převzetím většiny atributů zařazen opět do společně sdílené části TFS. V možnostech práce se zdrojovým kódem (Version Control) je TFS velmi silný nástroj, který nabízí vše potřebné.
Work Items – plánování práce
Vedle práce se zdrojovým kódem byste měli hned zkraje obrátit pozornost k druhému významnému pilíři, na kterém práce s TFS stojí, Work Items (dále jen WI). Využití WI sice vyžaduje od vývojáře určitou schopnost si práci plánovat, nicméně na druhé straně mu přináší ohromné množství výhod, o kterých jsme již mluvili. Při práci s WI je potřeba dobře se seznámit s jejich jednotlivými typy, což je předmětem zvolené metodiky, a všemi jejich stavy a hodnotami. V jednodušší metodologii se setkáte s WI jako User Stories, Tasks, Bugs, User Feedback, Feature Request. Pečlivá práce s WI a jejich typy, stejně jako pečlivé popisy jednotlivých operací a rozvržení práce nad celým projektem pak přináší detailní odpovědi na otázky o stavu projektu: Jaké požadavky musí software splňovat? Které úkoly ještě nejsou dokončeny? V jakém jsou stavu? Jaké jsou jejich vzájemné priority? Jaké testy byly vytvořeny a jaké chyby tyto testy odhalily? A zejména: jaký je vzájemný vztah těchto informací?
Build Service
V neposlední řadě je třeba zmínit asi nejpokročilejší součást TFS,a tou je Build Service. Tato komponenta je opravdu spíš pro týmy, nicméně i pro dlouhodobější projekty jednočlenných týmů má své velké opodstatnění. Zmiňme se proto jen velmi stručně, co Build Service v TFS obnáší. Proces dávkové kompilace a sestavení (zkráceně také sestavení) může být složitý a může mít mnoho kroků. Jeho výsledkem je přeložená a sestavená aplikace (build). Komponenta Team Foundation Build může ověřovat kvalitu přeloženého kódu spuštěním ověřovacích testů (build verification test). Může ji také distribuovat na předem určené počítačové systémy včetně celé řady vedlejších činností (příprava databází, tabulek, dat…) a tím ji například automaticky zpřístupnit testerům.
Pozvánka a „dárek“ na závěr
Ti z vás, kteří jsou zvyklí na některý software pro správu kódu, tuto funkcionalitu v TFS velmi rychle adoptují a jistě ocení zejména bohaté možnosti a úžasně příjemnou integraci přímo ve Visual Studiu 2010. Uživatelé produktu Visual Source Safe mají přechod zpříjemněn nástrojem pro dávkový převod z VSS do TFS, který je součástí VS 2010. Jedná se o nástroj z příkazové řádky, který na základě popisu projektu v .xml jej celý převede i včetně řady metadat.
Pro ty, kdo nikdy s nástrojem na správu kódu nepracovali, a ty, kdo by chtěli od TFS ještě něco víc, musím přiznat z vlastní zkušenosti, že může být poměrně těžké do něj proniknout a začít ho plně využívat.
Dvě dobré zprávy
Jedna říká, že Microsoft v České republice investoval do překladu knihy Professional Application Lifecycle Management with Visual Studio 2010 z nakladatelství WROX. Bude dostupná na konci září a rozhodně to je velmi dobrá cesta, jak se TFS vydat naproti.
Druhá, ještě lepší zpráva je, že Microsoft na podzim tohoto roku připravuje celodenní workshop, který by měl cestou názorného příkladu ukázat, jak může při vývoji efektivně využít TFS jednotlivec, popřípadě malinký tým. Workshop zahrne vše od vlastní instalace až po vytvoření fiktivní zakázky a práci s ní ve Visual Studiu 2010.
Nepochybně to je ta nejlepší cesta, jak se stát konkurenceschopnějším a zároveň pobořit mýty o tom, že se TFS pro sólisty vůbec nehodí. Každý účastník workshopu obdrží i výše zmíněnou knihu.