Archive for the ‘Measures’ Category
-
Musings on (Agile) Metrics
Last week I attended a really interesting session at Agile Open NoCal about what are good metrics for Agile teams. Since I spent a lot of time thinking about this when working with Cardinal Health on their Design Excellence program, here are some thoughts I have.
Metrics are a powerful tool to influence behavior. They should be applied judiciously and cautiously to any problem since they ALWAYS create unintended and unexpected behavior. The larger the organization, the more important it is for measurement since that is the way big organizations receive feedback and can adjust their behavior. However, it is unreasonable to insist all metrics are destructive and irresponsible to expect a large business to fly blind without some sort of data.
I tend to think, most people do not understand how to design good metrics or they create metrics that are easy to gather, i.e. using time sheets or something else similarly foolish, or they pick metrics which are valuable to the data collector, not anyone else. I don’t claim to be an expert, but I have some ideas which I think are consistent with Lean Thinking and Agile. There are four guiding principles I can provide:
- The only metrics that matter are the one tied to customer value or satisfaction. All the rest are intermediate measurements.
- The people being measured should have a say in creating the measurement system on which they are judged.
- Apply the Lean concept of Measure Up when creating your metrics.
- The best metrics are temporary. Once the metric has produced the desired outcome, discard it.
Pascal Dennis in his book, Getting the Right Things Done (not my favorite book – long on story, short on specifics), gives some great guidance on the first principle when flushing out the concept of True North. True North is an emotional description of the strategic and philosophical goals of the organization tied to real-life, customer-focused metrics. Not the kinds of metrics middle managers care about or software teams, but the types of metrics that show up in reports to shareholders and are on the minds of the executives and senior leaders. These are the metrics EVERYONE in the organization needs to be focused on and thinking about every day.
In my experience, the people doing the work know what metrics are meaningful to them and which have no impact on their day-to-day activities. To create a powerful measurement system that gives accurate, real-time data, engage the people doing the work in creating this system. In addition, the metrics they come up with, are the metrics on which they are evaluated. The common objections one runs across when developing this idea with middle manager are “what if the workers don’t come up with anything?” or “what if they are not sophisticated enough?” I feel if you explain to the workers what is the True North, the main business metrics, they will come up with meaningful metrics that tells them if their work is contributing to the objectives of the organization. The people who work in the company want the business to succeed (and if you feel otherwise, you have a different, more serious problem).
-
Agile Control Charts
I stumbled across Agile Shrugged today and read a post on how the author experienced a lot of variation in their team velocity. The author did not seem too concerned with all the “sawtooth” behavior of velocity chart because they felt the velocity graph was a “fairly accurate measure of our teams velocity”. Let’s see if this qualitative assessment matches up with statistical process control, one of the Six Sigma tools.
In Six Sigma, a common tool Green Belts and Black Belts use to monitor their processes are control charts. The control chart is an objective measurement tool to determine if the process under inspection can reliably produce what is expected of it in the future. By examining the patterns of the data on the control chart we can understand if the process is “in control” or “out of control”. If the process is “out of control”, then we need to inspect the process, discover the cause of the variation, “mod” the process and monitor the changes with…a control chart.
The diagram below is the velocity data from the team. You can see the “sawtooth”, or oscillation, in velocity over the course of ten iterations. The team does seem to have improved their velocity over time, but we still have an order of magnitude difference in the completed output of the team from week-to-week. Is this significant? Should we care about the oscillation?
To make a control chart, we need to run some basic statistics on the data: compute the mean, standard deviation (σ) and determine the upper and lower spec limits (mean ± 3σ). Here are the results for this data set:
mean: 6.6 ideal days upper spec limit (USL): 24 ideal days σ: 5.8 ideal days lower spec limit (LSL): -10.8 ideal days
Next, we will plot the data on a control chart showing the mean (green line), the USL (red line), 1σ and 2σ (purple lines). I have eliminated the LSL because a negative velocity is meaningless.
Now here is the interesting part: looking at the patterns. Using the Nelson Rules, we can examine the patterns in the control chart to see if the process is “in control” or “out of control”. Here are the rules that I think are relevant for this chart (please review all the rules if you are interested in learning more):
- One point is more than 3 standard deviations from the mean. Nope
- Fourteen (or more) points in a row alternate in direction, increasing then decreasing. Only 8 points so far; maybe something to watch out for.
- Four (or five) out of five points in a row are more than 1 standard deviation from the mean in the same direction. Only 2 out of 5 data points.
What do we find by creating and examining the control chart? Statistical confirmation that our qualitative opinion that our planning process is indeed fine. Great! Keep up the good work!
-
Function Points as an Agile Metric
Dave Nicolette posted an interesting blog post about using function points (FP) as a means to compare productivity between IT projects using different processes. I understand the concept – find a metric that speaks to the audience we are trying to communicate with that allows an apples-to-apples comparison. However, why do I find this still an unsatisfactory answer to the productivity issue?
I tend to think this metric would only be useful for academic types or a research paper. Sure, it is create more evidence that “Agile is great and waterfall is bad”, and how long do we have to wait for this evidence? One business cycle? Since I am on a roll smashing your good idea, I also think the barrier for entry is too high for people wishing to make the case Agile would be good for their organization. Not only do they need to understand Agile practices & techniques, they now need to become FP counters. Now we need to start counting FP on all our IT projects? Is this something our industry has the skill to do? The evidence I have seen shows we do not.
Yes, FP are “good” because ISO has made them the standard, there is clear way to count them (for the people who know) and academics (and attornies) love them. There are real reasons why FP are not used in US business today. I work with the ideal organization (large Fortune 500 company) for FP analysis, they are always hungry for metrics and they do not use FP. I wonder why that is the case? It is not due to a lack of education. There are well-placed, knowledgable individuals aware of this metric, so there must be something else preventing FP. We need to understand why people who know about this metric, can afford the consultants to do the analysis and still do not use the metric. When we overcome those issues, then let’s talk about pushing this metric on Agile teams. In the meantime, let’s stick with “basics” like throughput, takt time or use EVM (as much as I hate it – it is comprehensible to business folks).
-
SOA Measures for Success
One of the sessions I visited today was about what are the correct measurements to determine if your SOA initiative was successful. One of the most interesting statistic from the speaker was this continuum of cyclometric complexity (CC):
CC < 10: "simple" code 10 > CC < 20: "moderately" complex code 20 > CC < 50: "severely" complex code CC > 50: "untestable"He based that experience on a simple equation of:
# of test cases = 2CC-1
Which suggests code with a CC as low as 15 will have 16,384 test cases! Ouch! That has got to hurt considering functional testing only gets you about 20% of test coverage.
I think another valuable observation provided was software reliability is inversely related to CC, the higher the CC, the less reliable the software. The most eye-popping statistic from the talk was the speaker’s observation that if you can refactor your code to have a CC in the 10-15 range, an organization would reduce their maintenance costs by 2 to 5 times!
Finally, these are the ten measures from the talk that I thought I would share with all of you and how one should optimize the measures. The words in the parenthesis are what level the measures speak to.
- Dollars per service -> higher is better (corporate)
- Service vitality index (new service revenue/total revenue) -> ~10%-20% is good (corporate)
- Number of new services/total services -> higher % is better(management)
- Mean time to service deployment -> lower t is better (management)
- Mean time to service charge -> lower t is better (management)
- Service availability -> higher % is better (management)
- Service reuse -> higher % is better (project)
- Cost of not using/stopping the service -> lower $ is better (project)
- Service complexity -> lower CC is better (service)
- Service QA confidence -> higher % is better (service)
Frequent Topics
Agile Agile SD Certified ScrumMaster Coaching Collaboration Communication Conferences Daily Scrum Design Excellence Design for Six Sigma Extreme Programming Games Innovation Games Lean Legacy Code Links of the Week Measures Movies Pair Programming Personal Planning PMI Practices Presentations Product Owner Quality Refactoring Retrospectives Rugby Scrum ScrumMaster SIMSOC Spain Team Test-Driven Development Testing Tools Training Transitions Travel Voice of the Customer
Calendar
| M | T | W | T | F | S | S |
|---|---|---|---|---|---|---|
| « May | ||||||
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | ||||
Recent Comments
- Kenneth van Rumste on Scrum Roles Defined
- Carlton on Scrum Roles Defined
- Kenneth van Rumste on Scrum Roles Defined
User Groups
Archives
- May 2011 (1)
- February 2011 (1)
- January 2011 (5)
- November 2010 (3)
- October 2010 (6)
- September 2010 (5)
- August 2010 (4)
- July 2010 (6)
- June 2010 (2)
- May 2010 (2)
- April 2010 (5)
- March 2010 (3)
- February 2010 (5)
- January 2010 (7)
- December 2009 (8)
- November 2009 (2)
- October 2009 (6)
- September 2009 (9)
- August 2009 (7)
- July 2009 (4)
- June 2009 (3)
- May 2009 (3)
- April 2009 (5)
- March 2009 (6)
- February 2009 (6)
- January 2009 (7)
- December 2008 (10)
- November 2008 (11)
- October 2008 (10)
- September 2008 (4)
- August 2008 (5)
- July 2008 (5)
- June 2008 (8)
- May 2008 (5)
- April 2008 (3)


