Team foundation : Area and iteration

I write this entry because I don't know the best way to use area and iteration in Team Foundation.

Area

For the area, there is no problem, nearly everyone says that an area is a part of the project, a component for sample a project's areas into a project can be the UI, a webservice with sub areas.
There is an article on msdn blog about when to use Team project and area "When to use Team Projects"

Iteration

For the iterations I have read 2 solutions, one is that each iteration is a version of project so V1.0, V1.1, ...

The other solution is that the iteration is analyze, development, test, demo, release, ...

I found an idea on this post "My 2 cents on Areas and Iterations in Team Foundation Server" to combine the 2 as this :

\Project
  \V 1.0
     \dev
     \test
     \demo
  \V 2.0
     \dev
     \test
     \demo







Team Foundation structure

Labels:

One advantage with Team Foundation is that it offers a lot a functions such as label, branching, merge, ... but how to use it?

My First approach, bad one

image 

My first approach was to create a branch and to work on this branch and before each release, make a merge to the main and then delete the branch. So if a bug occurred into the current release, I can correct it into the main.

But there are problems:

  • I delete the working branch before each release, by this way I always lose the history of my source files
  • If a bug occurs into the current release, I correct it into the main, but how to merge it into the working branch? It's possible to merge a branch to a baseline, the version from which the branch comes from, not in the other direction, so unable to apply the correction into the working branch.
An other approach

image

This approach is better, it's not the only one but this is the simplest way for little team.

The main is the current working branch and after each release, in this case we don't merge but we do a branch with the name of the release (version), so I keep my history into the current working branch and I can merge a bug fix from a release branch to the main/working branch.

There is a good document which explains this structure with other on Codeplex

Mots clés Technorati : ,,,,