If you’ve been following our recent series of DevOps best practice articles, you’ll know all about what successfully scaled DevOps practice looks like within an organisation. But what about some of the threats to your DevOps success?
Here are some of our tips on how you can address some of the challenges you’ll face, head-on. You need to start by addressing the disparate adoption of DevOps amongst your teams by embracing agile development practices, continuous integration, DevOps tooling and automated testing.
This is about building a devOps culture and enabling development teams to take advantage of working at scale. So, look for elements that are common between teams and how they can be expanded to span multiple teams. Encourage teams to actively contribute to shared tooling so that best practice and new features can be shared and adopted across the wider group.
With this in mind, try to avoid creating a dedicated DevOps team to work alongside development teams because this approach effectively creates a new silo and works against what DevOps is trying to achieve. If you need to create a dedicated DevOps team, then it should focus on creating tooling to empower the developers. Instead, think about embedding a DevOps engineer as this will speed up a development team’s ability to release code. It will also create infrastructure and networking elements. Then empower the DevOps engineer to take ownership of their infrastructure.
Another key challenge you may need to overcome is how to address different stakeholder interest in DevOps – from developers and operations, to security teams and change management. Whilst some will want to improve testing strategies, others will want to improve continuous integration and deployment of code. Operations will want to enhance automation of infrastructure, whereas security teams will want to see a shift-left approach where application quality and security is closely aligned with the developer.
In an ideal world, you will want to achieve all stakeholder goals, but the reality is that they will need to be prioritised. Being able to prioritise them to deliver high quality, secure code rapidly, will be one of your biggest challenges. The first thing to consider here is what the greatest problems or issues slowing the speed at which you can release code are. Establish which are affecting the quality and security of code being produced. From there, develop a roadmap of priorities which will help you to overcome the challenge of conflicting goals.
To inform that roadmap, it’s vital to take into account other major initiatives which might be underway and which could impact your priorities, such as a re-platforming or major change to application architecture. Teams will often be under pressure to meet these project deliverables, whilst taking on greater DevOps responsibilities, so it’s important to think carefully about which capabilities should be targeted for improvement first. For instance, a cloud migration might be tied to a move to an immutable and infrastructure-as-code approach.
Finally, ensure that you have a solid foundation of best practice in place at all times. Your teams need to ensure that they don’t compromise when it comes to the core elements of your platform. This includes things like a scalable and flexible build process. The build process needs to be designed in such a way that it can quickly adapt to changing business and technical requirements. This might include managing a large number of development artefacts, so it should also be flexible to account for a number of different automated testing frameworks. These core elements should ideally be adopted by multiple teams and should be constantly reviewed and improved over time.
The threats to successful deployment of DevOps at scale are many, but by sharing your experiences with your peers and drawing on the experience of others in the industry, you stand a good chance of achieving your aims.
6point6 has a wealth of knowledge and experience in helping organisations to develop, embed and scale their DevOps capabilities.