RE: Managing Extreme Programming

"Dan Rawsthorne" <[email protected]>
Newsgroups gmane.comp.programming.extreme-programming.adoption
Organization Net Objectives
Message-ID <001901c2bb29$c1920260$0202a8c0@drdanxp>
IMHO, We have some serious mixing of apples and oranges here. Comments
imbedded below.

 

Dan  ;-)

Dan Rawsthorne, PhD, Sr. Consultant
www.netobjectives.com
[email protected]
office: 425-641-0814

Net Objectives' vision is effective software development without
suffering. Our mission is to assist software development teams in
accomplishing this through a combination of training and mentoring. 

-----Original Message-----
From: Dinwiddie, George [mailto:[email protected]] 
Sent: Monday, January 13, 2003 8:30 AM
To: '[email protected]'
Subject: RE: [xpAdoption] Managing Extreme Programming

 

Dan, I don't agree.  I think I'm beginning to see how this works.
(Glen, please correct any mistakes in this description.  I know that I'm
over-simplifying, but I don't want to be incorrect.)

 

At the start of the project, you have a bunch of user stories, or some
other description of what the project intends to build.  You have some
idea of the value of this work.  Because the value of this work is
likely to be very difficult to determine via objective means, you're
very likely to use the simplifying assumption that it's worth what it
takes to produce it--else we wouldn't be doing it.  So, Budgeted Cost of
Work Scheduled (BCWS) is assumed to be the value of the completed work.

 

Of course, having a BCWS means that you know what work you have
scheduled. It requires a scope. So, you have fixed budget and a fixed
scope up front in order to have a BCWS and do this kind of calculation.
Right away we know that this won't apply to XP, as XP assumes scope and
cost are independent variables, and the existence of a BCWS makes them
dependent on each other.

 

In order to measure progress, you have to break the work up into smaller
pieces and distribute the value over these pieces.  Let's say for easy
visualization that you do this down to the level of the User Stories.
We take the total BCWS and divide it by the sum of all the "estimation
points" for the user stories to get a $/point value.  Then we can figure
the value of any User Story by simple multiplication.  I'd guess that
we'd want to do some other calculations to validate this $/point value
and make sure it's reasonable when look at from different angles.  There
may be other variations that don't assume that each point has the same
value, perhaps using the Business Value (showstopper, need,
nice-to-have) assigned to each story.

 

This works if we have all the estimation points done up front, and we
have a stable velocity. There are two things that are being asumed:

*         you know how many estimation points there are in your project

*         you know how much time it "should" take to develop an
estimation point 

Neither is true. The first requires a BDUF, and the second requires
up-front knowledge of the velocity. Now you could tune your velocity so
that you know the second one, but that would (of necessity) change the
total number of points in your scope. Basically, you're trying to fix
all the variables at once. At least in XP, where the quality metric
isn't allowed to move.

 

As development proceeds, User Stories are completed.  The value of these
completed stories ($/point * story points) are summed to give the
Budgeted Cost of Work Performed (BCWP).  Since we've made the
simplifying assumption that Budged Cost is equal to Value, this is also
our Earned Value.  We can also measure the Actual Cost of Work Performed
by adding up all the Pair Hours for the tasks to accomplish this story.
If Actual Cost > Budgeted Cost, that's a Bad Thing (negative Cost
Variance) and could trigger an investigation by somebody not involved in
the day-to-day activities of the project.

 

BTW, you are calculating XP's velocity here. That is, BCWP/(number of
iterations) = Velocity. Now by doing the division BCWP/ACWP we are
calculating (estimation points)/(work hour), and comparing it to some
constant (in this case, 1). This is a bad thing, as it assumes knowledge
of velocity up front.

 

