Enterprises with big plans for DevOps transformation must first take a step back: A number of challenges stand in between implementing the new workflow and seeing its full spectrum of benefits.
DevOps implementation is currently "all over the map," said Jeff Sussna, founder and principal of Ingineering.IT and author of Designing Delivery: Rethinking IT in the Digital Service Economy. "There are some companies that we see at the enterprise DevOps conferences that are all in and making really comprehensive progress. In general though, the majority of companies I see are sort of grappling with it bit by bit, still trying to understand what it is and how to do it."
Research shows that positive results -- including faster deployments, fewer service problems, and more employee loyalty -- await those who get it right.
Here are five common challenges enterprises encounter on their DevOps journeys, to help prepare you to tackle any difficulties that may arise.
1. Gaining executive support
Executive buy-in is crucial for becoming a high-performing, fast-releasing DevOps organization, according to Elinor Klavens, a Forrester researcher serving infrastructure and operations professionals. However, "there is a disconnect between executives and practitioners on how they understand DevOps within the enterprise," she said. Executives and workers differ widely on their perspectives of strategy, progress, and customer experience, according to a recent Forrester report.
A few things can cause this: For one, executives may be paying the bills for DevOps tools, such as release management automation software, that aren't actually being used. For another, Klavens said, companies implementing DevOps usually do not measure everyone on customer experience: If non-customer-facing employees are working toward goals that impact customers, their metrics must relate to customer experience, as well as those of executives.
Design thinking is one way for companies to close this gap, as this approach focuses on customer outcomes, with the goal of delivering customer value throughout the continuous delivery cycle of DevOps. Capital One now uses this customer-centric approach to development, the Forrester report noted.
2. Focusing too intently on tech tools
Some organizations think that using Chef, Puppet, or Jenkins means they are automatically doing DevOps, Sussna said. But, "if you don't address how people interact with each other, provide services with each other, and share information, then it's not going to work," he added.
Additionally, if leadership is too focused on what products competitors are using, or on checking off a list of actions, they can lose sight of the outcomes, said Jennifer Davis, senior software engineer at Chef and co-author of Effective DevOps.
"Implementing any specific technology can be beneficial to an organization, but it could also be wasted work," Davis said. "Tools are accelerators that, without the appropriate context and direction, can harm the organization."
3. Assuming that DevOps begins and ends with a single team
When the organization as a whole believes that DevOps efforts are owned by one team, or by only development and operations employees, the effort suffers, Davis said.
"Understanding the context of other departments within our organizations helps to repair wasted time and effort spent on unnecessary work and helps to minimize unplanned work," Davis said. Security, marketing, legal, and sales can all be part of a successful DevOps transformation, she added. When you bring in these other teams, you may see automation in areas such as contract generation and compliance, Davis said.
According to Sussna, it's also imperative not to leave out the product management organization. "You're talking about feedback, delivery, learning, and you're trying to accomplish those things at a business level, not just a technology level -- what is it our customers want, what are they doing, what do we have to change to respond to them," Sussna said. "It's as much product management as it is development and operations. In order to have a productive conversation, we need product in the room as well as development and operations."
4. Mismanaging change
The technical challenges of any IT transformation including DevOps pale in comparison to the human factors, according to Bridget Kromhout, principal technologist at Cloud Foundry and lead organizer of the DevOpsDays conference. "When people worry that their jobs may change in ways they don't fully understand, or that they may disappear altogether, they'll mount subtle and overt resistance to change," she said. "Don't go chasing shiny new technology for its own sake: make measured, considered changes based on business value, not the lure of resumé-driven development."
It's also key for organizations to reexamine heavyweight processes to see if they are still relevant, given any new platforms and IaaS options, Kromhout said. "Change any misaligned incentives that promote throwing code over the wall -- the new attitude should be that we're all in this together," she added.
5. Trying to do everything at once
Organizations often face challenges when they try to do everything all at once, according to Kevin Curran, an IEEE senior member and professor of cybersecurity at Ulster University. It's important to start on a small scale, produce results that you can show to all teams, and then scale up, he said. "Knowing that it takes time to implement DevOps practices can save a lot of stress in the long run," Curran added. "It really is a transformative process."
The process should also be iterative at the team level, Davis said. "Connect with other individuals trying to effect change within the organization and work together," she added.