DevOps practices (or for that matter Agile technical practices) for Agile adoption are important and I don’t think there are many people arguing to the contrary. Ultimately, you want these two things to go hand in hand to maximize the outcome for your organization. Let’s take a closer look at popular scaling frameworks to see whether these models explicitly or implicitly include DevOps. One could of course argue that the Agile models should really focus on just the Agile methodology and associated processes and practices. However, given that often the technical side is the inhibitor of achieving the benefits of Agile, I think DevOps should be reflected in these models to remind everyone that software is being created first and foremost by developers.
Let us look at a few of the more well-known models:
SAFe (Scaled Agile Framework) – This one is probably the easiest as it has DevOps being called out in the big picture. I would however consider two aspects of SAFe as relevant for the wider discussion, the DevOps team and the System team. While the DevOps team talks about the aspects that have to do with deployment into production and the automation of the process, the System team focuses more on the development side activities like Continuous Integration and test automation. For me, there is a problem here as it feels a lot like the DevOps team is the Operations team and the System team is the Build team. I’d rather have them in one DevOps/System team with joint responsibilities. If you consider both of them as just concepts in the model and you have them working closely together, then I feel you start getting somewhere. This is how I do this on my projects.
DAD (Disciplined Agile Delivery) – In DAD, DevOps is weaved into the fabric of the methodology but not as nicely spelled out as I would like. DAD is a lot more focused on the processes (perhaps an inheritance from Rational Unified Process as both are influenced/created by IBM folks). There is, however, a blog post by “creator” Scott Ambler that draws all the elements together. I still feel that a bit more focus on the technical aspects of delivery in the construction phase would have been better. That being said, there are few good references if you go down to the detailed level. The integrator role has an explicit responsibility to integrate all aspects of the solution and the produce a potentially consumable solution and improve quality processes call out many technical practices related to DevOps.
LESS (Large Scale Scrum) – In LESS, DevOps is not explicitly called out but is well covered under technical excellence. Here it talks about all the important practices and principles and the descriptions for each of them are really good. LESS has a lot less focus on telling you exactly how to put these practices in place, so it will be up to you to define which team or who in your team should be responsible for this (or in true Agile fashion, perhaps it is everyone…).
In conclusion, I have to say that I like the idea of combining the explicit structure of SAFe with the principles and ideas of LESS to create my own meta-framework. I will certainly use both as reference going forward.
What do you think? Is it important to reflect DevOps techniques in a Scaled Agile Model? And if so, which one is your favorite representation?