Archive for the 'Agile with Scrum' Category

Understanding Team Foundation Server (TFS) Pricing

I used to think Team Foundation Server was expensive. As it turns out, it is very affordable and sometimes free. There are three different versions of TFS: Team Foundation Server, Team Foundation Server Express Edition and Visual Studio Online.

TFS Express Pricing

TFS Express is a free, and can be downloaded here and installed on any computer with Windows 7 or higher. There are some limitations to TFS Express which include the following:

  • It is limited to 5 users.
  • Project data can only be stored in SQL Server Express Edition, (this means any single project would be limited to 10 GBs).
  • Can only be installed on one server, (full versions of TFS can be split across multiple servers for performance and redundancy).
  • Some advanced analytics are not supported.

As you can see from the limitations, TFS Express won’t work for large teams and large projects. However, it would be fine for smaller teams and departmental projects.

Visual Studio Online Pricing

Visual Studio Online is Microsoft’s cloud-based version of Team Foundation Server. See the article “What is Visual Studio Online?” for more information. Visual Studio Online has two options, a basic option and an advanced option which includes some advanced features. The basic option is free for the first 5 users, then $20 per month for additional users. The advanced option is $60 per month for all users.

However, there is no charge for developers who already have Microsoft Developer Network (MSDN) subscriptions. Essentially, if you have an MSDN subscription you already are paying for Visual Studio Online (or TFS) whether you use it or not. A lot of companies are paying for MSDN, but aren’t using TFS because they think it is expensive, not knowing that they are already paying for it.

Team Foundation Server Pricing

If you want a local install of the full version of TFS you need a server license and each developer needs a client license. The server license can be purchased for about $500 and the client licenses are about the same.

However, just like with Visual Studio Online, TFS is included with MSDN subscriptions. So, if you already use Microsoft tools you may already be paying for it.


Getting started with TFS is easy and affordable. If you’re working with a team of 5 or fewer people, you can use TFS or Visual Studio Online for free. If you are an MSDN subscriber you are already paying for TFS.

Team Foundation Server Training

Team Foundation Server makes it easy to manage and track work on any type of project, and this is just a small sampling of the capabilities of TFS. Visual Studio Online makes getting started with TFS easy, and for small teams it is free. To learn more about TFS you may be interested in Learning Tree course 1816, Agile Software Development with Team Foundation Server.


Doug Rehnstrom


Managing Projects with Team Foundation Server (TFS)

Recently at Learning Tree, we wrote a training course on Team Foundation Server (course 1816, Agile Software Development with Team Foundation Server). It seemed natural to use TFS to manage the course writing process.

Creating the Team Project

We used the online version of TFS, called Visual Studio Online to manage this project. Visual Studio Online was perfect for two reasons. First, it is free for up to five users (and a course development team is that small). Second, all the members of the team work in different locations, thus everything needs to be accessed online. (See the post “What is Visual Studio Online?” for more information.)

We created a team consisting of the three people (the author, technical editor and product manager). Every task must be assigned to a team member. We also added a team member named “1816 Team”. This is for tasks that need to be done by the team collectively, not done by an individual.

Defining Team Members

Dividing the Project into Iterations

At Learning Tree we have a number of milestones when developing a course. We have a course planning meeting. A few weeks later there is an alpha meeting. Then, there is the beta of the course, and lastly there is the first run of the course. Before the end of each of these milestones there is a long list of tasks that need to be accomplished.

These milestones provided natural iterations for the project. These iterations and their start and end dates were entered when defining the project.

Defining Iterations


Adding Work to the Backlog

The next step was to add everything that needs to be done to the backlog. Each item is assigned to a team member (or the team collectively) and an estimate of effort is assigned to each item as well. An example backlog item is shown below.

Adding Backlog Items


To accomplish a backlog item, a number of specific tasks need to be done. So, each backlog item is divided into tasks. Like backlog items, tasks are assigned to team members and their effort is estimated. An example is shown below.

Dividing Items into Tasks

Each backlog item is assigned to an iteration. This is just a matter of dragging and dropping each item into the appropriate iteration using the online tool. The final results look as shown below.

Product Backlog


