Adopting DevOps will help me solve……

In the last post I talked about a DevOps maturity model – a simplified set of milestones you could strive for to make your organization more efficient and agile.

The question “what will DevOps do for me?” still remains.

For Industry influencers DevOps is the harbinger of the new Industrial Revolution, something that will fundamentally change how we think about IT and various roles within IT.

For practitioners, still struggling to take that first step, the big vision is enticing but it is the smaller, more tactical goal that needs to be accomplished first to showcase the viability of DevOps.

Pragmatic thinking demands we help isolate one, may be two issues that these organizations can achieve in few months to an year’s time. Here is what I have noticed working for most Enterprise IT organizations

First – automate deployments. An average developer may spend up to 200 hours trying to set up the environment and deploy her application while still developing the code. Most end up writing there own scripts to make the job easier and repeatable. If however, they have a tool, blessed and available from IT, it would help them focus on code rather than how to deploy and test it.

Second – improve communication between your dev and ops teams. While “communication” can mean many things, I specifically mean “handoffs” from dev to ops. Instead of just handing over the code, the dev will now provide instructions, steps, deployment scripts, testing scripts and even known issues and defects to ops. This makes the job of ops much easier. If there’s a problem, then instead of just logging a defect, ops will now provide environment definition, data and even the state of environment before and after the defect occurred. This simplifies dev’s job of debugging the problem and finding the root cause helping them fix it faster and permanently.

So if you are looking for quick wins – start with deployment automation and look to improve communication, specifically handoffs, between dev and ops teams.

DevOps Maturity Model for Release Managers

Enterprise IT has come a long way in its understanding of DevOps. From “Can you show us DevOps” to “How do we start our journey to be more DevOps centric organization”, the maturity has grown significantly.  Let us take a look at the question again – “How do we start our journey…..”.

In other words, many IT organizations  are now looking for that first step or set of steps that will enable them to realize key benefits of adopting DevOps with measurable return on investment.

Screen Shot 2014-02-27 at 12.36.06 PM

My observation has been that Deployment Automation (also called Application Release Automation) is that first step. Most IT organizations find it a small enough step that doesn’t require too many approvals, can be localized to one or just a couple of environments (DEV, INT, QA, UAT, etc) and finally provides a quick ROI that can be shown to senior management to move to the next step.

The second step in DevOps Maturity Model is the one that most IT (especially the development) may have already tried – a controlled Continuous Delivery approach toward application release. The code doesn’t quite make it to the production environment automatically but could be promoted across lower level environments such as Dev and INT.

The third step  is establishing feedback and feedforward loops. Your development and ops may sit thousands of miles away from each other but if there are well established feedback loop, the dev will know the Operational Requirements  for a given environment and could include that in their initial designs. Similarly Development itself could provide information, scripts, instructions to deploy and test the code – the feedforward loop. A continuous feedback and feedforward form the crux of the DevOps practice. It is not easy to implement but it does give you huge benefits.

The fourth and the final step would be to establish a truly automated, DevOps centric Release Management practice. Here your deployments across all environments, with the exception of Production and Pre-Production is automated, continuous feedback and feedforward loops between dev and ops exist and everything that a human or a machine does is logged and audit-able.

While the organizations go down this path of developing DevOps centric organization, they continue to invest in infrastructure automation and management. That takes time and is an ongoing project which needs to be tweaked along the way.

That is it. There could be and will be more complex models but DevOps as a philosophy to be adopted doesn’t have to be complex. You have to start somewhere and Deployment Automation (also called Application Release Automation) could be that starting point.