Skip to content

Software Development: Waterfall to DevOps

How software development practices evolved from sequential waterfall to agile and DevOps. Understand design patterns, microservices, and container orchestration.

Software Development: Waterfall to DevOps guided path map

An ordered sequence of 6 events covering 75 minutes.

Software Development: Waterfall to DevOps guided path An ordered sequence of 7 dated stops covering 75 minutes. Each card lists a stop number, the year, the title and the publisher. The final stop is emphasised in brand red. SOFTWARE DEVELOPMENT: WATERFALL TO DEVOPS Source: Computer History Museum Waterfall, agile, version control, cloud, containers. next row STOP 1 1968 NATO softwareengineering conference ieee.org STOP 2 1970 Royce's waterfallpaper ieee.org STOP 3 2001 Agile Manifesto,Snowbird agilemanifesto.org STOP 4 2005 Git released byTorvalds git-scm.com STOP 5 2006 AWS S3 and EC2 launch aws.amazon.com STOP 6 2009 DevOps coined oreilly.com STOP 7 2013 Docker open-sourced docker.com 7 stops, in chronological order Arrows mark the next stop in the path, not direct historical causality. The final stop is emphasised in brand red.

Arrows mark the next step in the path, not direct historical causality. Source: Computer History Museum.

1. Royce on the lifecycle

August 1970.Software.Paradigm shift.Event page

Large software projects frequently failed or exceeded budgets. There was no widely accepted methodology for managing software development. Ad hoc approaches could not scale to complex systems.

Winston Royce's paper described and critiqued the sequential 'waterfall' approach. Ironically, while arguing against a pure waterfall, his diagram became the model for decades of software development. The paper actually advocated for iteration and prototyping.

Royce presented 'Managing the Development of Large Software Systems' at IEEE WESCON in August 1970. The paper included a diagram showing sequential phases (requirements, design, implementation, verification, maintenance). This diagram was widely adopted as the 'waterfall model', despite Royce's warnings about its risks.1, 2

2. Design Patterns

October 1994.Software.Standard published.Event page

Object-oriented programming was growing but design expertise was hard to transfer. Developers repeatedly solved similar problems without shared vocabulary. Best practices were scattered across individual experience.

The 'Gang of Four' (GoF) book catalogued 23 design patterns for object-oriented software. It established patterns as a way to communicate design expertise. The vocabulary (Factory, Singleton, Observer, Strategy, etc.) became universal among developers.

Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides published 'Design Patterns: Elements of Reusable Object-Oriented Software' in October 1994. Drawing on Christopher Alexander's architectural patterns, they codified common OO design solutions. The book sold over 500,000 copies.3

3. The Agile Manifesto

11 February 2001 to 13 February 2001.Software.Paradigm shift.Event page

Heavyweight methodologies (waterfall, RUP) dominated enterprise software. Documentation often valued over working software. Customer feedback came too late. Developers felt constrained by rigid processes.

Seventeen software developers met in Snowbird, Utah and published the Manifesto for Agile Software Development. It prioritised individuals, working software, customer collaboration, and responding to change. Agile became the dominant software development philosophy.

Representatives of XP, Scrum, DSDM, Crystal, and other lightweight methodologies gathered to find common ground. They agreed on four values and twelve principles. The manifesto deliberately avoided prescribing specific practices, instead articulating shared values.4

4. DevOpsDays Ghent

2008 to 2009.Software.Paradigm shift.Event page

Development and operations teams worked in silos. 'Throwing code over the wall' led to deployment failures. Manual deployments were error-prone and slow. Agile improved development but not deployment.

DevOps emerged as a movement to integrate development and operations. It emphasised automation, continuous integration/deployment (CI/CD), infrastructure as code, and shared responsibility. DevOps dramatically reduced deployment times and improved reliability.

The term 'DevOps' emerged from discussions at the 2008 Agile Conference and the first DevOpsDays in Ghent (2009). Patrick Debois organised DevOpsDays after discussions with Andrew Shafer. The movement drew on lean manufacturing, agile, and the CALMS framework (Culture, Automation, Lean, Measurement, Sharing).5, 6, 7

5. Microservices articulated

25 March 2014.Software.Paradigm shift.Event page

Monolithic applications became difficult to scale and maintain. Large codebases slowed development. Deployment required releasing the entire application. Teams could not work independently.

Microservices architecture decomposes applications into small, independently deployable services. Each service owns its data and communicates via APIs. This enables teams to develop, deploy, and scale services independently.

James Lewis and Martin Fowler published a defining article in March 2014, crystallising practices used at Netflix, Amazon, and others. The term gained rapid adoption as cloud-native development matured. Containerisation (Docker) and orchestration (Kubernetes) provided implementation infrastructure.8

6. Kubernetes 1.0

6 June 2014.Software.Protocol deployed.Event page

Containers (Docker) enabled consistent deployment but managing many containers was manual. Scheduling, scaling, networking, and failure recovery required custom solutions. Each organisation built different orchestration systems.

Google open-sourced Kubernetes, based on their internal Borg system. Kubernetes provided declarative container orchestration: automated deployment, scaling, and management. It became the de facto standard for cloud-native infrastructure, supported by all major cloud providers.

Google engineers (including Joe Beda, Brendan Burns, Craig McLuckie) developed Kubernetes based on lessons from Borg and Omega. It was announced at DockerCon 2014 and donated to the Cloud Native Computing Foundation (CNCF) in 2015. Rapid adoption followed as cloud providers integrated it.9

Sources

1Winston W. Royce. "Managing the Development of Large Software Systems". Proceedings of IEEE WESCON, 1970-08.peer revieweddl.acm.org/doi/10.5555/41765.41801
2Frederick P. Brooks Jr.. "The Mythical Man-Month: Essays on Software Engineering". Addison-Wesley, 1975.peer reviewed
3Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. "Design Patterns: Elements of Reusable Object-Oriented Software". Addison-Wesley, 1994-10.peer reviewed
4Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas. "Manifesto for Agile Software Development". Agile Alliance, 2001-02.authoritativeagilemanifesto.org/
5Gene Kim, Jez Humble, Patrick Debois, John Willis. "The DevOps Handbook". IT Revolution Press, 2016-10.reputable
6"DevOpsDays Ghent 2009". devopsdays, 2009-10.reputabledevopsdays.org/events/2009-ghent/
7Jez Humble, David Farley. "Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation". Addison-Wesley, 2010.reputable
8Martin Fowler, James Lewis. "Microservices: A Definition of this New Architectural Term". martinfowler.com, 2014-03-25.reputablemartinfowler.com/articles/microservices.html
9Abhishek Verma, Luis Pedrosa, Madhukar Korupolu, David Oppenheimer, Eric Tune, John Wilkes. "Large-scale cluster management at Google with Borg". Google, 2015-04.peer revieweddl.acm.org/doi/10.1145/2741948.2741964