- Stage 1: Development Projects Are Unsuccessful
- Stage 2: Developers and Customers Grow Apart
- Stage 3: Agile Process (or Almost Anything, Really) Becomes Attractive
- Incremental Agile Implementation
Stage 2: Developers and Customers Grow Apart
When I first started developing software more than thirty years ago, I worked closely with customers every day to define and implement their requirements. This became unfeasible as systems got larger and more complicated and as hardware got more powerful. Formal techniques for gathering requirements, modeling functionality, and modeling designs were implemented. The relationship between my customers and me became more formal, more distant, and less collaborative. The waterfall approach and the increasing rigor of techniques sealed the formality. This process became known as "over the wall." The customer would document his or her requirements, throw it over the wall to the IT organization, and wait for the resultant system. From a customer perspective, all that happened in between was magic, documented in arcane models and unreadable documents.