From Waterfall to Business Agility

Erez Morabia
10 min readNov 27, 2023

--

For those starting the agile journey, or even for those already part of it, it becomes crucial to enlighten teams about the historical roots of Agile — why it came into being and the circumstances that stimulated its initiation. Astonishingly, a considerable number of teams lack awareness about the fundamental reasons for the existence of Agile, leading them to unintentionally underestimate its transformative potential. It’s similar to setting sail without understanding the origin of the winds that move forward the voyage.

Understanding the history of Agile is not just a retrospective exercise; rather, it is an essential compass that guides teams toward informed decision-making and successful navigation through the dynamic landscape of software development methodologies. By exploring the past, teams gain insights into the challenges and industry dynamics that prompted the evolution of Agile principles. This historical context serves as a pool of valuable lessons, offering an understanding of the pitfalls that should be avoided and the best practices that have stood the test of time.

In essence, the saying “knowing where you came from informs where you’re going” holds particular relevance in the Agile context. It’s about leveraging historical knowledge to navigate the present and shape the future. Moreover, the danger of history repeating itself appears significantly when teams remain unaware of the origins of Agile.

The Chaos Era

The roots of software development trace back to the 1950s and 1960s, a period when the landscape of computing was very different from today’s interconnected, high-speed digital domain. During this phase, a single computer served as the hub for numerous software engineers. Picture a scene where punch cards were the primary tool for programming, and software engineers found themselves in long lines, eagerly awaiting their turn to run their punched card programs on the solitary computer.

The process was far from seamless. If a run failed, there was no quick debugging or instant reiteration. Instead, the engineer had to retreat to their workspace, reprogram (essentially re-punching holes in the cards), and then patiently return to the line for another attempt. This tedious cycle encourages an environment where software engineers became inherently conservative, investing substantial time in careful planning before entering the execution phase, which, in this case, involved physically standing in line.

This era lacked any formalized development methodology. The absence of standardized processes and methodologies led to a state of what can be termed the “chaos era” of software engineering.

The Waterfall Era

In the 1970s, Dr. Winston W. Royce authored an influential document outlining a more structured approach to software development, marking the origin of what would become known as the Waterfall model. Royce’s vision unfolded through a series of sequential phases, starting with requirements, progressing through analysis, design, coding, testing, and concluding with operation. Visualized as a cascade of steps, the approach earned its name — the Waterfall model.

Royce, while acknowledging the potential for more effective methods, asserted that the Waterfall approach was a significant improvement over the preceding chaotic methodologies. During the period spanning 1970 to 1990, the Waterfall model gained widespread adoption globally. However, as technology advanced, ushering in a new era of individualized computing with a computer for every software engineer and the evolution of more sophisticated programming languages, the limitations of the Waterfall model became apparent.

Gone were the days of waiting in lines to run punched card programs; the advent of third-generation programming languages and personal computers revolutionized the speed and ease of software development. Simultaneously, the 1990s witnessed a rush in demand for digital products, pushed further by the growth of the World Wide Web.

Despite these advancements, statistical evidence pointed to alarming outcomes for software project success. The Chaos Report of 2015 revealed that only 11% of software products were considered successful. Recognizing this critical issue, organizations responded by investing more time in the planning phase, under the assumption that increased planning would translate to higher success rates. Paradoxically, this led to a counterproductive trend — prolonged planning resulted in more project failures. The problem wasn’t the planning phase itself but the long and sequential nature of the Waterfall approach, often coupled with detailed Gantt charts. Larger projects felt the full impact of this, with only a 3% success rate, compared to 7% for medium-sized projects and 44% for small-sized projects.

In the evolving landscape, the 1990s also saw the introduction of the Cynefin model, which categorized software engineering as part of the Complex domain characterized by unknown unknowns. This surprising fact challenged the efficacy of extensive planning at the project’s start, highlighting the uselessness of attempting to plan for uncertainties that were inherently unknowable. Instead, the model advocated for an iterative and adaptive approach — a philosophy that indicated the emergence of the Agile paradigm, which aimed to address the shortcomings of the Waterfall era.

Agile Era

