30 common challenges to DevOps and how to resolve them
Source – techbeacon.com
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.
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:
- Environment provisioning
- Manual testing
- No DevOps center of excellence
- Test data
- Manual deployments
- Planning in a DevOps environment
- DevOps and suppliers
- DevOps and governance
- No integrated tools architecture
- Manual releases
- No DevOps metrics
- DevOps and team composition
- DevOps and regulatory compliance
- No service virtualization
- DevOps and specialist skills
- Traceability across the DevOps landscape
- Large releases
- Inconsistent environments
- Agile confined to developers
- Limited transparency
- Manual processes
- Collaboration between development and operations
- No DevOps vision or strategy
- No production-like environments
- Waste in existing processes
- Limited customer feedback
- Elicitation of nonfunctional requirements
- Collaboration across all IT disciplines
- Collaboration between business and IT
- 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.
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.