There is a major flaw with this model.
It’s based on the assumption that we can ask the business what they want and then we can go off and build stuff. The customer puts us into motion with their request or problem and then waits at the end of the line to tell us if we got it right.
It has been tolerated because we usually can deliver some software and we usually don’t screw it up too bad. We downplay the fact that the customer is confused by what was delivered, unsatisfied with the results and wondering how this could have cost so much.
Agile proposes a new model; one that satisfies customers and teams.
The agile model is a circle with the business at the center and the team built around them. The business still puts us into motion, but stays connected with the team throughout development, elaborating on requirements, prioritizing work and directing the course of the project. The roles of the team members also change as everyone focuses on completing the work instead of staying within the confines of their job description.
This collaboration focuses on understanding and satisfying the business needs and constantly communicating about what will be delivered and when. It also increases the team’s satisfaction because they are delivering the ‘right’ software. And that was the point in the first place.