Number 30 sign on railroad tracks

30 common challenges to DevOps and how to resolve them

As DevOps becomes mainstream, many teams are asking themselves, “Where do I start with my DevOps adoption?” “What challenges am I likely to face along the way?” and, “How do I resolve those challenges?” These are just a few of the recurring concerns I heard from enterprise DevOps teams during a series of focus groups I ran over the past year.

From those sessions, I've compiled below a list of the most common challenges DevOps teams say they face, along with solutions that just might help shape or refine your own DevOps journey.

DevOps Enterprise Summit: Experts share lessons learned

How to reach the DevOps pinnacle

DevOps is the pinnacle that everyone has been trying to reach as organizations move from traditional, waterfall approaches to iterative development, agile, scaled agile, and, finally, DevOps. DevOps moves the focus from development to delivery—a subtle but important distinction.

For the better part of my career, I’ve worked for, and consulted with, organizations that were trying to improve the way they deliver software-intensive products across a variety of industries, geographies, and scales. More recently, I’ve focused on a series of DevOps innovation and optimization workshops. Each is a six-hour, facilitated discussion with enterprise executives and senior leaders. Taken collectively, their experiences show what is, and is not, working in the DevOps space and the challenges organizations face when trying to get DevOps right.

The DevOps movement has matured to the point where the latest books on the subject, such as The DevOps Handbook, by Gene Kim, Jez Humble, Patrick Debois, and John Willis, and The DevOps Adoption Playbook, by Sanjeev Sharma, focus more on practice than theory and offer many case studies.

The top 30 DevOps challenges

With so many organizations considering the practical aspects of making DevOps work, I decided to dig into data captured from more than 100 DevOps workshops to identify the most common recurring challenge areas. Here are the top 30:

  1. Environment provisioning
  2. Manual testing
  3. No DevOps center of excellence
  4. Test data
  5. Manual deployments
  6. Planning in a DevOps environment
  7. DevOps and suppliers
  8. DevOps and governance
  9. No integrated tools architecture
  10. Manual releases
  11. No DevOps metrics
  12. DevOps and team composition
  13. DevOps and regulatory compliance
  14. No service virtualization
  15. DevOps and specialist skills
  16. Traceability across the DevOps landscape
  17. Large releases
  18. Inconsistent environments
  19. Agile confined to developers
  20. Limited transparency
  21. Manual processes
  22. Collaboration between development and operations
  23. No DevOps vision or strategy
  24. No production-like environments
  25. Waste in existing processes
  26. Limited customer feedback
  27. Elicitation of nonfunctional requirements
  28. Collaboration across all IT disciplines
  29. Collaboration between business and IT
  30. No standard SCM repository

This list of challenges is a mixed bag, for several reasons:

  • There is overlap (for example, between manual testing and manual processes).
  • Some challenges focus on people (no DevOps center of excellence), some on process (planning in a DevOps environment), and some on technology (environment provisioning).
  • Others focus on the enterprise (DevOps and suppliers) rather than a team (elicitation of nonfunctional requirements).

Even so, the list gives you an idea of what to look for when examining your own DevOps adoption. But don’t treat it as a checklist. Every organization has its own unique challenges, and your greatest challenge may not even be on this list.

A practice-based approach to problem solving 

While you can find several options for resolving each of the 30 challenges, all solutions are rooted in the application of well-defined and well-understood DevOps practices—and the DevOps principles from which those practices are derived.

A few years ago, I led an agile transformation at a major European bank. We knew the problems and were searching for answers. It was obvious that some of the challenges focused on people, some on process, and some on technology. But the nice thing about focusing on practices is that each practice takes into account all three elements.

For example, one challenge, manual deployments, resulted in poor productivity and an excessive amount of human error. Introducing the practice of automated deployment as a resolution to the challenge presented by manual deployment is the obvious solution. What isn't obvious, however, is that this practice is not just about tools. Since we:

  • Focused on people, we needed to refine the roles that performed deployments. In this case, we wanted developers to initiate the promotion of a code package to the next environment (but not production, which required explicit sign-off) if it had passed the relevant tests.
  • Focused on process, we needed to streamline the process by which software was deployed, thereby removing unnecessary control points and waste.
  • Focused on technology, we needed to automate the process using relevant tools.

We spent an entire day reviewing every practice in an available library to both understand the intent of the practice and to agree on its applicability. This ultimately resulted in a roadmap of adoption practices that drove the transformation.

Develop your own roadmap

Given the importance of practices in resolving these challenges and in developing a DevOps adoption roadmap, I’ve analyzed practices available from many different sources, as well as the principles on which each was built. Those sources appear in the chart below, along with the associated era and origin (heritage) for each.

Key sources of DevOps principles and practices.

This analysis is a work in progress, and you'll find the latest updates at bizdevops.uk. In time, I hope to develop a comprehensive set of principles, practices, and challenges that can serve as a foundation for anyone wanting to gain a better understanding of DevOps and how it applies to them. I also intend to capture the alignment of principles, practices, and challenges. Some examples of alignment appear below.

 

Alignment of DevOps principles, practices, and challenges.

Next steps

DevOps, which is becoming mainstream, represents a significant step forward in bridging the often-entrenched boundaries between the business, development, and operations. The challenges organizations face with DevOps are many, but well understood, as are the practices and underlying principles you need to apply to resolve them.

If you want to hear more about my ongoing analysis of common DevOps challenges, practices, and principles, or if you would like to meet face-to-face to discuss all things DevOps, I’ll be presenting at the upcoming DevOps Enterprise Summit London with Mark Howell, DevOps lead at Lloyds Banking Group, in the session "From Theory to Practice: Making DevOps a Reality at Lloyds Banking Group." Can’t make it? No problem. Just post your comment or question below.

DevOps Enterprise Summit: Experts share lessons learned

Image credit: Flickr

Topics: DevOps