Re: Six Sigma and XP Estimation / Planning
"Eric <poetengineer-/[email protected]>" <poetengineer-/[email protected]> Fri, 20 Dec 2002 16:46:37 -0000
| Newsgroups | gmane.comp.programming.extreme-customering |
|---|---|
| Message-ID | <[email protected]> |
At some risk of misunderstanding and misuse of the terminology, let me try to provide a Six Sigma perspective on what I think you are asking. Six Sigma uses various processes, the most popular which is DMAIC (Define, Measure, Analyze, Implement, Control), which is used to improve an existing process. Since most of the work you are discussing seems to involve the development of new software, the more appropriate Six Sigma process would be DMADV (Define, Measure, Analyze, Design, Verify), which is the Six Sigma process for developing new products, processes, services and/or businesses. The Define and Measure step are focused on understanding the business environment and capturing the customer requirements. Six Sigma is very focused on understanding and meeting or exceeding customer requirements. From that perspective, the extremecustomering / XP approach of including a representative of the customer in the development process is fantastic! In the situation under discussion, it appears that the customer requirement that you are addressing is the development time: ===================== "In particular, I'm wondering about the practice of committing to a velocity for iteration X that's equal to the velocity achieved in iteration X-1. As I said earlier, I have a feeling that could be perceived as "shooting low." I wonder if 6S's statistical underpinnings might recommend a different approach that wouldn't put any more pressure on the development team re: unrealistic committments but, at the same time, answer this question plus the question about whether / how many stories should be estimated and in the queue in case the team accomplishes more than initially committed in an iteration." ====================== From a Six Sigma perspective, the issue is one of understanding and modeling the uncertainty - which we equate to variability, or the statistical term, variance. In other words, if you knew with certainty the time it would take for iteration X, given the known velocity achieved in iteration X-1, then there would be no problem with projecting the development time. So, we would approach this as the need to develop a statistical model (also called a "stochastic model") for the development time. There are several ways to develop such a model, but let me start with a fairly simple model that derives from the description you give. Let's imagine the sequence of steps is the iterative process you describe: Iteration 1 ---> Iteration 2 --....-->Iteration X-1 ---> Iteration X --->Iteration X+1.....--> End Now, each iteration occurs at some velocity and consumes some amount of time. One statistical modeling approach would be to assume independence for each of these iterations. You've indicated, and I would also suppose, that these iterations are not independent - they are in fact autocorrelated (correlated with themselves: if you know the velocity of iteration X-1, you might have some indication of what the velocity of iteration X might be). This autocorrelation is part of what you want to understand. To be honest, I'm not at all clear about the nature of the autocorrelation - if I speak in terms of time rather than velocity, then I can argue that the autocorrelation between the time for iteration X-1 and iteration X would be positively correlated:if it takes a long time to perform iteration X-1, it will probably take a long time to perform iteration X. However, I can also argue a negative correlation in terms of time: if I spend a lot of time on iteration X-1, doing a very thorough job, then it might take less time to perform iteration X. So, just to start out, let's make an initial assumption that the iteration times are uncorrelated. With this assumption,we would estimate the distributions of times for each iteration, then use those distributions to project the distribution of the total development time. Now, each of these iteration times would not be expected to follow normal distributions. There is a minimum time that you would need to spend on each iteration - the minimum time could be zero (by contrast, a normal distribution would allow for the possibility of negative development times). There would be an expected time for each iteration, but there would be no maximum time - each iteration could theoretically take forever, although that might make someone a little bit unhappy. However, there would be an estimate of the standard deviation - the uncertainty - of the distribution of time for the iteration; the square of that standard deviation would be the variance. This type of distribution is called a Gamma Distribution. You would obtain an estimate of the gamma distribution of time for each iteration, then obtain a new gamma distribution for the project - it would have a minimum time, equal to the sum of the minimum times for each iteration, a most likely time, equal to the sum of the most likely times for each iteration, and a variance...equal to the sums of the variances for each iteration. Now, there is a way to take this approach, which assumed independence, and adapt it to a situation where there are correlations. If appropriate, I'll go into that later. There are also numerical simulation approaches, using discrete event simulation tools to simulate running through the same sequence of iterations thousands of times, and then seeing a histogram that would be an estimate of the gamma distribution of the total development time from that sequence of iterations. This is a variation of a statistical approach called Monte Carlo simulation. This message is getting long, so I'll try to continue it in a later message. Best regards, Eric Maass Chairman, Six Sigma Steering Committee, Motorola SPS --- In [email protected], "Bill Walton" <[email protected]> wrote: > We're joined now by a real Six Sigma guru. His name is Eric Maass. Eric is Director of Technology Strategy for Motorola's Wireless and Broadband Systems Group. At the same time, he is Chairman of the Six Sigma Black Belts Steering Committee for Motorola's Semiconductor Products Sector. He has a web page at http://www.geocities.com/ecmaass/ for anyone who wants to check out his CV. In a conversation with another 6S guru who hasn't had time to join us I was told "I think you hit the nail on the head. The future is really in a balanced mix of XP and Six Sigma." So I have some high hopes that, in talking with Eric, we may find that XP has an ally in 6S that could bridge some communication gaps with organizations that are doing 6S, or at least think highly of it, but who don't know as much about XP. > > I posed a question earlier about whether / to what extent XP would find support for it's estimating / planning practices in a Six Sigma environment. In particular, I'm wondering about the practice of committing to a velocity for iteration X that's equal to the velocity achieved in iteration X-1. As I said earlier, I have a feeling that could be perceived as "shooting low." I wonder if 6S's statistical underpinnings might recommend a different approach that wouldn't put any more pressure on the development team re: unrealistic committments but, at the same time, answer this question plus the question about whether / how many stories should be estimated and in the queue in case the team accomplishes more than initially committed in an iteration. I also tend to think XP's practice of picking a "best guess" at an initial velocity and then adjusting based on actual results (as opposed to trying to develop a long term timeline that will be difficult to adjust, etc.) may find support in 6S in the context of establishing a baseline. > > Eric is new to XP and has expressed a need to come up to speed on the practices and the terminology. I thought it would be best, since practices are evolving, since there seems to be some variation in practice, and since I'm still researching XP as opposed to actually doing it, to ask you guys to explain the estimating / planning practices you use. Or, if you like, I could explain it as I understand it from my readings and talking to you here and let you correct me as necessary. > > Best regards, > Bill ------------------------ Yahoo! Groups Sponsor ---------------------~--> Get 128 Bit SSL Encryption! http://us.click.yahoo.com/CBxunD/vN2EAA/xGHJAA/NhFolB/TM ---------------------------------------------------------------------~-> To unsubscribe from this group, send an email to: extremecustomering-unsubscribe-hHKSG33TihhbjbujkaE4pw@public.gmane.org Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/