by Asim Jalis
These insights are related to seeing up close how the Microsoft
development process works.
The fundamental problem with the way we were doing XP (and this
might be the way a lot of organizations do XP) is that there is
no appreciation for the significance of a release. A release is
assumed to be just a bunch of iterations blended together. It is
precisely the sum of its parts (the iterations) and nothing more.
Related to this is the idea that stories create user value. Or
that each iteration delivers value. In fact both of these
statements are false. There is an illusion of value. But there is
no real value. It's a game.
Let's take a really really simple example. Suppose I am writing a
commercial printf library that implements the printf function for
Java. Say there is some small demand for this. So suppose I
implement %d first. This creates almost no value. No user would
be interested in investing in downloading and using a function
that just implements %d.
A program that is useful is much much more than the sum of its
parts. The features work in concert to create value. The function
is not a linear slope, but rather it is a kind of a non-linear
step function. It is all or nothing.
Each release consists of a bundle of mutually reinforcing
features that together deliver real value.