This might seem like a lot of work, but in the grand scheme of things it’s not a big deal. All tolled maybe we spent a couple hours on this. It’s also something that can evolve; at any time items can be added, removed or changed.


Tracking Project Progress

The obvious question is, “why would I want to do all this?” First, it makes it easy for team members to know what they need to do. Second, it helps the manager know whether the team is on schedule or not.

In addition to the backlog, there is a Kanban board view of the project. The Kanban board graphically depicts what each team member is working on, what they have finished and what they have left to do. Each team member just needs to drag items into the appropriate column and update the work remaining for each item as they do their work. The Kanban board can be organized either by team member or by backlog item. See the screenshots below.


Kanban Board Organized by Team Member

Kanban Board Organized by Backlog Item


Team Foundation Server Training

Team Foundation Server makes it easy to manage and track work on any type of project, and this is just a small sampling of the capabilities of TFS. Visual Studio Online makes getting started with TFS easy, and for small teams it is free. To learn more about TFS you may be interested in Learning Tree course 1816, Agile Software Development with Team Foundation Server.


Doug Rehnstrom



Setting Up a Continuous Integration Server with Team Foundation Server (TFS)

What is Continuous Integration?

The goal of continuous integration is to allow developers to check in their code, compile it, run the tests, and deploy the application all in a single step. To accomplish this goal a number of things must be setup.

First, a version control system. Programmers check their work into the source control. Changes from each developer are merged to ensure there is a single master version of the program.

Second, the team needs automated testing. This is done using a unit testing framework. There are many such frameworks for every modern development language.

Third, there must be a test environment that the application will be deployed onto. Much of today’s software is written using Web technologies. Thus, the team will need a Web server they can deploy to for testing their application.

Fourth, a build server must be set up. The build server detects when code is checked in, compiles it, and then runs the tests. If all the tests succeed, the build server will deploy the application.

Sounds like a lot of hard work? Microsoft Team Foundation server makes it easy.

Team Foundation Server Version Control

TFS has two versions control systems. One is called Team Foundation Version Control and is a Microsoft product. The other is Git, an open source version control system. When a project is created with TFS one of these version control systems is selected. Both integrate with Visual Studio, and programmers can easily check in their code changes whenever they choose to.

Automating Builds with Team Foundation Server

Team Foundation Server includes a build service. To tell the build service what to do, you create a build definition. This is done from Visual Studio Team Explorer. Click on the Builds button and the select New Build Definition.

Team Explorer

When defining a build you need to specify a trigger that determines when the build runs. Select Continuous Integration and the build will run every time a programmer checks in his code.

Build Configuration

Visual Studio will automatically detect your unit tests and include them when running the build. That’s easy. The trick is to automate the deployment of the application. The easiest way I’ve found to do this is by specifying a Publishing Profile when defining up the build. This is done on the Process tab of the Build Configuration dialog. See the screen shot below. Notice, the command tells the build service to deploy when it runs and use a publishing profile called “LocalDeploy” to determine where to deploy the application.

Automating Deployment



Defining a Publishing Profile

Publishing profiles are created as a part of a Web project in Visual Studio. They specify where the Web application will be deployed. In the screenshot below, the publishing profile specifies that the application should be deployed to a virtual directory on the local machine. This could be any machine though, and any number of publishing profiles can be created in a Web project.

Publishing Profiles


Team Foundation Server Training

As you can see, setting up a continuous integration server using Team Foundation Server is easy and flexible. To learn more about TFS you may be interested in Learning Tree course 1816, Agile Software Development with Team Foundation Server.


Doug Rehnstrom

Learning Tree International

.NET & Visual Studio Courses

Learning Tree offers over 210 IT training and Management courses, including a full curriculum of .NET training courses.

Free White Papers

Questions on current IT or Management topics? Access our Complete Online Resource Library of over 65 White Papers, Articles and Podcasts

Enter your email address to subscribe to this blog and receive notifications of new posts by e-mail.

Join 29 other followers

Follow Learning Tree on Twitter


Do you need a customized .NET training solution delivered at your facility?

Last year Learning Tree held nearly 2,500 on-site training events worldwide. To find out more about hosting one at your location, click here for a free consultation.
Live, online training

%d bloggers like this: