Common challenges to DevOps implementation
According to a 2017 Right Scale report, 84% of companies surveyed had adopted some aspects of DevOps, but only 30% achieved full implementation company-wide. Looking closely at the reasons why, it’s clear that the most common obstacle to complete a DevOps implementation has nothing to do with a company’s tech resources. With few exceptions, the biggest roadblocks are organizational and cultural.
Not to discount the importance of technology, monolithic legacy platforms can make it difficult to set up the development, testing, and delivery environments that are essential to DevOps best practices. With Global 2000 companies, tech issues are rarely insurmountable.
CI/CD process blockers
One of the most common impediments to DevOps adoption is a form of resistance to the CI/CD process...most notably, a reluctance to completely abandon a waterfall development model. This preference is understandable because waterfall is the way companies have approached software development for decades—even if unsuccessful. Waterfall offers a false sense of predictability and security: We know the schedule, the exact spec, and exact dollars.
In reality, 66% of enterprise projects experience failure, $30 billion is spent on software that doesn’t deliver the value the business expects, and 80% of budgets are spent fixing issues from a previous version of a release.
If it’s taking a development team a year or more to develop a mobile app, something is broken. In a year’s time, numerous OS changes and competing products will be introduced. By the time a product is launched, the team will likely have to start all over again because the landscape has completely changed during development.
Another misconception is the prevailing notion that the speed of CI/CD development is achieved at the expense of security. In fact, security is an integral part of the CI/CD process. However, it’s integrated into the development process instead of treated as a separate oversight function. Remember, the automated testing and deployment used in the CI/CD process eliminates a lot of the human error inherent in manual testing and deployment. Likewise, logging and monitoring functions built into the pipeline will identify problems earlier. Security is at the core of a robust CI/CD approach and not a separate endeavor.
The false dichotomy of ITIL vs. DeVops
A key issue for large organizations is the belief that the processes they’ve established can’t be changed. This is particularly true for strict adherents of Information Technology Infrastructure Library (ITIL) standards. Some believe that DevOps is at odds with ITIL, but that belief is misplaced.
Take testing for example. DevOps fulfills ITIL through test-driven development. Changes to code trigger automatic tests, the results of which are often available in minutes, instead of hours or days. Likewise, the objectives of DevOps best practices, such as continual logging and monitoring, are in lockstep with those of ITIL Service Asset and Configuration Management processes.
The only real difference between traditional ITIL organizations and their DevOps counterparts is the assignment of responsibility for ensuring user satisfaction. ITIL organizations typically compartmentalize functions. DevOps, however, makes all aspects of user satisfaction the responsibility of a cross-functional team that spans development, testing, and operations. In this way, DevOps enhances ITIL by breaking down silos and empowering organizations to react faster to user needs.
The biggest mistake organizations make is resorting back to manual and waterfall deployment models because they think DevOps isn’t working. The ‘fail fast’ mentality means you will have some bumps along the way and the leadership needs to ride out the wave.
- Director of Technology, Ed Price