Skip to main content

The Myth of Complete Foresight

May 28, 2024

Incremental Delivery

Agile frameworks are used in complex environments where requirements and technology are ever-changing. It seems pretty unrealistic to think that we could envision all of the customer’s requirements upfront. And yet, that’s what many of those using a Waterfall approach to value delivery are trying to do.  

The Waterfall approach is both a structured and sequential process. Its linear stages—from requirements gathering to solution design, implementation, testing, and maintenance—promise a clear, methodical path to project completion. Like a relay race on a track, waterfall teams pass the baton from one phase to the next in a predetermined order.  

The problem with this approach is that when things change - as they always do - Waterfall teams have trouble coping.

The Myth of Complete Foresight

The allure of the Waterfall model lies in its apparent simplicity and predictability. Front-loading all planning and requirements gathering creates a comforting illusion of control. This approach assumes that all aspects of an initiative are known at the beginning and that no significant changes will be necessary as the initiative progresses. Such assumptions are rarely, if ever, accurate.

In reality, product development is a complex, dynamic process. It involves numerous variables—technical challenges, evolving user needs, and market shifts—that cannot be fully anticipated. The idea that we can chart a precise course from beginning to end disregards the unpredictable nature of the real world.

The Pitfalls of Rigidity

One of the critical flaws of Waterfall is its inflexibility. Once a stage is completed, it is theoretically set in stone. This rigidity becomes problematic when new information or unforeseen challenges arise. Changes late in the process become costly and time-consuming, often leading to compromised quality or delayed delivery. Because a waterfall approach depends on each phase being complete and unchanging before the previous phase can start, there is a rigidity built into the process, which does not stand up well in the face of reality.

Learning from Agile

In contrast, Agile approaches embrace uncertainty and complexity. They emphasize incremental development, customer collaboration, and flexibility to change. What does this mean? It means that Agile teams deliver usable work frequently and then reassess frequently.

Agile's success lies in its humility. Agile teams understand that we cannot predict every detail upfront. Teams can learn and adapt by breaking delivery into smaller, manageable increments. The Incremental approach to value delivery allows for regular reassessment and realignment with user needs and market conditions.

The Cost of Waterfall

Clinging to the Waterfall's sequential approach to delivery can lead to significant costs. Due to the inability to adapt, projects may fail to meet user needs, miss critical market opportunities, or run over budget and timeline. The rigidity of the Waterfall can stifle innovation and responsiveness, leading to obsolete products by the time they are completed.

"A year of their life went down the drain."

The stress and frustration of working within an inflexible framework can lead to burnout and decreased morale among development teams. When developers are forced to adhere to an unrealistic plan, their work's creative and problem-solving aspects are undermined.  As one participant of a recent class with Rebel Scrum put it, “Because work is completed incrementally (in smaller deliverables of usable product), the work feels more meaningful for developers. They see it being used by the customer throughout the duration of the project. Compare that with Waterfall, when Developers may work on something for a whole year just for the customer to say it isn't what was really needed. For the developer, that can feel like a year of their life went down the drain.” Kelly C., Digitalization Manager, Vertech.

Embracing Uncertainty Increases Certainty

Agile teams embrace uncertainty.  We recognize that things change.  Customer requirements are evolving.  Technology changes.  That’s why Agile teams deliver value in smaller increments.  Because every increment delivered is an opportunity for feedback and an opportunity to change direction if the increment does not provide the anticipated value.  By embracing an uncertain world and accommodating ourselves to that, we increase the certainty of delivering value because we are open to changing what doesn’t work so that we can do more of what does work.  This means valuing adaptability over rigid planning and incremental progress over linear progression. It requires a cultural shift within organizations to prioritize learning, flexibility, and collaboration.

Conclusion

The arrogance of the Waterfall model lies in its overestimation of our ability to plan and control complex projects from the start. This illusion of perfect planning fails to account for software development's dynamic, evolving nature. By shifting to more adaptive, iterative approaches like Agile, we can better navigate the uncertainties of the development process, ultimately leading to more effective and resilient solutions. The future of software development lies not in the hubris of perfect foresight but in the humility of continuous adaptation.

Are you excited by continuous learning?  Join us at this year's Scrum Day conference scheduled for October 23, 2024, in Madison, Wisconsin.  

 


What did you think about this post?