Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

How to Succeed With DevOps

DZone's Guide to

How to Succeed With DevOps

Most organizations understand the why of DevOps more than the how. There are strategies to follow to assure you reap the benefits from DevOps.

· DevOps Zone
Free Resource

Download the blueprint that can take a company of any maturity level all the way up to enterprise-scale continuous delivery using a combination of Automic Release Automation, Automic’s 20+ years of business automation experience, and the proven tools and practices the company is already leveraging.

There is no question that DevOps is an idea whose time has come. The promise of faster and more efficient application development and deployment fits perfectly with the agile enterprise. It is no surprise that 94 percent of enterprises are currently implementing DevOps.

But how does one implement DevOps? Most organizations understand the why of DevOps more than the how. In my experience, there are four critical success factors that make all the difference.

1. DevOps Is More Than Bringing Dev and Ops Together

As the name implies, DevOps is a mash-up of development and operations. Since most enterprises are highly siloed, the idea of development and operations working together to bring new apps to life is a foreign concept. However, you need to understand that a shotgun wedding of Dev and Ops isn’t enough.

The issue is in the process. Every company has complex and deeply ingrained processes that determine how things get done. To change how you deliver applications, you’ll have to change the processes, as well. For example, in many organizations, after a development team moves an application to production, it is thrown over the wall for operations to support. This puts a lot of pressure on the operations folks since they often don’t understand the details of application or how to monitor its health and performance. The culture that fostered the creation of deeply independent silos isn’t the same culture that will enable and foster a highly collaborative DevOps team. 

To be successful at DevOps, you’ll have to change your organization’s culture to alleviate this pressure. Development needs to work in conjunction with operations to support the application 24/7/365. to build health and performance monitoring tools, and to work together on application enhancements. There is no longer a separation between Development teams and Operations teams — they are the same team in a DevOps world.

This often requires a cultural change before DevOps will flourish, which brings us to the second critical success factor.

2. Obtain Support From Your Leadership

Joe works in development and wants to work with Sally in operations to streamline application development, but getting buy-in from their department leaders to change core processes has been difficult. Then, Joe and Sally make an executive-level presentation and get approval to move forward. Now Joe and Sally’s supervisors have a mandate from their bosses and approvals follow quickly.

To ensure the success of your DevOps efforts, enlist buy-in from executive-level leaders at your earliest opportunity. Also, make sure that these leaders understand that DevOps will more than likely change the way their organizations interact and support joint projects.

3. Automate

Getting executive level support and changing your culture and processes are difficult and crucial steps. To truly get the increased efficiency you’re looking for, you’ll need to go further. Automation of intensive development tasks is where you can save critical time.

For example, many organizations perform manual regression testing of an application before an upgrade. These manual and exploratory tests help developers ensure the changes they have just made have not introduced unintended performance issues or critical bugs.

However, manual regression testing is a tedious and slow process. Both development and operations need to allocate resources to get as close to a fully automated test suite developed for unit, functional, and regression tests to speed up development cycles significantly. In our environment, all members of a DevOps team are involved in quality engineering and testing. It’s the only way to make sure that both teams feel the ownership and responsibility for product quality.

Other areas for potential automation include routing new code for review, deploying new versions of the application into production, correlating operations logs and alerts, and triaging of application incidents.

4. Keep Your Operations Team Busy

The application development cycle is weighted towards developers in the early stages. Rather than have your Ops team sit idle, put them to work on non-functional tasks — important things that need to get done but don’t require a developer’s skill set.

For example, your Ops team can develop monitoring tools, find a way to instrument the application to look for performance issues or as mentioned above help with quality engineering and testing. It takes some up-front thought and planning, but make sure you keep everyone busy during all phases of the development cycle, as that will help with resource allocation once the application is in production and the entire team is helping with the inevitable support issues.

Implementing DevOps

DevOps is a movement whose time has come. In fact, it is likely you are tasked with implementing DevOps in your organization. By following the four critical success factors outlined here, you can assure you reap the benefits your organization expects from DevOps.

Allan Leinwand is chief technology officer at ServiceNow, the enterprise cloud company. In this role, he is responsible for overseeing all technical aspects and guiding the long-term technology strategy for the company.

Download the ‘Practical Blueprint to Continuous Delivery’ to learn how Automic Release Automation can help you begin or continue your company’s digital transformation.

Topics:
devops adoption

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}