As the limitations of the traditional waterfall approach to software engineering became apparent, forward-thinking individuals within organizations worldwide went on a quest for alternative development methodologies. The 1990s witnessed a global rush in experimentation with various approaches, including Extreme Programming, Scrum, DSDM, Adaptive Software Development, Crystal, Feature-Driven Development, Pragmatic Programming, and others. This era of exploration and innovation laid the foundation for a transformative shift in software development practices.

In a pivotal moment in February 2001, 17 pioneering software practitioners representing various experimental methodologies gathered in the beautiful ski town of Snowbird, Utah, USA. Over two intensive days, these visionaries collaborated and crystallized their collective insights into what would become the Agile Manifesto — four guiding values and 12 principles that would redefine the landscape of software engineering.

An interesting anecdote from this historic gathering involves a question I posed years later to Dr. Jeff Sutherland (in Jan 2019, in Boston), one of the architects of the Scrum framework. I was trying to understand how a diverse group of 17 opinionated individuals could reach a consensus in such a short timeframe. The response, colored with humor, revealed that while some participants took to the slopes for a skiing break, the remaining group actively created the guidelines and principles. When the skiers returned, tiredness likely played a role in their unanimous acceptance of the outcomes created by their industrious colleagues.

Dr. Jeff Sutherland on the left

Critics often questioned why the Agile Manifesto provided only broad guidelines and principles instead of a detailed step-by-step guide — a cookbook if you will. The rationale behind this decision lies in the inherent variability among organizations, encompassing differences in culture, technology, team size, product scale, business domain, and more. Creating a one-size-fits-all cookbook for such diverse contexts would be impractical.

Fast forward 2.5 decades from the Agile Manifesto’s publication, and its foundational principles continue to live through. However, while the Agile Manifesto offered invaluable insights, it did not provide a practical framework for implementation. Recognizing this gap, subsequent years witnessed the introduction of well-defined frameworks designed to guide organizations in applying agile methodologies effectively.

Since 2001, agile methods have gained widespread popularity in the software industry, with the Scrum framework emerging as a frontrunner. Initially, these methodologies focused on the practices of individual teams. Over the ensuing decade, the need for scalable solutions became apparent, leading to the evolution of large-scale frameworks like SAFe (Scaled Agile Framework), LeSS (Large-Scale Scrum), and others. These frameworks aimed to address the challenges inherent in implementing agile methodologies across expansive organizational landscapes. The journey from the Agile Manifesto to these frameworks reflects a continuous effort to adapt and optimize software development processes for a rapidly evolving digital era.

Small-Scale Agile Frameworks

In the history of agile methodologies, pivotal milestones were achieved with the official publication of the Scrum framework in 2003, followed by Kanban for software engineering in 2006, and the earlier arrival of Extreme Programming (XP) in 1999, which predominantly focused on engineering practices.

These frameworks served as practical cornerstones for introducing agility into work processes. Over the years, their adoption witnessed a steady rise, with Scrum emerging as the frontrunner in popularity. According to the 16th annual State of Agile Report, 87% of agile practitioners have embraced Scrum as their methodology of choice. However, it’s important to note that these frameworks primarily addressed the needs of individual teams within the software development domain.

While their effectiveness for single-team was evident, they fell short of providing comprehensive solutions for larger organizational contexts where software products were often the result of collaborative efforts by multiple teams. The inherent limitations became apparent when attempting to navigate the complexities of a multi-team environment. Furthermore, crucial aspects such as long-term planning, release management, portfolio management, program management, enterprise-level coordination, and more were left unaddressed.

The recognition of these gaps created a growing demand for practical approaches to tackle the complexities of organizational-scale challenges. This need resulted in the groundwork for the establishment of large-scale frameworks, marking a significant shift in agile methodologies.

The journey from small-scale frameworks to large-scale solutions reflects the iterative and adaptive nature of agile methodologies, demonstrating the commitment to refining approaches in response to the ever-evolving needs of modern organizations.

Large-Scale Agile Frameworks

