different processes depending on iteration

I was giving a demo on VSTS to management today and they hit me with a question that I wasn't really prepared for. They want to be able to have different processes for one team project depending on iteration. I stated that I didn't think this was available in VSTS, but I am wondering if I gave answered this question correctly. If the iteration is very small, say only a couple days to code, test and deploy they want it to use a more agile process. If the iteration is much larger they want to use a more formal process. It seems like this issue would have been talked about before and I just haven't run across it.
[621 byte] By [JasonD.Camp] at [2008-2-4]
# 1

As I understand it, you define what an iteration is. For some, an iteration may be a fixed unit of time, such as a week, or a month. For others, the iteration may be defined by some abstract unit of time, such as a particular release goal (alpha, beta, final, etc.). Or, it could be both. For example, in Scrum, an iteration is called a sprint and lasts 30 days.

As noted in MSF for CMMI Process Improvement, "Small iterations allow you to reduce the margin of error in your estimates and provide fast feedback about the accuracy of your project plans." Also, "Each iteration should result in a stable portion of the overall system." However, it doesn't state how long that iteration should be.

It does make sense to adjust the definition of "iteration" based on team project. What are the goals of the project? How frequently should the project be stabilized to ensure you're on the right track to delivering a finsihed project? Both MSF for Agile Software Development and MSF for CMMI Process Improvement are flexible enough to support your definition of iteration.

RobCaronMSFT at 2007-9-9 > top of Msdn Tech,Visual Studio Team System,Visual Studio Team System - Microsoft Solutions Framework (MSF)...
# 2

It is very difficult to discuss this topic when I have very little background in CMMI and I don't yet have my hands on the VSS CMMI process, but let me ask a couple of questions anyhow. (If you have any recommendations on books to read, I'm all ears.)

"When you choose the process at project inception, you are also choosing the workflow and work products, which then drive how the system behaves."

Microsoft's recommendation seems to be that some portions of the process should remain static over the life of the team project like the makeup of a particular work item type and work streams. Other portions of the process seem to have a little more flexibility to change over the lifetime of the team project like adding and removing check-in policies. The portion of the process that I am having trouble comprehending is whether the workflow is enforced by VSTS from iteration to iteration, or if that responsibility lies on the project manager. If a technical design doc is required for a large iteration, but not for a production bug fix, can this be enforced by VSTS or is it up to the project manager to add and remove those tasks at will? If these types of processes are not enforced by VSTS, how could one maintain CMMI level 3 without manual enforcement?

JasonD.Camp at 2007-9-9 > top of Msdn Tech,Visual Studio Team System,Visual Studio Team System - Microsoft Solutions Framework (MSF)...
# 3

So, the answer is that you can change the process from one iteration to the next. You'd want these changes to be incremental such as adding a new field to a work item or a small change to the process guidance. In an agile process, such as MSF for Agile Software Development, this is called adaptation. As you encounter new situations on the project, you "make stuff up" to deal with them. In this way, a process lives rather than grows frail and brittle. This is also part of our agile philosophy of "stretch to fit".

Now, you wouldn't want to completely change the process from one iteration to the next. Could you imagine the effect that this would have on a project? But you don't want developers to have to "consult the process tome" every time a special cause variation is encountered ("special cause variation" is a great phrase that my friend David Anderson uses to describe "events out of the ordinary"). These are the rare events that we see once in a blue moon on a project that cause our processes to achieve the "shelved tome" status when it tries to cover all of them. "See we did cover that on page 2037" is what the process experts say when they occur. Nobody ever read past page 30 if at all. Process by intimidation.

Adaptation in agile processes use the principles and mindsets (some call these values) to find a solution to a special cause variation and then quickly move on. There are also times when a change is incorporated back into the process itself. For example, you may find that you have governance such as SOX that requires a special review. You can certain add a new checkin note for SOX review (yes/no).

So, the answer is yes. You can change your process in VSTS and MSF from one iteration to the next. You don't do it the same way that you originally create the process in the first place. You don't upload a new process template but migrate work items from one version of the process to another. You replace the process guidance on the team protal.

RandyMiller at 2007-9-9 > top of Msdn Tech,Visual Studio Team System,Visual Studio Team System - Microsoft Solutions Framework (MSF)...

Visual Studio Team System

Site Classified