On a different thread, I ran into another interesting analysis:
Good point: Exceeding time and budget are symptoms of failure, not the causes.
"There’s a lot of discussion about failed software projects. I’ll make a bold assertion here:
"Most software projects don’t in fact fail because they’re over time and over budget, but because they implement poor solutions to poorly understood problems."
— Jeff Patton, writing in his new book "Agile Development Outside-In"
This leads us to a lean practice at work: "the 5 whys". When something is going wrong, you ask "why?" But the reason itself has a cause, and you'll probably have to dig down 5 or 6 layers before you find the root cause and can eliminate it:
- The project is late and over budget. Why?
- Because we had to re-implement the XX and YY modules. Why?
- Because 'Business' said the solution did not meet their requirements. Why?
- Because the work flow was convoluted and complicated. Why?
- Because the developers did not understand the requirements. Why?
- Because the requirements specified screens and widgets, but did not communicate the purpose of the functionality.