Everything from attitudes to specific technologies, frameworks, and methodologies can get bundled into the basket of DevOps best practices – it’s a wide remit, and all perspectives can be relevant.
DevOps has become very well adopted as an approach by IT in the 21st century. Many organizations have shown real benefits from adopting DevOps: faster creation and delivery of changes, financial savings, and better customer and staff experiences. It has shown itself to be worth considering for most organizations – no longer a fad or experiment, but mainstream good sense.
As with just about every successful new idea, people and companies want to try it out, and so they ask those already doing it ‘what should I do, what can I copy from you, tell me your tricks, show me how? At school, we called this copying. In business, we call it ‘seeking out best practices.’ So, that means there are a lot of people asking for information on DevOps best practices. Firstly, let’s be clear what we mean, and why such a diverse range of things can fit together under this heading.
What is ‘best practice’? Really, just a description of something someone else has tried that worked for them. This is a technique we have used all our lives – asking friends for advice, reading cookery books, etc. Whether it’s friendly advice, recipes, or DevOps techniques, we should look at a best practice from a range of aspects:
- How well is it working for other people?
- How close to my situation is the one it’s working in?
- How difficult will it be for me – cost, convenience, timeframe, staff and management resistance, etc.?
This applies to most situations. If we ask about best practices for cooking, the answers might range from ‘keep the work area clear of clutter’ through to use an electric fan oven to which recipe book best fits your situation. The range for DevOps best practices is just as broad.
The relevance of each best practice for you should include asking, ‘does it feel right’? Do not underestimate how important it is that an approach or technique feels right in your situation, you know more about your situation than anyone else, and you should trust your judgment.
We will mostly use the term ‘best practice,’ but remember it’s mostly just good sense that has worked for other people. Now, some DevOps best practices from that wide range of candidates.
DevOps Best Practices: Attitudes and ways of working
Let’s look first at some of the behaviors and approaches seen as essential to success.
Patience: DevOps is built upon changing the attitudes and behavior of an organization. It can’t happen overnight, and it won’t happen just because management says it should. False expectations, like seeing results in a few weeks, will destroy the longer-term path to benefit. So give time for …
Cultural Change: Culture can be seen as “the way an organization does things”: driven by human perceptions and preferences. It changes, but the changes have to be through influence, reinforcement, and encouragement. Good sense says this needs long term planning and some measurable targets. There are lots of good books and courses to help, but ultimately it rests on understanding your staff and your stakeholders.
Communication: DevOps needs collaboration and, above all, shared goals understood by all. The best organizations spend time, effort, and money on ensuring that all staff are working towards the same ends. Effective communication requires a range of techniques suited to the people involved. No single answer, rather a question that needs to be answered for each company. But best practice implies that a single method will not work: variety and reinforcement seem to work best. Communication and sharing is a key aspect of another good sense practice …
Knowledge management: If one of your DevOps teams comes up with a cool new idea that delivers, you want them to share that idea with other teams so that everyone gets more effective, and the company performs even better. Contributing good ideas and being able to access lessons learned by others beforehand is at the heart of good knowledge management and that in turn drives more effective DevOps.
These are a range of good common-sense practices. They will help your DevOps journey. In fact, they help with just about any change in behavior journey – be that an IT division’s journey to new ways of working or your child’s journey to maturity. Shared understanding, empowerment, trust, etc. are powerful tools for DevOps success, as is enjoyment. IT staff, like the rest of the human race, are more effective when they enjoy what they are doing. DevOps techniques, not coincidentally, deliver that essential work satisfaction far better than old school methods ever did.
DevOps Best Practices: Some tangible stuff – things you can see and buy
Automated testing: Fundamental to generating fast-flowing work, automated testing gives developers (almost) immediate feedback on their work and incorporation of that work into the central code repository. Without reliable and trusted automated testing of code, DevOps cannot deliver the anticipated benefits.
Monitoring and dashboards: Get the right software to help you know where you are, how your services perform, and what your stakeholders think of you.
Toolchain knowledge and maintenance: It is most certainly good DevOps practice to pay attention (and time and money) to your toolchain: building, refining, and improving it. Best practice is to stay aware of new possibilities and development and ensure your toolchain still matches your requirements.
DevOps makes use of existing approaches, and so many frameworks and methodologies – very often billed as best practices – are fundamental elements of good DevOps practice. Familiar names mostly, so likely well known.
IT Service Management (ITSM): Whether you see that as ITIL, COBIT, ISO/IEC20000, or something else, much of the conventional ITSM practices are good sense for DevOps teams to embrace. Key concepts like Availability, Capacity, Continuity need to be understood in a DevOps environment just as in a more conventional one. So taking note of ITSM is a sensible DevOps best practice for sure.
Agile, Scrum, Kanban, Lean: Well established ways of working that all make great input for your DevOps working methods. They are all good, and well know tools to help. Many leading DevOps organizations have used these as starting points and adapted the ideas to match specific situations, opportunities, and constraints.
And the last, almost universal, best practice is Continual Improvement. Measure, improve, measure again, advertise your success, and keep going round that improvement cycle.
DevOps Best Practices
Everything from attitudes to specific technologies, frameworks, and methodologies can get bundled into the basket of DevOps best practices. DevOps Best Practices: Some tangible stuff – things you can see and buy. Automated testing. Monitoring and dashboards. Toolchain knowledge and maintenance. DevOps makes use of existing approaches, and so many frameworks and methodologies – very often billed as best practices – are fundamental elements of good DevOps practice. Familiar names mostly, so likely well known.IT Service Management (ITSM): taking note of ITSM is a sensible DevOps best practice for sure. Agile, Scrum, Kanban, Lean: Well established ways of working that all make great input for your DevOps working methods. Continual Improvement. Measure, improve, measure again, advertise your success, and keep going round that improvement cycle.