By Chuck Fitzpatrick
Agile Evangelist and Project Manager
Cloud City Development
Excerpted from Chuck’s posting
Question: What’s the best methodology?
Answer: It depends.
In the early decades of software development, the emerging industry followed the models of engineering that had served the world well for all of modern history. Collectively, those methodologies can be described as “anticipatory.”
As time passed, the software development community found that many large projects failed because those assumptions proved to be largely incorrect. Product consumers have no idea what they want—they change their minds constantly, so our ability to predict what they want is . . .impossible.
There have been many attempts to address the underlying issues that cause failures in product development, whether they are software or non-software products. The attempts that are proving to be successful turn those earlier assumptions on their heads:
1. Make implementation a part of requirements discovery
2. Incrementally grow the system
3. Flatten the cost curve: If you can keep the cost curve flat, then not knowing what to build today is less of a concern, since the cost to build it later, when you know more, is the same.
I am fascinated with the many ways that humans have created to make the difficult bits and pieces of creating new products move forward in the best possible manner.