The Evolution of Lean to Agile to DevOps
There’s something to be said for standing on the shoulders of giants.
Many try to compare and contrast Lean, Agile, and DevOps methodologies, but the reality is that Lean led to Agile which was then extended to become DevOps. The ultimate goals of all three are similar, including faster time-to-market, faster time-to-value, greater efficiency, greater quality, increased customer satisfaction, time and financial savings, and constant improvement through constant delivery and rapid user feedback. While Agile and DevOps are usually considered to be focused on software development, Lean thinking began and continues to benefit many industries. The continuity between all three provides an ever-evolving set of definitions that is, in and of itself, in a state of constant improvement.
The giants referred to include two automotive legends, Henry Ford and Kiichiro Toyoda. The road to Lean thinking and manufacturing began back in 1913 with Ford’s many innovations, the first to fully integrate the end-to-end manufacturing process in what he referred to as flow production. Ford could manufacture his Model T automobiles very quickly and efficiently, but in only in a single model, giving rise to his famous offer that customers could have any color they wanted, as long as it was black.
In the 1930’s, Toyoda and his team began building upon Ford’s accomplishments and added innovations that enabled them to offer not only speed, efficiency, and quality, but variety as well! This led to the development, in 1950, of the Toyota Production System which combined right-sizing, self-monitoring, sequencing, quick setups to facilitate the making of a wide variety of small parts in small volumes, part numbering, and communication between steps to maintain required inventory levels.
In 1990, the book The Machine That Changed the World was published as “the story of Lean Production – Toyota’s secret weapon in the Global Car Wars this is revolutionizing world industry.”
The definition of Lean philosophy had begun with the concept of what Toyoda referred to as “kaizen”, meaning continuous improvement at its core.
The Problem with the Personal Computer Revolution
At around the same time the personal computer was becoming ubiquitous. At that time, developers estimated that it took about three years to produce a new application, a challenge they referred to as “application delivery lag.” Business was moving far faster than that and accelerating at a rapid pace.
In 2001, a group of 17 developers, all Lean practitioners and advocates of then-existing software development methodologies such as Scrum, extreme programming, crystal, adaptive software development, feature-driven development and dynamic systems development, gathered to discuss the creation of more lightweight frameworks to help accelerate software development processes significantly.
They named their creation “agile”, developed and wrote a “Manifesto for Agile Software Development” and created a non-profit organization called the Agile Alliance. Today there are over 30,000 members and subscribers participating in what is commonly referred to as the Agile movement.
Lean led to Agile.
Some prefer to refer to Agile as a way of thinking or a philosophy since it encompasses so many methodologies, such as Scrum, Extreme Programming, Kanban, pair programming, and others, and is not itself a methodology.
The Rise of DevOps
By 2007 the process optimizing of Lean manufacturing with its ultimate goal of continuous improvement, and its offspring, Agile, was replacing the traditional “waterfall” methodologies of software development that had been too slow with rapid, iterative methods that increased the speed of software delivery tremendously.
This was also the time of the early maturation of cloud computing including infrastructure-as-a-service (IaaS) and platform-as-a-service (PaaS) with incredible implications for integration and software-driven-everything. Up until then the developers who created the code and the operators who managed the infrastructure had a difficult relationship that often culminated in mutual blame whenever something failed. Perpetual finger-pointing.
By 2009 as infrastructure was, itself, moving toward being driven by code, it became more and more obvious that developers and operators need to interoperate seamlessly, perhaps even using the same tools and platforms to assure a contiguous path from development to delivery and undergoing intensive cross-team training, all with the common goal of creating an environment of constant improvement.
A 2013 Gartner report explained that ““DevOps movement was born of the need to improve the agility of IT service delivery and emphasizes people and culture and seeks to improve collaboration between development and operations teams while seeking to remove the unnecessary impediments to service and application delivery by making use of agile and lean concepts”
Lean and Agile were extended beyond development to operations to create DevOps.
Why This is Important to You
First and foremost, this is important because it demonstrates that DevOps doesn’t exist in a vacuum. It complements Agile development which continues to focus on improving software development methodologies to promote constant improvement, and Lean management which extend to entire enterprises to encourage environments committed to constant improvement. DevOps applies the same iterative, constant development, constant delivery, and constant integration concepts as Lean and Agile to achieve constant improvement not only in code and the operation of that code, but also of how rapidly customers can get to market and drastically reduce the time in which customers achieve value.
Writer Duena Blomstrom, in a recent Forbes article “Agile versus DevOps: Who Cares?”, explains that “they are two rather different concepts with Agile arguably being either a description of a set of practices and processes or a set of values that guide the way we run a project (primarily in software development for the time being) whereas DevOps refers to an umbrella vision of what used to be disparate functions of the organization from development and testing to other operational functions and the way the magic of automation can redefine the organization. As such, it would seem at first glance as if it's a tactic versus strategy. One execution, the other vision.”
The training team at Guru99 agree that there are many differences between Agile and DevOps, but they complement each other. They point out, for example, that:
- Agile achieves agility by keeping teams small so they can move faster, while DevOps includes members of the entire stack which tends to result in larger teams.
- Agile doesn’t emphasize automation, but it is the primary goal of DevOps.
- Agile and DevOps experience time somewhat differently. In Agile projects, a “sprint”, the term used for a specific period of iterative advancement, may take less than a month. For DevOps, delivery of new code is often expected to occur hourly.
- Agile gives priority to the working system over complete documentation while DevOps depends upon creating comprehensive documentation to help form the bond between development and operations.
- They crystallize the symbiotic relationship between the two by pointing out that Agile is focused on software development, while DevOps promotes fast delivery of the end-to-end business solution, concluding that “DevOps supports Agile’s release cycle.”
- Looked at from the other perspective, Agile uses iterative processes that leverage collaboration, customer feedback, and small, rapid releases. DevOps extends this to the delivery, deployment, monitoring, and feedback that lead to the next iteration. Ultimately, Agile is one of the ways in which DevOps is done.
The one word that captures the raison d’etre, the reason for the existence of Lean, Agile, and DevOps, is “value.” Whether its enabled by faster and more frequent improvements to software, measured by customer satisfaction levels, or defined by time to market, it is all focused on delivering superior value to customers.
Enjoyed this Article? Check out Our Other DevOps Content
- Learn the basics, like what DevOps is, and how it began.
- Learn how to implement DevOps in your organization by adopting a culture of collaboration.
- Learn about receiving continuous feedback through the DevOps Lifecycle.
- See why Infrastructure as Code is critical to a successful DevOps initiative.
- Learn about the current state of DevOps and where it will go from here.
- Learn about the DevOps Lifecycle and how to select the right tools to build your toolchain,
- Find out how to pave the path for a successful DevOps adoption.
- How to get started with DevOps Automation.
- What DevOps Certifications may accelerate your career.
- How to choose the right DevOps services provider.
New White Paper - DevOps Gives Wing to Your Development Efforts
Interested in learning how to enable a culture of collaboration within your organization? Check out our latest White Paper, "DevOps Gives Wing to Your Development Efforts," to learn:
- How to Understand DevOps and its Enabling Culture
- How to Build Momentum for Excellent Innovation
- How to Create a Compelling Business Case For DevOps
- How to Get Started With DevOps