Home
The Spec
The Language
The Practice
The Books
Links

Programmer... When will you be done?

In the article: The Challenges of Bringing Lean to Software Development, Mary Poppendieck starts with a great line: "Software is not about making something, it's about making something work." As usual, Mary get’s right to the core of the issues again in this essay.

She address the problem of bad software analogies as well as proposes a new one: She suggests that solving a software problem is similar to attempting to automate a truck’s drive across America. She explains the problem is obviously very complicated because of all of the things that the truck could encounter along the way, and that approaching the problem in small pieces actually makes much of the task possible; although some parts of the task may not be discovered for some time to come.

Poppendieck says, "In software development, we have been asked to solve too many truck-driving problems. And when it turns out that we have been handed an impossible problem, it’s usually the developers – not the process or the scale of the problem – that are held responsible for the failure."

An important thought she introduces in this essay is the problem of attempting to make the logic of a system without the benefit of having system itself, and the added complexity it causes.

She says, "Lean development requires a visionary leader and a sponsor willing to fund the vision rather than a promise that is unlikely to be kept. However, such a sponsor can be hard to find; sponsors always seem to want a 'plan.'"

She says, it is this "plan" or "forecast-driven development" that is the problem. Software development should be "feed-back driven" in order to make software development more predictable.


Troy Taft is the Principal Consultant and founder of Troy Taft Consulting, a firm specializing in high value software development. He also authors a free monthly newsletter called Software Matters.

Copyright 2007 Troy Taft All rights reserved, you may print this article for your personal use.