DevOps transformation series: part three
In this blog series, we’re taking a deeper dive into DevOps, with top tips for how to empower your people and build a better toolkit for your teams. In this installment, we’re focusing on processes – laying solid foundations for your DevOps pipeline to help you achieve faster, quality software for your end users.
Whichever way you look at it, cultural change and terrific tools are nothing if you’re trying to shoehorn them into a traditional ‘trust and verify’ model. DevOps is built on Continuous Integration (CI) and Delivery (CD) – it embodies a culture, a set of operating principles, and a collection of practices – fundamental components that you can’t simply pick and choose.
Alongside CI and CD, you need to be working collaboratively. You need to incorporate automation into your workflow. And you need to monitor your efforts. Whatever else you decide to add on top, these processes will form the foundation of your DevOps pipeline. They’ll ensure everyone can work more efficiently and effectively to create even more value for your customers. In this article, we’ll take a look at each one in turn.
Get stuck into DevOps
If this sounds like the ideal anecdote to your DevOps dilemmas, take a look at our eBook: Approach to DevOps Transformation.
1. Continuous Integration and Delivery
What is it?
Developers merge their source code updates more frequently, and operations teams make sure they’re not creating a bottleneck with manual testing. Using automation, CI and CD bring conflicts and issues to light much earlier in the pipeline.
- Shifting left – testing early can prevent problems, increasing the quality of releases and avoiding issues cropping up at the end of the development cycle. Developers and operations teams can define ways of working by ironing out differences in deployment and making all environments as close to production as possible.
- Early and often – don’t integrate too late or too infrequently. If code spends too much time with one developer, you’ll face problems when it merges with the main repository. It will make it harder to understand conflicts and lead to lost time.
- Include testing in stories – developers need to be involved early on in user stories. This will help them understand product managers’ thinking and communicate business requirements. Plus, automated tests for features will be Built-into the process, cutting down time spent fixing bugs.
- Redefine roles – automated testing frees up QA engineers to spend more time supporting developers, leading to better testing strategies, tools, and datasets.
- Automation celebration – don’t let automation be seen as the enemy. Appoint automation cheerleaders to instill confidence and allay concerns. Focus on the fact automation takes care of tedious tasks so people can focus on more interesting projects.
What is it?
More than a cultural consideration, collaboration needs to be Built-into the way you work. It helps globally distributed teams align towards achieving common goals and overcome a number of potential problems. These include operational inefficiencies, problematic handoffs, redundant work and limited team problem-solving, impromptu changes that impact stability, inbox overload and unnecessary meetings, and uncertainty over roles and responsibilities.
- It’s good to talk – keep collaboration on track with constant feedback and clear communication. Use tools like Slack, Microsoft Teams, and Google Chat to stay in touch.
- Establish and share goals – make sure team-level and individual goals are well defined with clear objectives. Everyone should be working towards the same big-picture goals too.
- Don’t dismiss diversity – see the benefits of geographical and cultural diversity. Embrace different ways of working and learn from each other. And ensure inclusivity and sensitivity are central to your process.
- One organisation, one language – establish a unified way of communicating – face to face and digitally – that helps everyone feel invested and know that their contribution is valuable.
What is it?
DevOps is only possible because of automation – with the right tools, automated processes lighten the load, letting you speed up build, integration, testing, environment configuration, deployments, workflows, data synchronisation across systems, and more. That way, your people can focus on solving more complex problems.
- Consider the why – make sure there’s a defined purpose behind why automation is being used, from improving operational efficiency to empowering employees or ensuring process quality.
- Include the right people – it’s vital that key stakeholders are involved in strategic planning, particularly the IT team. The more they understand the goals, the easier it will be to get them to support automation and provide the resources you need.
- Start conversations about scaling – are you planning on a centralised approach or keeping automation limited to a particular function or team? Consider creating a ‘centre of excellence’ to explore new technology or practices, or delivery pods responsible for developing their own automated processes.
- Pick the right processes – automate tasks that are repetitive and prone to human error. Think about how they impact the customer experience and whether automation alone can solve issues, rather than wasting time and money on costly improvements first.
- Pick the right people – you’ll need a skilled and experienced lead developer, which might mean hiring in new talent, an eager team who you can train where necessary, and someone to oversee quality and manage automation.
- Gather the information you need – bring subject experts in early, hold a process walk-through so people can understand the changes, and document as you go so the new approach is clearly defined.
4. Metrics: measure your progress
What is it?
Monitoring your progress lets you learn what’s working and take actions to improve what’s not. By implementing, measuring, and improving, you’ll figure out where the bottlenecks are, and can take steps to remove them. There are three different kinds of metrics: time-based (to help you ship code quickly), quality (to ensure no matter the speed, standards don’t slip), and automation (to understand the impact automation has on deployment).
What to measure – there are lots of options when it comes to meaningful metrics, but as a starting point, you might want to include time to market, deployment frequency, change success/failure rate, security test pass rate, and mean time to recovery from pipeline failure.
Visualise your value stream – everything in the delivery lifecycle needs to create value, based on the customers’ wants and needs. Value stream mapping brings together stakeholders from across the business to document all the activities and hand-offs involved.
Metrics managed – value stream management lets you identify which steps are adding value and which aren’t, helping you break down operation siloes, encourage cross-team collaboration, and coordinate and automate workflows.
In the final installment of this series, we’ll explore which types of tools will enable your DevOps culture to thrive and your new processes to prosper. And we’ll cover how Adaptavist can help support your DevOps transformation.
Ready to read more right now?
Download our free eBook Approach to DevOps Transformation.