Benjamin Rehberg, Partner and Managing
Director, The Boston Consulting Group
Agile methodologies have given companies just what they need in the digital era: a collaborative and flexible way to develop software (and even optimize some of their other business functions as well). To build on the impact of agile—and realize even greater transformative change and success—a number of forward-looking companies are also implementing a second set of practices known as DevOps. DevOps means that people from IT operations (who usually work separately from developers) are brought onto cross-functional agile development teams. In addition, DevOps puts a heavy emphasis on automation. Essentially, this set of practices takes agile a step further and applies it to the rest of the software life cycle: deployment, release, operation, and monitoring.
And we’re seeing some incredible results from DevOps! The financial services company Nationwide, for example, has achieved a 70% reduction in system downtime and a 50% improvement in code quality.
DevOps can allow companies to tackle security issues in half the time they traditionally require, release new code on demand instead of on a fixed schedule, and reduce IT costs significantly. Furthermore, components of DevOps—such as automated testing and automatic provisioning—are essential enabling capabilities to further mature agile practices.
•Faster Delivery of Features and Changes. DevOps helps companies accelerate the time-consuming tasks in IT operations, primarily by doing things like automating testing to provide developers with faster feedback. DevOps also allows companies to release fixes as needed and seal breaches fast—often within hours rather than days.
•Greater Efficiency. DevOps lets IT professionals devote more time to value-creating work. For example, testing and integration can be simplified to just clicking a button on a self-service portal.
•Better Quality Code and Faster Recovery from Failures. DevOps also keeps developers involved and on the hook throughout the life cycle of a feature or an application. Ultimately, fewer fixes are required because developers are looking for and eliminating potential problems as they write the code.
So how do we make DevOps actually work in an organization? Just like with agile, there’s no single “textbook” implementation model. However, we’ve found the companies that have successfully implemented DevOps generally follow these five best practices.
Automate the software life cycle in stages. Companies should see automating the software life cycle as a journey—one that should be carefully orchestrated. Analyze the current development process and challenge frequently used routines. If there are tests that code always passes, consider whether they should be discarded rather than automated.
Standardize tools, processes, and practices. Standardized approaches, as opposed to ad hoc solutions, reduce errors and improve knowledge sharing. They are a prerequisite for implementing automation, which lies at the heart of DevOps. Standardization also reduces the overall number of tools companies use, increasing efficiency and potentially reducing costs.
Rethink the team structure. DevOps is about collaboration and communication among everyone with a stake in the software. So a team’s roster doesn’t have to end with IT; it can include other stakeholders, such as security experts. Capital One has actually implemented a variant called DevOpsSec.
Facilitate the needed cultural shift. With code changes integrated and released much more frequently, teams need to rethink, and even overturn, long-standing practices—formal and informal ones alike. Implementing DevOps means that teams need to learn to share knowledge. Regularly having internal “DevOps days” can provide a venue for team members to spread the word about best practices while learning more about one another’s roles.
Develop new KPIs. These could measure, for example, the number of code commitments occurring each day and the time between commitment and deployment to production. A solid set of KPIs helps identify not only bottlenecks but also processes that can be improved. And this highlights a crucial point: DevOps can and should evolve over time.Agile methodologies go a long way toward helping companies develop software in the digital era; DevOps practices help them transform the entire software life cycle. With careful attention and planning, this new way of working can help companies deliver high-quality software more efficiently and more effectively than ever before.