Team Foundation Server in Agile world

TFS is widely used in the .net development. This blog will talk a bit about TFS and Agile.

Why TFS?

TFS is marketed as an alternative to Rational Clear case, its trying to give a broad range of features and workflows that are simular so its not a huge jump to large organisations. The use case in these types of environments is developers working on branches and checking into trunk or even a team branch infrequently, hence to ceremony is high as its a big event.

Once started the iteration development, these ceremonies now become burden.

Key Functionalities

The essential part of TFS is made of three parts:

  1. Work Item Tracking
  2. Team Build
  3. Source Control

Work Item Tracking 

The current TFS and TFS 2013 are started to supporting Enterprise Agile oriented features. Examples are:

  • Virtual Story Wall
  • Agile Portfolio Management (aka Epic in Jira, Mingle and other tools)

What you can do with the item tracking functionality is you can actually create story, issue, task or defect in a pre-defined work flow. One tip here is to do not define over-complex process upfront, as later on when you want to change it, it will become difficult. There is a “process editor” included with TFS power tools, you can change the work flow in fly, yet the user experience is not very nice.

The corresponding alternative could be Jira or Mingle.

Team Build

Team Build is the system that is supposed to build, test and deploy your code. When review this kind of capability, need to think about whether this be enough to support continuous delivery, at least continuous integration.

The current Team build could not easily support the build pipeline, finish one build then trigger the next dependent build; could not pickup the artefact to run further steps. I might overstate this inability as there might be workaround to do is, but this will start a door of workaround nightmares.

Alternative could be Go, Jenkins and TeamCity.

Also, with TeamBuild, the process of getting a build job to do something other than the default (which is very likely we would do, as using NUnit rather than MSTest) is rather painful and horrible involving visual designers and enormous XML files.  The other tools mentioned above, will let me change this by supplying simple script files for each build step.


Source Control

Giving the nature of Agile iteration development, that means the team needs to work in a fast pace; the work needs to be integrated more often. One of the big pain of TFS is the server side merging (caused by people check-in changes without latest copy of code) and looks like Microsoft realizes this as well. TFS is now supporting Git client, yet still has its own limitations of working together with it’s own repository.

Alternative could be Git, bitbucket, mercurial or SVN. 



Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: