New Options for Business
Extreme Programming offers your business an option that businesses do not often have: the ability to steer a software project to a successful, on-time, delivery.
The software development process has become very opaque to most members of management. It’s almost as if it’s on purpose, with all these components and infrastructures and tiers. Rendered unable to see business progress amid all these buzzwords, management has tried two basic approaches. Neither has worked very well.
The Old Way
One approach is to require the teams to produce “artifacts”. These artifacts are at least visible, and they seem to have some relationship to the situation. Analysis documents prove that someone has thought about the situation; requirements documents make clear what we want; designs show that someone has figured out how to do it; test reports show that someone has worked out how to find out whether the thing actually works.
Just Do It
Another common approach is to lay out the requirements and then tell development when to be done. Some more “enlightened” management groups may instead require development to say when they’ll be done.
How's That Working for You?
You have probably heard, as we have, that there are organizations out there that can make these approaches work, on time, every time. However, even if they did work, what you’ll get is, a year from now, exactly what you wanted a year ago. More commonly, what you’ll get is a lot of paper that no one really understands or uses, and a program that comes in too late, over budget, and still not reliably delivering what you really need.
That might be why you’re here. For sure, it’s why we’re here.
There is Another Way
On your projects, the paper milestones of analysis, requirements, designs, and test plans may seem not to be helping you. On your projects, asking development to call their shot a year or more out, and then expecting them to make that shot, may seem not to be working for you. There is another way, and here’s what it is:
- Extreme Programming teams deliver running, tested features, week in and week out, not just paper documents pointing to a program that will be written someday in the future.
- XP teams have an easy-to-measure velocity: the rate at which they are delivering completed, tested, features.
- XP teams break big features down into small bite-sized chunks, and they can do those chunks in any order that makes business sense to you.
- Finally, XP teams can estimate how long it will take to do each chunk, and those estimates are actually good enough to be useful to you!
New features, fully tested, week in and week out, each one with an accurate estimate of cost, and done in whatever order you want. What good is that? It changes the face of software development. It lets you really manage the project, that’s all. Let’s demonstrate how it works:
Pack of Cards
Pick up a deck of playing cards. Value the Aces low, at one point, and the Kings high, at 13. Now lets do some project management.
Think of the 52 cards as representing the 52 features you want in your next project. And suppose that, like most projects, you want the product in six months, but your programmers can only do about one feature a week. There are 364 points of value in your project, and the project is going to take a year to get all those points.
What will happen at six months? Well, if your programmers work as many do, there won’t be anything useful implemented in six months. Even if they could ship something in six months, it will probably only have half the value, or about 180 points. That’s not very good. We need a better deal.
What if you didn’t have to ship randomly? What if you could ship any 26 cards: what’s your possible score then? It’s 266! That’s right, you can ship 266 points out of 364 in the first six months!
What if software development could be like that? Almost three-fourths of the value in half the time? Well, software development can be like that. That’s what XP is about.
The Bottom Line
The Extreme Programming process gives management true control over software development. You can choose features within projects, and even across projects, for maximum business value. You can package features into as many small releases as you want, each one complete, fully tested, reliable. For perhaps the first time, you can actually manage your software development.
Take a card, any card. Your Extreme Programming team will do it next.