As the second decade started, a transformative wave swept through the agile landscape, leading the way to the era of large-scale frameworks. Notable among these were SAFe (Scaled Agile Framework), LeSS (Large-Scale Scrum), Nexus, and DAD (Disciplined Agile Delivery). These frameworks, each with its unique characteristics, serve the diverse needs of organizations struggling with the challenges of scaling agile methodologies. While some, like Nexus and LeSS, adopted a more lightweight approach, others, such as SAFe and DAD, delved into details to provide comprehensive solutions.

The dominance of SAFe, in particular, is noteworthy, with the 16th annual State of Agile Report indicating its widespread presence among agile practitioners — 53% of them have embraced SAFe as their framework of choice.

Large-scale agile frameworks serve as more than just extensions of their small-scale counterparts; they represent a paradigm shift in addressing the complexities of orchestrating the efforts of multiple teams within complex organizational structures. These frameworks tackle challenges related to program and portfolio management, present roles and responsibilities, and offer valuable guidance on scaling agile principles effectively.

The adoption of large-scale frameworks represents a strategic response to the evolving needs of companies seeking to foster agility at an organizational level. These frameworks provide a structured approach to not only manage the complexities of large projects but also to align them with broader business objectives.

Notably, companies have had the flexibility to either adopt established frameworks or create their own, tailored to the specific variations of their organizational culture and context. A case in point is the Scaling Agile @ Spotify, created by Spotify in 2012. This approach reflects the adaptability inherent in agile methodologies, encouraging organizations to innovate and iterate on frameworks to suit their unique requirements.

In the ever-evolving landscape of agile methodologies, the proliferation of large-scale frameworks stands as a testament to the commitment of organizations worldwide to embrace agility not just at the team level but as a holistic and integral part of their organizational DNA. The journey from small-scale frameworks to these expansive solutions underscores the adaptability and resilience of agile methodologies, continually evolving to meet the dynamic challenges of the modern business environment.

Business Agility

The path from Agile to Business Agility marks a great evolution. It signifies a broader, organization-wide transition, redefining how businesses operate and innovate in the ever-changing landscape of the modern marketplace.

The evolution from large-scale agile frameworks to business agility involves a shift from managing products and teams with agile principles to transforming the entire organization into an adaptive, customer-centric, and learning-focused entity. It includes cultural change, strategic agility, and the integration of agile principles beyond the software development department into all facets of the business. Business agility is an ongoing journey that requires commitment, leadership, and a holistic approach to organizational transformation.

Business agility goes beyond the traditional boundaries of software development, progressing into domains such as design thinking and DevOps. Design thinking, with its focus on user-centric problem-solving, covers steps in the product lifecycle before the initiation of software development. Simultaneously, DevOps addresses aspects after the software is ready, emphasizing continuous integration, deployment, and feedback loops. This holistic view of the product lifecycle becomes the backbone of business agility, acknowledging that true agility encompasses the entirety of the organizational journey.

Conclusion

In the dynamic domain of software development, the journey from the fixed structures of the waterfall model to the fluidity of Business Agility is not just a shift; it’s a deep transformation. As we reflect on this evolutionary path, it becomes evident that agility is not just a methodology or framework but an important strategy for organizations navigating the ever-changing currents of the digital landscape.

The transition from waterfall to Business Agility is about adopting a mindset that embraces adaptability, customer-centricity, and continual learning. The traditional, linear approach of the waterfall model, with its sequential phases, has given way to a dynamic, iterative approach that permeates every facet of the software development domain.

The transition from small-scale agile frameworks to large-scale agile frameworks connected individual teams to the broader organizational goals. Yet, the evolution did not stop there. It evolved into the concept of Business Agility, reaching beyond the attempt of software development departments to put together agile principles into the fabric of entire organizations.

In the domain of Business Agility, organizations are not just adopting methodologies; they are embracing a philosophy. It’s a philosophy that acknowledges change as a constant, views challenges as opportunities, and positions agility as a competitive advantage. In this era of never-ending change, those who embrace Business Agility not only survive but thrive. The transition from waterfall to Business Agility is evidence of the industry’s resilience, adaptability, and commitment to delivering value in a world that demands nothing less than excellence.

--

--