Welcome to MSDN Blogs Sign in | Join | Help

How Microsoft/DevDiv uses TFS - Chapter 2 (Feature Crews)

One of the issues that Microsoft has to deal with on a very large scale is that while they are managing 1200 individual features, all of this works on a single code base. With all that activity going on, how do you maintain the quality of the code base, while allowing individual teams to focus on their features.

Our answer is feature crews. Its a model we adapted from the Microsoft Office team. It looks something like this:

image

When a feature crew (a team of people) is assigned to work on a feature, the lifecycle looks like this:

  1. The feature crew creates a branch of the main source branch, to provide an isolated environment to work on their feature. They are isolated from any churn going on in the source branch, and they isolate everyone else from their work
  2. As they work on the feature, there are two checkpoints. Checkpoints are when they present to management, to ensure management is in the loop of what is being done, and allows management to provide feedback on direction. Checkpoint #1 is about design. Here the feature crew presents how they plan to solve the problem.
  3. Checkpoint #2 is about demoing the functionality. Here the feature crew presents what they actually did to solve the problem.
  4. Once they've completed the feature, the feature crew integrates any changes that have taken place in the main source branch into their branch.
  5. Before they check their changes back into the main source branch, all feature crews needed to meet a set of quality gates. Quality gates included things like "No performance regressions" and "70% code coverage through automated testing".
  6. Once the feature crew had verified they had met the quality gates, they can then check their changes into the main source branch. The quality gates protected the main source branch, ensuring it was always in a near-releasable state.

NOTE: The goal was that a feature crew could complete within 4-6 weeks. (Didn't always happen, but the goal was to keep them short)

We had 16 different quality gates we needed to meet before a feature crew could be called "Done". Some of the meatier ones are below:

image

Quality Gates were the method we chose to ensure that 3,000+ people working on 700+ features on a code base of a bagillion lines of code (I really don't know how big it is, but you get the picture) ... that all that decentralized work could go on, yet maintain a consistent quality level overall.

While all the feature crews were working on their individual features, the entire division was managed to a set of iterations. I believe their were 14 iterations overall. The picture below depicts feature crews branch of the main branch, and integrating back into the main branch. Feature crews overlapped each other and overlapped iterations.

image

At the divisional level, we had Iteration Reviews, were all the teams would tell upper management what they expected to complete in the next iteration and what they actually completed in the prior iteration.

Next Chapter: Implementing the Process using TFS

Published Thursday, April 03, 2008 5:03 PM by Gregg Boer

Comments

# VSTS Links - 04/11/2008

Friday, April 11, 2008 10:41 AM by Team System News

Grant Holliday on TFS Performance Heat Map Reporting Services Report. Martin Woodward on Radio TFS #4...

# How DevDiv uses TFS

Sunday, April 20, 2008 10:57 AM by Jeff Beehler's Blog

Gregg Boer, a program manager on the TFS work item tracking team has started a series of posts outlining

# 【お勧めリンク】TFS 活用法

Sunday, April 20, 2008 11:16 PM by 長沢智治のライフサイクルブログ

先月より、なぜか、Chapter 3 が二つありますが、それはご愛敬として・・・まだまだ続きがあるようですの Teams WIT Tools という TFS の開発チーム(主に WIT: Work Item

# Впервые на экранах: Как создавалась Visual Studio 2008

Tuesday, April 22, 2008 3:22 PM by Дмитрий Лапшин

Подгруппа разработчиков Visual Studio Team System, работающая над отслеживанием рабочих элементов в TFS,

# 【WITブログ(訳)】マイクロソフトの開発部門でのTFSの活用 - 第2章(フィーチャ クルー)

Wednesday, April 23, 2008 5:17 AM by 長沢智治のライフサイクルブログ

# How Microsoft/DevDiv uses TFS - Chapter 5 (Tracking Progress)

Tuesday, April 29, 2008 11:53 AM by Teams WIT Tools

Before we talk about tracking progress, it might be useful to review the feature crew lifecycle as described

# How Microsoft/DevDiv uses TFS - Chapter 6 (Tracking multiple projects)

Tuesday, May 06, 2008 10:50 AM by Teams WIT Tools

In a previous post , I talked about the electronic status report. Basically, our status report was filling

# re: How Microsoft/DevDiv uses TFS - Chapter 2 (Feature Crews)

Sunday, May 11, 2008 6:26 AM by dendor

Can you elaborate on the size of the branch? Do feature teams branch out the full code or is the code structured in a way that they can branch out only small parts?

# Kuidas Microsoft (arendusdivision) kasutab TFS -i

Kes veel ei tea, siis Workitem Tracking vahendite meeskond Visual Studio Team System -i arendusmeeskonnas

# ¿Cómo Microsoft utiliza Team Foundation Server?

Sunday, July 20, 2008 11:40 PM by Guino

Hay una serie interesante de posts que nos explican de que modo la Division de Desarrollo de Microsoft

# How Microsoft uses Team Foundation Server internally

Sunday, August 17, 2008 12:03 PM by Visual Studio Team System (VSTS) Blog - by Neno Loje

A good read: Applying Value Up at Microsoft by Sam Guckenheimer (also available as 60-minute-webcast

# How Microsoft uses TFS

Monday, October 20, 2008 1:37 PM by granth's blog

Part of my job is evangelizing Team Foundation Server adoption within Microsoft. A colleague recently

# Microsoft Process Template

Friday, February 27, 2009 4:08 PM by Ed Blankenship

In December, I had the privilege to be the “MVP in Residence” with the Team System product group. 

Anonymous comments are disabled
 
Page view tracker