If you have worked in any technology field over the past decade, there’s a good chance that the terms “Agile” and “DevOps” have become overused buzzwords for you, just as other terms like “lean”. Based on my recent experience, it seems that these two terms “Agile” and “DevOps” have been misused and misinterpreted in so many different contexts that they have become to lose their meaning, which is concerning. If we just focus on the core principles behind these, it may be easier for us to decipher the original intent of these concepts.
To take a brief view into the history behind these ideas, the principles of Agile originated many decades ago around the 1950s, as Toyota developed the Toyota Production System, the foundation with which led to the modern-day concept of lean manufacturing. Around 2000, the software world claimed the spotlight for Agile as the Manifesto for Agile Software Development was published. Fast forward to 2007 (or so), the idea that Development teams should collaborate closely with Operations led to the concept of “DevOps”. Today, there remains a huge cloud of mystery amongst many organizations that are still struggling to decipher what these concepts mean and if/how they truly matter for them.
As we quickly review the essence of Agile vs DevOps, we will see that there is significant overlap and alignment of ideals amongst three of the key Agile and DevOps organizations.
The DevOps Institute, founded by several industry leaders including Gene Kim, who authored “The Phoenix Project” and “The DevOps Handbook”, is considered by many as one of the key leaders of the DevOps movement, focuses on three key concepts:
- Systems thinking
- Accelerate feedback
- Continuous learning
Another organization, DASA (DevOps Agile Skills Association), has a slightly different view of the DevOps world. DASA emphasizes the following principles:
- Customer centricity
- Create with the end in mind
- End-to-end responsibility
- Cross-functional teams
- Continuous improvement
- Automate everything
Lastly, the Manifesto for Agile Software Development focuses on the following four key values:
- Individuals and interactions over processes and tools
- Customer collaboration over contract negotiation
- Working software over comprehensive documentation
- Responding to change over following a plan
If we boil these down to the bare minimum, clearly there are some obvious common themes amongst the three sets of principles, which are:
- Customer focus
- Optimize the whole system
- Continuous learning
What is this telling us? DevOps and Agile are actually much more similar than different; there is a significant coupling and complementary connection between what we are calling “DevOps” and “Agile” concepts. This also begs the question: why do we need both ideals? Can we succeed with just one or the other? Although there is probably no single “correct” answer, my opinion is that you may achieve success with either value system. However, I also believe that the probability of achieve greatness would be much more difficult if you see Agile vs DevOps and two different things; these two concepts encompass a set of potentially complex practices, processes and tools that require significant commitment and investment, primarily due to one major factor: people must change what they do in an effective way in order to reap the benefits.
Change is inherently risky, dangerous, and fraught with challenges because we are dealing with human being that value safety, stability, and predictability. Any meaning change at a large scale will be difficult to achieve unless an effective approach is applied that enables behavior to change. By marrying the basic principles and practices that are central to Agile and DevOps ideologies, organizations will have power tools to enact positive, sustainable change.