DevOps advocates a new approach to enhancing the software delivery cycle through a combination of culture, process, and tooling. Getting started can be overwhelming, so here are some best practices that may help in thinking through and planning a DevOps practice.
Be sure to customize to your needs.
DevOps practices should be structured to meet the unique needs of the organization, taking into account organizational structure, team incentives, current software lifecycle, sources of delay, and opportunities for automation. At the same time, don’t lose sight of non-negotiable principles such as empowerment, accountability, transparency, and continual learning.
Invest in automation and new processes.
“Relentless automation is necessary for modern service delivery.” [Source: Forrester Brief: Good DevOps Requires Collaboration, Automation, And Cultural Change; June 2016]. DevOps is substantially enhanced through tooling that enables automation. In many cases, a completely new take on automation is required for success with DevOps. Investing in training teams on working together, establishing new processes and using new tools will be well worth the effort. Just make sure to invest in the areas that need it most, and avoid over-optimizing areas that don't improve throughput.
Also keep in mind the value of standardizing on one platform and automating one build pipeline across the entire organization. One of the goals of a cloud-native approach is to remove the “waste” of focusing on infrastructure software, so teams can focus on actual business value. The more variation organizations have in their tools stacks, the more time an organization will spend managing non-differentiating tools rather than giving the business unique functionality that wins market share.
According to the report cited above, by research firm Forrester, 82 percent of I&O professionals surveyed claim they are deploying automation solutions in at least one of the following areas: release management, configuration management, and change management.
Realize team building and culture matter.
It’s critical to align incentives and goals among developer and IT operations team members to establish trust and a spirit of collaboration. For example, aligned and actively collaborating teams staffing a single project and collectively measured on all aspects of its success are more likely to be committed to work effectively together, than one where there’s no shared ownership. Although easy to purchase, tooling alone does not confer the benefits of a DevOps practice. Technologies must be used within the context of a cultural philosophy rooted in collaboration and joint responsibility.
Understand organizational dynamics can become roadblocks.
With new processes and tooling in place, disruption in current processes and threats to existing organizational mandates are inevitable, especially with compliance, security, and audit functions. It’s critical that these parties buy into the larger vision and become willing stakeholders. Otherwise, a well-intentioned streamlined DevOps practice will grind to a halt. Top-down executive support and multi-team commitment can help work through these complex organizational dynamics. In fact half of the respondents from a 2015 Gartner research survey listed people issues as the biggest challenge to their organization using DevOps.
Recognize integration overhead and complexity issues.
Given the number of vendors offering solutions, it’s easy to purchase point solutions to tackle each aspect of the overall DevOps practice being designed. This can, however, result in significant overhead and complexity as enterprises try to integrate different tools into a seamless experience. Worse, if each team in your organization is using a different stack of tools and platforms, you'll create a portfolio management nightmare. An unified and standardizing approach that provides strong opinions rooted in best practices, integrates with the application runtime platform, and yet provides significant flexibility to tailor the automation to an organization’s unique needs can help sidestep these pitfalls and start on a strong footing.
Crafting a DevOps practice may require experimentation and refinement. It makes sense to start small. To derive meaningful outcomes, start with a real application and a dedicated team. While there’s motivation to start with a low-profile application, consider tackling something that will demonstrate legitimate business value, and then build up to more complex, more business-critical applications as you learn how to best apply DevOps in the organization.
Consider legacy workloads.
DevOps isn’t just relevant for new workloads. As teams consider modernizing and migrating existing workloads for cloud, consider how to leverage DevOps principles and automation into those lifecycles. Legacy workloads can also derive significant benefits from DevOps in terms of release cadence and reliability/stability of deployments.
Understand DevOps is a journey.
DevOps is a practice philosophy. Once a team and practice is defined, remember that it cannot remain static. If it does, the organization will produce static software that freezes the business, opening opportunities for faster moving competitors to gain advantage. As workloads, requirements, and operating contexts shift, the practice needs to grow and evolve to continue meeting its raison d’etre: delivering software quickly and reliably.