You can't put ten pounds of shit into a five pound bag
--Anyone who has tried
When Kent and I wrote Planning Extreme Programming, we included
this whimsical quote to help get the essence of what planning is
about. One of the big problems with software development is that
people have little sense of what can actually be done in finite
time. Too often we see lots of functionality rammed into a bag with
no understanding about whether it will fit. Human desires being what
they are, the bag is usually too small. One of the things I really
liked about Kent's planning approach was the simple mechanism to try
to deal with this. The principle is really very simple. You divide up the project's time
into iterations. You divide up the requested functionality into
features (or stories, as XP likes to call them). You estimate how
much work each feature takes to do. You keep track of how much you
get done in each iteration, and you don't put more features into an
iteration than will fit. XP's release planning is about deciding which
features go in which iterations. Like many things, this is a human process. At a recent conference
talk my colleague Tim Mackinnon described co-locating a few traders
with the development team made a huge difference in helping them get a
realistic sense for what could be built. The traders still did their
trading full time, but the informal communication that happened
through co-location made all the difference. People often characterize agile methods as being
anti-planning. Yet it was the quality of the planning that was one
of the most impressive things about Extreme Programming when I first
came across its larval state. In particular the simple nature of
the plan made it hard to slip extra features into the project
without having to face their consequences. This is the essence of
the adaptive planning of agile methods - the plan changes frequently
but in a controlled manner. If you want to add a feature you always
have to ask 'what do I take out to make room?' So if you see
features added to an agile project without that thinking, without
space being made for them; you can safely conclude that the planning
is being done badly.
|