UPDATE: Thanks to Lorenzo, I fixed a few errors about TFS Licensing.
Lately I’ve been designing and implementing the migration of development team from Visual Source Safe, with Excel based bug tracking and no defined development policies to TFS.
I’ve only been a user of TFS so it was the first time for me to dig into planning and licensing issues, process templates, policies, build and all that stuff.
During my searches I collected the link and resources I read, and I’m posting them here so other could benefit from this list as well.
Since installing TFS can be a bit complicate at first, if you only want to test and play around with it Microsoft published two virtual machines with TFS pre-installed.
- Visual Studio® Team System 2008 Team Foundation Server and Team Suite VPC Image
- Visual Studio® Team System 2008 Team Foundation Server VPC Image
The first is a 5Gb VPC image, with all you need to test the TFS: TFS, SqlServer, Visual Studio Team Suite and Office ‘07. And it also includes the VSTS Hand-on Labs to help analyze all the aspects of TFS.
The second contains only TFS, but without all the client software and without the Hand-on labs.
I personally recommend the first one, since it’s self sufficient both for testing and for showcasing TFS to customers and colleagues.
Let’s start with licensing since it might seem simple at first, but once you start looking at it, it turns out to be a real nightmare.
Let’s start with the Visual Studio Team System 2008 Licensing White Paper, which is the official licensing document wrote by Microsoft. Unfortunately this is not always clear and a bit too much verbose, so a guy from South Africa, Willy-Peter Schaub, tried to make everything a bit clearer, and he wrote a little FAQ with all the common issues about TFS licensing.
But he went even further and wrote some nice flowchart that help deciding which version of TFS+VS are needed for your environment, and which and how many licenses you need. The PDFs are available for download from www.drp.co.za. (This is a DNN repository and there are not direct link for the download: the docs about licensing are the ones named “Microsoft Team System Licensing Overview” and “Microsoft Team System Environments”).
With every MSDN Premium you also have a TFS Workgroup Edition, which is the same as the Standard Edition, just with only 5 users allowed. For more info: A Hitchhiker's Guide to Team Foundation Server Workgroup Edition.
And if you are doing continuous integration with unit testing on a machine different from the TFS Server, remember that you don’t need another license, since the TFS Build server license is already covered by the developers’ licenses: Licensing Team System editions for your build machine. You need a new license on the server only if on the build server you have version of VisulStudio for which you don’t have a developer’s license.
When it comes to installing TFS a very document is the Team Foundation Installation Guide for Visual Studio Team System 2008 written by Microsoft. I heard horror stories by people that installed TFS, and at the end they all suggested to stick to the step-by-step guide provided by MS since any deviation from it can lead to strange behaviors.
The tricky part is that in order to make everything work TFS needs Sharepoint and Reporting Services: but if you follow the step-by-step guide everything will be all right.
Pimping up the installation
Once you installed TFS there are still other thing you might want to install:
- the firsts and most important is Power Tools pack: it includes some interesting add-ons like the Process Template Editor to help you modify with a GUI the process templates to better suit the need of your process (instead of tweaking the XML manually)
- to allow people to access and modify WorkItems, see reports and do everything you can do with the Team Explorer, but from a web interface, there is the Visual Studio Team System 2008 Web Access, sometimes referred to as TSWA
- sometimes you only need external people to submit bug and add workitems, but not to have full access to the system. To address this scenario there the Work Item Web Access, also known as WIWA: this allows people to add items and edit their own items, but will not be able to see items added by other member of the team. People using this tool don’t need a CAL.
Maintaining and administration
I’m not in this phase yet, but I found these two links about administering TFS and about the day to day operations needed to keep the server up and running in good shape.
- Operations Guidance for Team Foundation Server: this article is for TFS2005, but its concepts apply to TFS2008 as well. It also includes a comprehensive list of more detailed kb articles.
- Team Foundation Administrator's Guide: still about TFS2005, this CHM covers lots of different topics, from capacity planning to customization.
- Team Foundation Server Administration Tool: adding a group or user to a Team Project requires that you add him both to TFS, to Sharepoint and Reporting Services. This little tool automates this boring process by synchronizing the three platforms.
Thanks to my colleague Pieter de Bruin for the first two links.
A few concepts
TFS is a big leap forward compared to VSS, here are the docs I found that most helped me with setting up the environment and outline the best practices.
Patterns & practices Team Development with TFS Guide: available both for online reading and for download as PDF, it covers all the aspect of TFS, from a overview to the architecture of the system, to the usage of the source control sub-system till more advanced topics like customization of process templates and the set up of automated builds.
Again from the p&p is the TFS Branching Guidance, which explains the possible branching policies when a iterative process is used. A nice diagram of a possible branching policy is available from the previously mentioned www.drp.co.za website (the title of the this document is “Microsoft Team System Branching”).
A last concept that might scare end users since is different from the “local working folder” of VSS, is the concept of Workspaces. Here are two nice articles that complement the MSDN documentation:
TFS ships with two process templates, but if you are following an Agile methodology there are other process templates available to download for free.
One is the developed on CodePlex, and is named Light Weight Scrum 2008. A diagram of the workflow of this process is available on the already mentioned www.drp.co.za website (look for a document titled “Light Weight Scrum Process Template”)
The other is a commercial (but free) process template developed by Conchango and it is Scrum for Team System. If you adopt this process template, you can also use a nice dashboard that is based on it: ScrumDashboard.
This is a pretty nice Ajax based web app featuring the burndown chart, and a nice user stories virtual wall.
Some the TFS MVPs and other TFS addicted community members are writing their thoughts and tips on specific portal: teamsystem rocks. This is also a community portal, with discussion forums, tutorials and downloadable documents, videos and extensions.
I’m pretty sure I missed some other links, so, if you think I missed something important, feel free to post a comment.
I also want to thank Steve Andrews for helping me with some problem I encountered during the process.
And if you read Castellano there is also the blog from my Spanish colleague from Avanade, El Bruno.