Way back in 2008 when DevOps was first coined there was much excitement about the promise of a new way of developing software. Developers were excited by the prospect of a more responsive and supportive approach to environment management, addressing one of the biggest frustrations of the software development lifecycle.
As with many paradigm shifts in the past, the DevOps label has since been interpreted to mean different things, and is often now seen as a rebranding of the Operations team activities. Whilst modernising operations is a big part of the focus of DevOps, it is not the whole story. The promise of DevOps for developers has almost entirely been lost in many circles, and needs to be re-focused again.
Google is leading the way in many respects with the pioneering of the Site Reliability Engineering discipline. Sensibly they haven’t tried to re-purpose the DevOps label, but rather have explicitly called for developers to take more responsibility in the operations side of the DevOps coin. Empowering developers to take an active role in the design and implementation of production architectures offers the benefits of a more rigorous approach to increasingly codified infrastructure implementation and testing. In addition the developers are able to gain a better understanding into the challenges with providing, configuring and maintaining high reliability systems, and can take such learnings back to development to improve the software design as a result.