If stories are added and deleted, or if estimations are changed, this
may change the BCWS.  If the change is of significant size, I'd expect
it to trigger a review of what's going on.  Is the project growing?  If
so, should other stories be deleted to keep the cost under control?
Were the initial estimates wrong and the original BCWS a fiction?  If
so, should the entire project charter be reexamined to ensure it's worth
the updated costs?

 

Actually, the BCWS is about money, not stories. What will change is your
story count and how much you want to spend. In other words, your
"required" velocity. If this changes to match your observed velocity,
you win. If your observed velocity is not fast enough, you cancel the
project. That's all it's really about here, IMHO.

 

Adding or deleting stories should not change the ACWP or the BCWP.
Changing the estimations might change BCWP, e.g., if the fully-loaded $
cost per pair hour were changed to account for unexpected overhead
costs.

 

I can see the value of using EV to manage from a distance, from the
upper levels.  It provides a concise and consistent view of the projects
and gives early warning when the project is headed into the weeds.  The
enabling technology are the simplifying assumptions and estimates that
are made to reduce a project to these simple figures.  The difficulty is
in ensuring that these assumptions and estimates to not produce
fictional figures that obscure instead of illuminate.

 

One way that figures are traditionally manipulated to obscure the real
conditions is in the "percent complete" estimation of a single "chunk of
work."  Glen is avoiding this by adapting the XP rule that a story is
either done or it isn't.  This, in turn, drives a need for using smaller
"chunks of work" than might be traditional.  XP User Stories are pretty
small chunks, and going to them increases the work of estimating cost
and value for each chunk.  It probably also increases the accuracy, for
the same reason it increases the accuracy of the programmer estimates.
It's easier to estimate small things.  Each estimation error is also
smaller, and the errors tend to cancel out when there are more of them.

 

How did I do, Glen?

 

 - George

 

 

 Dan Rawsthorne  said: 

IMHO, Expected Value makes no sense relative to XP. In order to
calculate EV you need to have a measure of the total value to measure
against. In our terms, you would need to have all the stories already,
so that we could measure "how much" of the system we have done (or plan
to do this iteration). In other words, calculating EV requires that you
be able to say something like "we've completed xx% of the total
functionality" and that is an impossibility in a pure (no BAUF) XP
project. Of course, you could have the case where the PHB has a
spreadsheet as a result of a BAUF, but only hands them to the Developers
a little at a time...

 

Dan  ;-)

Dan Rawsthorne, PhD, Sr. Consultant
www.netobjectives.com
[email protected]
office: 425-641-0814

Net Objectives' vision is effective software development without
suffering. Our mission is to assist software development teams in
accomplishing this through a combination of training and mentoring. 

-----Original Message-----
From: Dinwiddie, George [mailto:[email protected]] 
Sent: Friday, January 10, 2003 2:31 PM
To: '[email protected]'
Subject: RE: [xpAdoption] Managing Extreme Programming

 

Glen,
> > So Earned Value is the sum of the values of all user 
> stories for which
> the
> > acceptance tests pass?
> 
> [>] The cumulative cost incurred to produce the delivered 
> product as well as the incremental costs for each deliverable 
> milestone (inch pebbles for the XP style project), is held in 
> the BCWP.

Do you mean the accumulated cost for what has been delivered plus the
estimated cost for that yet to be delivered?  If not, please restate
this
sentence as it's unclear to me.

> A key pillar of EV is that the PM knows at all times what 
> percentage of the physical work has been accomplished, the 
> percent complete, as related to the total job.
> 
> The emphasis is on "physical" percentage complete, not the 
> percent of hours, or percent of stories -- unless each storey 
> and each hour produces the same "value."

I can see that each story has a "value" (what it's worth to the
customer)
and each story has a "cost" (what it takes to produce the system that
supports it), but what is this "physical" dimension?

> > That's reasonable, but we need a dictionary to translate between the
> two
> > languages--in both directions.
> 
> [>] For EV it is EIA 748B and Quentin Fleming's book Earned 
> Value Project Management, Second Edition.

