We’ve all read about how DevOps can revolutionise the way organisations use technology to deliver business value. Think higher-quality software that aligns better with strategic objectives, all delivered faster and with lower total cost of ownership.
Most are quickly won over by these and other promised benefits of instilling a DevOps culture in your technology teams. But that’s where the simplicity tends to end. Because how do you actually make the shift from the way you build and release software now, to the utopian vision painted by the DevOps advocates?
To help you navigate the right path, we’ve put our heads together to come up with six practical steps that will get you moving in the right direction.
1. Get your management team on board
Instilling a DevOps culture takes time and effort, which your management team is ultimately paying for. Without their ongoing support, you won’t be able to do anything.
Show them how they’re likely to benefit. This often means demonstrating where they’ll save money. It could also be showing how you’ll get new products and services to market faster. Or it may be how DevOps will enable your tech team to spend more time on value-adding innovation, rather than the mundane, manual tasks associated with the traditional software lifecycle.
2. Bring your development and ops teams together (in body and in spirit)
DevOps demands that previously siloed development and operations teams are brought together as one, all pulling towards the same goal. Locating them in the same office (if you’re office-based) is part of the story. The bigger challenge is to change the way people think: you’ll be asking individuals to understand and play a role in the full application lifecycle, rather than just being a developer or an ops specialist.
To start building the understanding and trust that’s required to blend these teams into a single, slick DevOps operation, breed a culture of openness and collaboration.
Get your development teams to attend the operations teams’ standups, and vice-versa. Set up lunch-and-learn sessions for the teams to present to each other how they do things. Get team members to shadow the other team, to learn what a typical day looks like for them.
3. Define everything in code
Linked to the previous point is the notion of defining everything as code, from the setup of your continuous integration pipelines, all the way to the production systems running your applications themselves.
This creates vital transparency, making it easy for everyone to see what’s going on at every stage of the development and release pipeline.
This helps avoid situations where critical knowledge is locked in one person’s head. It ensures changes can be tracked and audited. And it means when things go amiss, it’s simpler to see what’s happened and what needs to be done to fix it.
4. Find the right tools
DevOps is about tools as much as it is about people. But there’s no one-size-fits-all solution. Some will find that Docker becomes central to their workflow. Others will use different software. The key is to find what works for you. Try things out, and if they don’t work, learn from the experience and try something else.
5. Let the computer do the work!
We touched on how well-implemented DevOps can release resources for innovation work, or enable you to get products and services into the hands of your customers more quickly. Key to both is to automate wherever you can.
Ask any developer or ops specialist what aspects of their jobs they find the most frustrating. Chances are they’ll list off numerous mundane tasks that are essential to the overall process of building and releasing software, but are mind-numbingly dull. Make these the first focus of your drive to automate.
6. Tighten the feedback loop
Under traditional software development and release cycles, getting bugs fixed or new features into customers’ hands can be painfully slow. DevOps promises to change this, and it’s important you focus on delivering on this. This means tightening your feedback loop: shortening the time it takes to get new releases out.
Break bigger tasks down into numerous smaller ones, release them, listen to feedback and then adapt what you do next. This speeds up time-to-market or time-to-value. Plus, the ability it gives you to adapt along the way means the end result is much more likely to align to your organisation’s aims, compared to something that has to be set in stone at the start of a long development and release process.
And finally…
We’ve one additional tip for you to wrap this blog up. We’ve seen numerous businesses try to instil DevOps as a side project, with people contributing the odd hour here and there when their workload allows.
This rarely leads to successful outcomes, so we urge you to give your DevOps initiative the resources and commitment it needs. By doing so, you’ll give yourself the best chance of success, which will in turn help secure the priceless buy-in you need if you’re to instil a permanent and productive DevOps culture in your organisation.