Follow these ten DevOps best practices to set your business up for success
There is a lot of change when you start getting into DevOps and Scale Factory’s Cloud & DevOps expert consultants know this better than most. Your people have gone from being deeply technical in one area (such as software engineering) to having to understand architecture, infrastructure, configuration, databases, network, monitoring, logging and a bucket of tools and technologies just to stay afloat.It’s no wonder that while this transformation is taking place, teams lose track of what is truly important to be successful and achieve the aspirations set out at the beginning of the transformation journey.To keep you on the right track and ensure you feel the full benefit of successfully adopting DevOps, here are our ten best practices you need to follow:- Technical debt must be a priority Ensure technical debt is part of your delivery process and is equal in priority to any other task
- ‘Success or learn’, not ‘success or fail’ Create a safe environment for failure and protect your team fiercely from critics of any failings Ensure that if failure happens, it is mitigated or permanently resolved immediately
- Prioritisation is more important than resourcing Ensure that work is prioritised and do not take on additional work without giving up other tasks or by increasing your resources to deliver the work
- Communication is key Create a plan that communicates to different audiences within the business and outside regularly and in several different formats
- Sharing enables independence Identify the tools, technology and approaches you could share with the wider business Add demonstrations of this to your communication plan
- Flexible frameworks are better than rigid methodologies Identify the principles behind the different stages of your release process and create rules behind these that enable consistency from the wider organisation Build your preferred tooling into the tools and services that you share with the wider organisation
- People over process, process over chaos Identify processes that need to be streamlined and can be automated Identify areas where processes do not exist and create simple pragmatic processes (ideally automated)
- Be truly pragmatic When releasing changes to the business, think about the value of the change rather than the quality
- Slow is smooth, smooth is fast Identify areas of your workflow that are currently being completed by humans that could be transferred to a computer within a small amount of time
- Consistency is king Work on your agile process and refine it until you are delivering at least 80% of the work that is started as part of your sprint Measure your Say/Do Ratio to ensure you are delivering what you commit to
Download Your Free Checklist Now
Continue reading to learn why each best practice principle is so important to making your DevOps initiative a success.1. Technical debt must be a priority
Action: Ensure technical debt is part of your delivery process and is equal in priority to any other taskWhy: When planning your teams’ work, allow for technical debt resolution. It cannot be an afterthought. It must be an active part of every delivery. Even if there is no technical debt to resolve, the team should be focusing this time on improvements, not on releasing low-value features.Think of it this way: you are trying to climb a mountain and every ten steps someone gives you a 100g weight. This is your technical debt slowing you down. A little bit of technical debt is okay. It’s annoying and a bit more challenging, but it is not the end of the world. But after you’ve taken a hundred steps, you now have 1kg. Now it’s noticeable. A thousand steps later it’s 10kg and it’s really slowing you down. So unless you are actively taking it off, it grinds you to a halt.Now imagine you can’t stop the weight being added but instead every thousand steps you could remove 20% of that weight. Or even better, you could put that time into creating a slide so as new weight is added it just falls straight off. Eventually, by reinvesting the time into improvements, you can increase the amount of technical debt that can be handled and how quickly you can remove it again.This hidden weight caused by technical debt forces you to focus on it. You must create a positive process that eventually guarantees that you will always improve the situation.2. ‘Success or learn’, not ‘success or fail’
Actions: Create a safe environment for failure and protect your team fiercely from critics of any failingsEnsure that if failure happens, it is mitigated or permanently resolved immediatelyWhy: Accepting failure is a key part of a DevOps journey. It allows you to be more pragmatic and to focus on the actual problems in a structured way. But by thinking of it as a failure you are stating it had no value. That is not true. It has value because you learnt what not to do. This is why we prefer “success or learn” as whatever the result, you are learning something: either something to not do or something to do better next time.Encouraging this learning mindset is important and you can apply it in multiple ways. For example, you can encourage learning and collaboration within a team by discussing and resolving any potential learning opportunities as a group. If an engineer released a change that broke production you can, as a group (with the engineer) resolve that issue, giving them a learning experience they won’t forget and they won’t make that same mistake again.The important thing here is the shift. As you, the team, the department, and the business gradually learn to embrace the ‘success or learn’ mindset you will spend less time on the blame game and more time on resolving the issues, educating your staff, and creating an environment where people want to be successful.3. Prioritisation is more important than resourcing
Action: Ensure that work is prioritised and do not take on additional work without giving up other tasks or by increasing your resources to deliver the workWhy: One thing we’ve heard a lot is “I don’t have the resources to do that.” That is only true if the resources don’t exist. If any resources do exist, then it’s not a resourcing problem. It’s a prioritisation problem.The most common mistake across IT management is a lack of proper prioritisation. Everyone has too much work. The difference between those that succeed and those that do not is the ability to anticipate the business needs and to prioritise their work to ensure the most valuable work is being done at the right time.This can take the form of a formal review process between the management teams and the key stakeholders or it can be done informally but it is hard to get consensus if done one-on-one.Think of your resources as a bucket: you can add water into the bucket but it can’t overflow. If it looks like adding more water will cause it to overflow then some water needs to come out first, or we agree the water waits until there is room. If this is not acceptable then you go to the common management point and ask them what water comes out, or to increase the size of the bucket. A good manager will understand this and help prioritise the work or volunteer additional resources. A bad one will ask you to do more work with the same resources while not allowing you time to improve the services to give additional capacity.4. Communication is key
Action: Create a plan that communicates to different audiences within the business and outside regularly and in several different formatsWhy: When transforming an organisation, you must think about positive messaging and clarity. It’s easy after six months for people to just say “What transformation?” When you are in a steady state it is also easy for people to forget that you had to deal with several outages or ad-hoc projects and that’s why their important programme was delayed.You can mitigate this by being open and transparent, and ensuring you communicate in several different ways. If you think you are doing enough, you are probably two to three times below what you should be doing. Here is what you should consider good for a team of 5-10 people in addition to status update meetings, stand-ups and other business meetings:- Weekly update newsletters to the development teams/key stakeholders
- Fortnightly lunch and learn sessions sharing what the team has been working on and what is coming up, new tools, new tech etc.
- Monthly meetups to share larger projects and programmes, either internal or external
- Quarterly hackathons with the wider organisation to share ideas and get feedback on existing project delivery
5. Sharing enables independence
Actions: Identify the tools, technology and approaches you could share with the wider businessAdd demonstrations of this to your communication planWhy: When a transformation to DevOps starts, it’s very common for people to hear ‘efficiency’ and translate that to redundancy. While it’s not what is said, it is how it’s heard. This encourages people to hold onto knowledge for job security.When DevOps is successful, there is a mindset shift from ‘that’s my job’ to ‘that’s great, I can do a new job’. To help understand this, let’s talk about a software release. In immature organisations, the DevOps team or operations team still manages the releases to production. There will be some loosely veiled reasons such as security, or it’s too hard, or they don’t understand it, but it all comes down to FUD (fear, uncertainty, and doubt). What these engineers need to understand is that by passing that responsibility over in a safe way they can spend more time learning and developing better solutions.By sharing information, tools, and approaches with the wider organisation, they can eventually reduce the amount of work they are doing as long as they are also investing time into making the necessary improvements.6. Flexible frameworks are better than rigid methodologies
Action: Identify the principles behind the different stages of your release process and create rules behind these that enable consistency from the wider organisationBuild your preferred tooling into the tools and services that you share with the wider organisationWhy: If you’ve ever been told how to do something better, you know how annoying it is to have someone tell you to work differently. People do not like being told what to do. They like to think and create innovative unique solutions. As humans, we often ignore processes or avoid following a methodology. That is why it is better to have flexible frameworks rather than strict methodologies.You can use any method of configuration management you like as long as:- Configuration changes are immutable
- Configuration management only configures an application, starts a service, stops a service
- Configuration management does not configure infrastructure, deploy services or update a third-party service










