This is probably the most frequently asked question that I have received.
In many sessions when I introduce the concept of DevOps and some characteristics, after the first 30 minutes or so, the question is a variation of:
– We are already agile. all this sounds just like agile. how is it different and why do we need DevOps
The simple answer is Yes and No.
First the Yes part – similarities:
Both Agle and DevOps have their origins from Lean thinking, that has been well embraced in manufacturing activities.
Both approaches encourage a minimalistic view to design and deliver, but in an incremental manner.
Here, when I say Agile, I include both the governance framework [Scrum] as well as the good engineering practices [XP], though the popular label of agile is applied to teams that follow [portions] of Scrum!
Now, for the No part:
DevOps is more of an organizational agility approach.
DevOps is a cross functional movement, aimed at maximizing the value delivered to customers. It builds on other techniques and frameworks available, without imposing any prescriptive ways to implement them. However, organizations are free to look at a mix and match of practices and tools and put them together so that all activitie across the full applcation lfecycle can be connected and work smoothly.
In one sense it may also be considered as DevOps extending the scope of the lifecycle from Requirements [backlog] that can be considered one step before the product planning, to the deployment activitiy that has typically been much after the dev team has completed their development activities.
Techniques and standards such as Scrum, Kanban [or a combination – Scrumban], Lean, ITIL etc all continue to have significant roles in the DevOps view of the value flow.
A successful DevOps adoption requires aspects of people, process and technology all the be addressed in a balanced manner.
When all contributing teams and individuals are all aligned to the requirements from the customer, many internal iefficiencies in organizations get addressed.
The softer aspects as well as enterprise architecture requirements become more prominent in a DevOps team.
Taking a DevOps approach will influence many current systems and practices – including: target setting, planning and tracking, rewards and recognition [based on shared goals and achievements], architecture, automation of SDLC activities.
To summarize, while there may be common origins and intent, similarity in some of the adoption approches, DevOps addresses some of the basic organizational aspects of structure, flows etc while Agile typically has looked at improving the software development activities.