No, I mean a translation dictionary, such as a
French-English/English-French
dictionary you'd use in language school.

> > I still don't understand your meaning of "digitize."  Do you mean
> "convert
> > to numbers?"  Do you mean "convert to a set of booleans?"
> 
> [>] It's a metaphor. (ah s@#t I sound like Ron). The metaphor 
> is to take what is considered in traditional PM methods an 
> analog process -- time passes so progress must be taking 
> place. Change this metaphor to one of "inch pebbles," "fine 
> grained" deliverables, say on daily or 3 day boundaries, and 
> "sample" the continuous S-curve. Either the sample produces a 
> 100% booked value for the increment or a 0% earned value. 
> 100% if it passes the requirements test, 0% if it does not. 
> The S-Curve (see the EV on one page) then looks like a large 
> number of fine grained step functions == digitized.

So it's just the notion of measurable accomplishment.  Right?

> > Is it assumed that the cost of development is equal to the value of
> that
> > which is developed?
> 
> [>] Ah, now you're on to something - maybe not. In that is 
> the case the task is Level of Effort == cost equals value. In 
> other cases the value may not equal the cost - cost variance 
> or schedule variance. The code component is say worth $100 
> (1/10 of a $1,000 function point). But it took $110 to get 
> it, so we have a Cost Variance (CV) of ($10), but it came in 
> on time so the SV is 0.

So how is the value estimated?  Looking at the chart, it appears that
the
"value" is considered to be the amount that was budgeted for production.
In
other words, that code component you mention is worth $100 to the
customer
just because it was estimated up front that it would cost $100 to
produce
it.  If that's true, the Cost Variance devolves into a synonym for
Estimation Inaccuracy.

This troubles me, as I prefer some independent measure of the value of
the
thing produced.  I can see, however, that for many projects,
particularly
DOD ones, it would be very difficult to produce a value figure any other
way.  But it still troubles me.  In business the value might be more
objective, such as the Present Value of a stream of cost savings over
the
expected life of the product.

Am I on track here?

> > Can you express the dollar value of a completed User Story?  Or the
> dollar
> > value of a requirement in the Functional Specifications document?
> 
> [>] We've dollarized the individual story at the beginning of 
> the iteration. The same can be made for a specific 
> requirement or FP. Take a look at 
> http://www.testablerequirements.com/testablerequirements/index
..htm for some background.

That's going to take more time than I have at the moment.  Can you
suggest a
page in that matrix that contains the meat of the estimation of value
for a
testable requirement (which I take to be roughly synonymous to a User
Story)?

- George



To unsubscribe from this group, send an email to:
[email protected]



Your use of Yahoo! Groups is subject to the Yahoo!
<http://docs.yahoo.com/info/terms/>  Terms of Service. 

 


To unsubscribe from this group, send an email to:
[email protected]



Your use of Yahoo! Groups is subject to the Yahoo!
<http://docs.yahoo.com/info/terms/>  Terms of Service. 






Yahoo! Groups Sponsor



ADVERTISEMENT
 
<http://rd.yahoo.com/M=219695.2850578.4203976.1925585/D=egroupweb/S=1705
007207:HM/A=1400463/R=2/id=noscript/*http:/ad.doubleclick.net/clk;504627
9;7790548;y?http://www.ameritrade.com/o.cgi?a=cjx&o=roc&p=/offer/25.html
> 

 
<http://us.a1.yimg.com/us.yimg.com/a/am/ameritrade/120402_am_ban_off_x82
_x_300x250_6.gif> 


 
<http://us.adserver.yahoo.com/l?M=219695.2850578.4203976.1925585/D=egrou
pmail/S=:HM/A=1400463/rand=552943005> 


To unsubscribe from this group, send an email to:
[email protected]



Your use of Yahoo! Groups is subject to the Yahoo!
<http://docs.yahoo.com/info/terms/>  Terms of Service.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.