Top Three Prerequisites before Jumping on the DevOps Bandwagon
The DevOps frenzy is truly upon us and organizations are under increasing pressure to jump on the bandwagon in order to deliver software faster and faster. However, Agile delivery and DevOps is not a plug-and-play proposition – it requires time, effort and persistence. Also most enterprises, unlike Silicon Valley startups often held out as shining examples, don’t always have the luxury of dealing with newly designed software and freshly minted teams. Implementing DevOps practices is a significant change and often an uncomfortable process for many enterprises. Let me share what I believe are the top pre-requisites that must be in place to ensure success.
This may seem obvious, but ensuring alignment and setting the right expectations on the goals and path to DevOps nirvana is a first and important step. Organizational structures, support at a senior level, a clear but flexible roadmap and adoption of common objectives are key concepts to drive organization commitment to this transformation. Let me elaborate on these a bit.
Overcoming cultural differences between Dev and Ops organizations is essential – and often enterprises create a new “DevOps” organization with personnel drawn from both organizations chartered with instrumenting the handoff from Dev through to production rollout. This new centralized org, however, also runs the risk of becoming yet another silo. Ideally a DevOps group should operate as a center of excellence managing the tools required across the lifecycle and guiding/overseeing the right methodology within the Dev and Ops teams. Similar to the way Agile development practices have driven testing and quality assurance methods deeper into the dev cycle, DevOps methodology demands that configuration and deployment requirements in a true production environment be considered and tested as part of the design and development cycle. On the Ops front, this new methodology demands a shift from managing risk by limiting change towards enabling change while reducing risk by automating repeatable steps for deploying small packets of changes often.
While DevOps initiatives are typically sponsored by high ranking IT executives, it is essential that senior and mid-level leadership in the Dev and Ops organizations completely support and prioritize the changes that, while benefiting the overall goal of shipping software faster and better, may in the short term seem to impact narrow departmental goals. Continued visibility and focus from management, and joint ownership by Dev and Ops leaders goes a long a way in ensuring the teams stay aligned.
A clear and well-articulated vision and compelling reason for change communicated clearly through the organization is essential for execution. This must be accompanied by a phased roadmap that enables short-term wins and clear milestones. Besides benefiting the business, the aim is to make the jobs of Ops and Dev personnel easier. Transparent and frequent communication on progress against the roadmap and its impact is key.
In order to keep the momentum avoid getting bogged down in a particular step in the roadmap, especially early in the process. Most enterprises present target rich environments and a flexible roadmap focused on ensuring demonstrable rapid progress will ensure continuing focus and commitment.
DevOps relies on a sense of shared responsibility and mutual respect between Dev, Ops and the business. Organizations can encourage and engender this by instituting joint ownership for a common set of objectives that encompass both ‘change velocity’ metrics and ‘quality of service’ metrics.
Automation with discipline
DevOps relies on the “automate everything” mantra. However, its important to realize that automation does not simply mean speeding things up because machines are faster than people. Automation is a means to codify repeatable practices and steps to ensure speed with reliability.
Automating poor practices can actually be counter-productive and hence it is first necessary that the various steps and procedures in the delivery process be rationalized, optimized and made consistent.
The key to improving velocity is to minimize variability in the process of deployment through the path to production. It’s therefore important to automate the complete configuration and deployment process in the lower environments (dev, test) first, and then clearly track and minimize changes to these in higher environments (stage, production).
In addition to speeding things up, automation can also serve as a powerful way to ensure adherence to process, and done right can substantially help compliance and audits by ensuring change is made quickly yet consistently and is inherently documented without overhead. It is also important that automation of both the rollout as well as verification go hand in hand.
Tools and infrastructure
Easy to adopt tools in a frictionless infrastructure is a critical component of DevOps. Rather than locking in a toolset up front, its important to have to have flexibility as the organization evolves its practices and the tools that enable them. Open source tools are well suited to this. They incorporate new innovation faster, provide the ability to tailor them to meet specific needs, and developers can leverage the community that typically exists around these for best practices and knowhow.
It is also a good idea to optimize and fine tune the tool chain for the project or program that is the initial focus. Once a degree of repeatable success has been established, and the team has acquired proficiency, the tool chain can be scaled out to more broadly. It’s always harder to adopt a new tool chain, especially when coupled with a change in behavior and approach, if the scope of it is too wide initially. As discussed earlier, establishing a DevOps center of excellence team that owns and evolves the tool chain and its usage is often a good practice for enterprises.
As more enterprises rely on software to drive revenue, the pressure is on to innovate and deliver value faster. While this is indeed exciting, it requires a significant undertaking in rolling out cultural, organizational and methodology changes needed to enable DevOps practices. Ensuring clear alignment and goals for all stakeholders, a common sense of purpose and an achievable yet ambitious roadmap are key to securing organizational commitment for this endeavor. Approaching automation in a complete way and enabling the adoption of the right tool chain can set enterprises on the right path to realize benefits of small, frequent deployments without compromising quality of service and compliance.
About the Author
Kartik Raghavan is the Senior Vice President of World-wide Engineering, Operations and Support at CollabNet where he brings deep experience in ideating, defining, developing and launching products through On Premise and SaaS channels.