Three Evolutions of Software Engineering Methods and the Role of DevOps
This article traces the three major evolutions of software engineering—from the 1970s waterfall model, through the 1990s rise of agile and iterative methods, to the 2010s DevOps and continuous delivery movement—highlighting how delivery roles have expanded and how organizations can overcome adoption plateaus.
Software engineering has undergone three major evolutions. In the 1970s, rapid growth of computer technology led to a software crisis, prompting Dr. Rayce to propose the waterfall development model, which required two implementations per project to succeed.
In the 1990s, despite the continued use of waterfall, its limitations spurred the creation of various agile methods aimed at faster delivery of working software, introducing an iterative granularity.
In the 2010s, the rise of internet scale and massive user bases highlighted the gap between development and operations, giving rise to the DevOps movement and continuous delivery practices, while the waterfall model persisted at a finer requirement granularity.
The software delivery lifecycle has expanded from a half‑ring to a full‑ring, involving additional roles such as operations, as illustrated in the accompanying diagrams.
DevOps, like agile, lacks a single definition but represents an ongoing evolution aimed at improving collaboration and efficiency across roles in software delivery.
Many teams experience an initial boost from DevOps practices but eventually hit a plateau; overcoming this requires new perspectives and second‑order changes.
The article concludes with a promotion for a video course on continuous deployment using Golang, offered at a limited‑time discount.
Continuous Delivery 2.0
Tech and case studies on organizational management, team management, and engineering efficiency
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.