Those of us who work in the technology sector are well accustomed to buzzwords.
Many of these buzzwords come and go, but a few have stood the test of time.
DevOps, which has been around for more than a decade now, has proven itself to be far more than just a catchy term or passing trend.
But what does it actually mean? What can organisations gain by embracing DevOps? And what do you genuinely need to know?
Here’s a quick overview:
What is DevOps?
Even today, a lot of enterprises have difficulty understanding DevOps, and an even greater difficulty trying to implement its associated practices. Often, it’s regarded as too confusing, too vague, or a mountain that’s too big to climb.
In reality, DevOps is actually quite simple. It’s an approach to software development that is all about continuous, high quality delivery. DevOps is focused on continual learning, change, and even failure – and encompasses people, practices and tools.
Perhaps the most defining feature of a DevOps project is that it’s continuous and ever-changing. Unlike traditional software development, which was performed via a cascading Waterfall method where everything was pre-defined and agreed, DevOps is more fluid and Agile in its nature. Teams learn, define and improve the code as the project progresses.
Another key characteristic of DevOps is that it gives individuals the freedom to break out of their traditional siloed roles. Rather than being limited to a role in development or operations, DevOps gives people the chance to be part of a multidisciplinary team that shares common ideas, practices and tools.
In DevOps, collaboration is also extremely important. People work together in a highly collaborative way to ensure agile planning, continuous integration and delivery, and ongoing monitoring of applications.
Rather than having inflexible up-front plans, DevOps is about having a constant improvement feedback loop. The aim is to continuously challenge and improve practices in a way that suits your unique situation. As such, a one-size-fits-all approach doesn’t work.
When did it come about?
The term was initially used in 2009 by Patrick Debois.[1] However, even before the term itself was coined, DevOps had roots in well-developed practices like ‘Lean Manufacturing’ - a methodology derived from Toyota’s operation model, ‘The Toyota Way’ in the 1930s.[2] Toyota was committed to continuous improvement of all functions, by the involvement of all employees – which is a key part of the DevOps approach.
What are the challenges?
There are often a few common challenges when it comes to organisations adopting DevOps. These include:
- A new approach to roles: The idea of multidisciplinary teams, and of individuals not belonging to siloed disciplines, is one of the hardest cultural issues an enterprise will have to overcome in order for DevOps to be implemented and adopted widely.
- Letting go of ‘up-front’ planning: With a DevOps approach, teams work on a continuous improvement loop – rather than a pre-approved, up-front plan. This can be a major challenge for enterprises that are accustomed to a traditional development approach, where a project is rigorously planned before any development commences.
- Accepting that failure is a key component: Yes, you read that correctly! Failure is a key part of DevOps – just as it is part of any scientific experiment. Having the ability to fail fast, as early in the process as possible, can dramatically minimise time and costs further down the track.
Taking a ‘one size fits all’ approach: Another key challenge is that many enterprises view DevOps as a singular approach that can be rolled out across the business, and is suitable for every project. This isn’t always the case. Rather than taking a ‘big bang’ approach to DevOps, it can be wiser to trial it on a few projects, modify its usage depending on your business’ needs, and then learn from any successes or failures.
Where should you start?
A good place to start with DevOps is to undertake a small project with a team from different disciplines – including individuals with a willingness to embrace change and continuously learn. Also, be sure to get the team involved as early as possible, and create an environment where fast failures are expected and accepted.
If you’re interested in learning more about DevOps and how you can take a DevOps approach in your business, get in touch today!