This article was coauthored by Khalid Elkoundi (Head of Client Services – Canada) and Corentin Mehat (Consultant).
DevOps is certainly a trending topic in the IT world, but why is it so popular? Do you really need to be paying attention? Or – like so many things in the tech world – will it shortly become an outdated concept?
In fact, DevOps isn’t a completely new concept; while the DevOps culture seems a bit like a fad, in essence it is about improving communications and streamlining teamwork. There, not so complicated now, is it?
For those of you who are completely new to DevOps, we want to take a moment and explain the foundation of the DevOps culture: What it is, why it matters, what to consider as you approach adopting a DevOps framework, and finally the benefits a DevOps culture can bring to your team.
So, let’s jump into the basics!
DevOps definition: What is it exactly?
DevOps is a word that comes from the combination of development and operations. The word itself implies its goal: to bring communication and cohesion between those two departments, recognizing that this synergy is a vital element to producing and maintaining viable software. Above all, DevOps is not a methodology, but a practice. The outcome of this combined collaborative effort is to shorten the delivery process.
The main objective for development teams is to deliver code as fast and efficiently as possible. On the other hand, operations teams need to ensure the deployed code is stable. Surprisingly, left to their own devices development and operations teams don’t cross paths very often. This opens the door to a lot of problems and frustrations, as they have different approaches and priorities for the same goals.
DevOps as a cultural movement aims to correct this error, ultimately improving in how these two teams work together. Even just from a good management standpoint, adopting a DevOps approach should be a no-brainer.
How do I do DevOps?
Relax and don’t touch the keyboard just yet. As stated above, DevOps is more a change of culture than a technical approach; it is all about collaboration and communication, so breaking down the walls between the different factions of your company is the first step in your DevOps journey.
For a successful transition some ingredients are essential:
- Managing knowledge across teams: Each team needs to understand each other’s work, and that implies having sessions where the focus is to share and talk about processes and methods. It can also mean that cross discipline profiles are required.
- Creating and enforcing common principles and guidelines: Outside each teams’ specialty, the organization needs to set shared rules and guidelines – including ways to measure and enforce them. Broad communication is also important to formalize the work done within this shared goal.
- Building the platform: Lowering the cost of collaboration is key to the process. The gears behind this simplification can be very complex; for an outsider trying to understand it all, it can feel similar to learning rocket science to put a man on the moon.
Each project has its own specific platform and each platform has its own entangling ropes to manage in order to be able to deliver. Understanding those ropes and the different ways to optimize them is a full-time job. However for the sake of simplicity, the bottom line contains a few principles:
- Automate as much as you can.
- Deliver as fast as possible.
- Keep the customer in mind.
Sounds great, but does DevOps actually work?
Yes! The benefits of DevOps are obviously substantial and solid. Let’s break them down into three categories:
The first benefit from incorporating a DevOps culture is a better end product – which means happier customers. Companies that adopt a DevOps approach have:
- Faster time to market
- More stable releases
- Better and cleaner code
When you know what you deliver, the code is easier to test. But also, if you challenge it more often you’ll get more insights on where your code could fail.
Failing is (unfortunately) the best way to improve. It is important to embrace failures both in release deadlines and in automated tests, and it is important to spread this concept to your clients, your dev, your testing and your ops teams. Although it seems like an incredibly vulnerable position to be in, failing an automated test is (probably) the best thing that can happen to any software, if and only if testers, developers and obviously clients can react accordingly to these setbacks and use them to become better.
DevOps encourages releasing faster – which means failing faster, but also getting over the disappointment faster and improving faster.
As obvious as it may seem, a good product leads to happy customers – who are willing to give you their trust over the longterm. This is what happens when development and operational teams work together to produce great features and get bugs fixed faster.
Along the same lines, being straightforward and open about the ongoing issues raised by your customers can be a very good way to enhance your community and thus to increase visibility over your backlog. With any luck, you’ll get increased votes on whatever features your clients want implemented, and therefore you’ll have a more solid roadmap to work from.
Better communications between the teams means more trust and happier programmers and operation engineers. That helps establish a better environment for creativity and efficiency.
Finally, I would say that DevOps raises a lot of legitimate questions – ones which Valiantys will be answering over the coming months in more segmented categories, so to make sure to watch this space!
As an Atlassian Platinum Solution Partner, Valiantys of course favors using the Atlassian suite for implementing your teams’ complete DevOps journey. After all, having your teams all on one platform is an easy way streamline how teams collaborate together.