In 2021, more and more companies across all industries will look to reap the rewards of DevOps for their business systems. DevOps yields better collaboration, more efficiency and reduced costs in the IT department. And it means faster delivery of higher-quality improvements for the whole business.
The benefits of DevOps are increasingly recognized, not just for software companies, but for all companies developing and customizing their business systems. In 2021, the question will be less about whether companies should adopt DevOps and more about how they do so successfully.
How can companies adopt DevOps successfully?
As DevOps itself comes of age, companies must mature into DevOps. Getting used to source control precedes choosing the right Git-branching strategy which in turn precedes building a successful CI/CD pipeline. Teams that try to implement the whole gamut in one go are less likely to see success. On the other hand, companies that gradually introduce tools and processes often build a DevOps culture, which is the real prize.
Invest in the right tools
Companies need to find the right DevOps tools. In our ecosystem, the Salesforce platform, some teams cobble together toolchains of open-source automation tools - because they’re free. But the time (and so the cost) of maintaining a cumbersome array of build machines, build agents, and deployment scripts multiplies the challenge of successfully implementing DevOps. These setups also exclude less technical team members from the DevOps process. Purpose-built, user-friendly DevOps tools make DevOps adoption more straightforward and guarantee a return on investment.
Even then, there can be a variety of such DevOps tools available - each with their particular emphases. How should teams choose the right tool for them? It’s important that teams first evaluate their current development and release process. What works well? Where are the pain points and the bottlenecks? Once there’s consensus on the answers to those questions, it’s time to find a solution that will supercharge what’s working well and eliminate the problems. Many teams want to preserve the essentials of their workflow rather than throwing everything out and starting from scratch, so they need to adopt a tool with the flexibility to support their way of working. This also has the benefit of dramatically reducing the ramp-up time for DevOps adoption.
Implement and optimize each process
DevOps comprises several automated processes: testing, releasing, monitoring, backups, and more besides. The aim is to get all these processes to work together as one well-oiled machine. But this can’t be achieved overnight, and not just because there are decisions to make about how to build and finetune the new workflow. It works best when teams get comfortable with each process on its own terms, and start automating once they have confidence in those processes.
Setting up and automating monitoring and backup jobs can be done straight away, and then optimized over time. These are fairly painless processes to implement, but provide a solid foundation for building a secure DevOps process that enhances resilience. Monitoring jobs provide the necessary information to help catch and debug errors, while the ability to restore from backups quickly is crucial for ensuring business continuity. Teams can always finetune later on, once it’s clear how well these automated jobs are running and the team has a better idea of what they need from them.
It also makes sense to automate testing early on for several reasons. Testing is often a very manual and time-consuming process, so automation saves lots of time and reduces the likelihood of tests being rushed or skipped when time is short. Testing is also inherently automatable, particularly at the unit level, because it’s a repeatable process. (UI testing is a little more cumbersome, and businesses have to decide for themselves whether the costs outweigh the benefits in their case.) A reliable test suite is one of the cornerstones of releasing frequently and confidently.
Moving to a source-driven CI/CD process usually requires more careful planning, depending on a company’s starting point. Teams can be reluctant to change the way they work, while managers can be tempted to skip to the end point by adopting everything in one go. But there's a happy compromise to be made: adopting source control first, then gradually implementing CI/CD. Each team needs to settle on the right Git-branching model for their workflow, observe and fix the problems that regularly derail deployments, and then automate deployments once they’re running reliably.
It’s important that teams expend their efforts where they have most leverage, by doing the work that’s most impactful for their businesses. Team leaders should resist prioritizing the superficial, emphasizing reporting and tracking in order to be able to wave a report at superiors. By focusing instead on real improvements, the results will speak for themselves. And as teams mature into DevOps, those results will keep getting better and better.
Build a DevOps culture
It’s absolutely critical that the people actually involved in development and releases aren’t forgotten in the move to DevOps. Failing to get teams on board with DevOps adoption is a surefire way to guarantee failure overall. You know you’ve successfully adopted DevOps, not just when you’ve implemented the right tools and processes, but when you see a DevOps culture emerging in your team.
The approach to adding tools and processes described above helps to get buy-in from team members: they understand the value of each process, they know how it works, and they’re involved. Teams then change how they work. They slice up work into smaller, incremental improvements. They release faster and more often, and can roll back deployments if needed. They collaborate more readily. They’re more productive. Their companies get increased agility - in other words, more improvements and adjustments to business systems delivered sooner. And resilience is enhanced - downtime and data loss are kept to a minimum and can be navigated successfully.
Successfully implementing DevOps involves tools, processes and people, and it requires getting all three right. DevOps is about making incremental improvements and being agile enough to adjust plans or even take a step backwards - and DevOps adoption should be the same. In 2021, take the next step towards DevOps maturity.
Matt Dickens, Chief Product Officer, Gearset