Crafting an Effective DevOps Strategy
Source – virtual-strategy.com
Uptake of DevOps tools and practices in the context of faster software releases, cloud adoption and improving innovation velocity has been on a tear away pace over the last couple of years. However, it is still early days for maturity and standardization of DevOps processes in the enterprise, with several barriers – both human and technological – to be overcome.
IT leaders are constantly challenged to adopt standardized DevOps practices that deliver faster software releases with higher quality in pre-production, while still giving teams the freedom to string the tool chain of their choice, all the while creating a continuous integration loop with production systems. This is a universal mandate.
While speed is paramount, in order to develop an effective DevOps strategy, I find it helpful to balance speed with a few other considerations.
It’s About Moving Faster, But with Higher Quality
DevOps is about moving fast with a focus on continuous integration and delivery (CI/CD). However, speed should not shortchange software quality. Catching bugs later in the release cycle is more expensive and the “redo” effort can create business impact. Balancing speed with quality is the first paradox. DevOps is a mashup of “development” and “operations,” so the central focus should be on changing IT processes to drive greater alignment. The goal is to get software developers to work more closely together with IT professionals who manage the infrastructure.
It’s About Moving Faster, But with Greater Security
Traditional releases treat security as an afterthought either because the Dev/Test engineer is not attuned to security needs, or the security aspects of the development process are usually bolted on. While this allows the release teams to checkbox security, it also creates vulnerabilities down the line. Security integrated between the Dev/Test and Ops teams as a holistic function can go a long way in hardening the security posture and adhering to compliance requirements. Balancing speed with security is the second paradox.
It’s About Moving Faster, But with Better Collaboration
IT departments are filled with professionals who take pride in their skills and specialty areas, but who often view collaboration and additional meetings as a waste of their time. It’s up to leaders to convince their direct reports that working as a cross-functional team will help everyone accomplish their goals better and move the organization forward much faster. While individuals move fast, organizations cannot scale. Eventually for enterprise-grade applications, performance at scale becomes a true differentiator. Balancing speed with silo-busting and collaboration and scale is the third paradox.
The top three barriers to DevOps adoption involve a team’s culture; the lack of test automation facilities; and the difficulty of integrating legacy on-premise applications with hybrid cloud environments. These top three barriers surfaced strongly based on feedback from 2,000+ IT professionals in a recent survey conducted by Quali.
Here are the biggest DevOps concerns raised by survey participants:
Improving the Culture
The number one barrier to DevOps success is culture, which should not be surprising because DevOps is not a set of tools — the tools are just a means to an end. DevOps depends on a cohesive culture of teamwork, yet a team’s culture can be the hardest thing to change. Management needs to take incremental steps to create employee buy-in, reinforcing the need for DevOps practices to create a competitive advantage in the marketplace.
Expanding Legacy Integration
Of course, when devising a DevOps roadmap, IT professionals must account for the many sunken costs of their existing legacy investments. Not all applications should be cloud-based or rearchitected into microservices. Sometimes the costs of such changes are just too high for the related benefits. In other cases, the barriers for compliance and governance are just too risky to put certain data into public clouds.
Strengthening Continuous Testing
DevOps spans the ongoing loop of continuous integration and continuous delivery, yet continuous testing often remains an afterthought. It’s critical to move fast, but not by jeopardizing software quality. To test software under real-world conditions, members of the dev, test, QA and compliance teams can adopt authentic replicas of their production environments within cloud blueprints. In this way, users can model and orchestrate full-stack environments to see how the software will perform on real-world physical and virtual infrastructures.
It’s important to recognize continuous testing as a crucial but overlooked aspect of DevOps, and as the missing link for CI/CD. Traditional testing relies on siloed development and testing, with long lead times between identifying bugs and solving them. In addition, rework efforts can cause delays that further increase the risk of missing software bugs.
By contrast, continuous testing is a quality assessment strategy in which incremental changes are tested constantly. Continuous testing uses automation to execute tests quickly and consistently, and to keep up with the frequent changes that are processed through DevOps pipelines.
Test automation can be performed by the DevOps master framework directly, or it can be implemented by using special purpose DevOps test framework tools. Integration to the DevOps toolchain then enables end-to-end testing across the pipeline.
The benefits of DevOps are real, but let’s face it – they can be hard to achieve and sustain. To keep making progress, think of your DevOps strategy as an ongoing journey rather than a destination, and keep moving steadily forward one step at a time.