DevOps: what it is, advantages and false myths
You have read this word often, probably wondering what it means exactly: we will explain to you what DevOps is, what its cornerstones are and the false myths related to it.
DevOps: software DEVelopment + IT OPerationS
It is not a title, a tool, a software.
It is a philosophy, a culture, a methodology.
The buzzword DevOps actually refers to something very concrete: an approach involving the collaboration of entrepreneurs, developers, system administrators and software quality departments.
Its objective? Releasing software continuously, as the Lean and Agile principles remind us, thus allowing companies to reduce the time needed to enter the market and receive feedback.
As I was saying, it is not just a working method, but rather a way of seeing work as a combination of development (Dev) and operations (Ops), as the union of people, processes and technology aimed at continuously offering value to customers.
The product life cycle
So, how does the DevOps approach work?
It affects all phases of a software or application life cycle. Let's see how.
During this phase, DevOps teams conceive the future "shape" of the product and put it on paper by planning every activity and using appropriate tools and systems: Kanban boards, Scrum, creation of backlogs, bug checking, status dashboards. The keywords here are flexibility and clarity.
Writing, testing, reviewing and integrating the code: in this case you need to be ready to automate some steps and make improvements. All of this is done to be able to release very small changes constantly and thus obtain immediate feedback, without ever forgetting the software or application quality and stability.
The distribution stage features the definition of the release process, with clear and possibly automated approval and control phases. This allows for scalable, repeatable and safe processes.
And, to close the circle, maintenance, monitoring and problem resolution. In DevOps culture, it is important that potential problems are automatically detected in a Continuous Delivery process, even before being deployed.
Within the life cycle that we have just covered, some typical procedures of the DevOps environment are implemented to best complete the various tasks. These allow you to speed up, automate and improve, without ever losing productivity. I will discuss this in depth in my next article.
The adoption of a DevOps model can bring many advantages both for the team and for the software or application that has to be created.
- DevOps allows “distant” figures to collaborate and put their knowledge and points of view together in order to obtain better and more reliable products.
- The final products are shaped on customer needs and always improved according to the collected feedback.
- The entire team is involved in all work phases: this means greater control of the entire life cycle and joint responsibility for the success of the process.
- Release times are much shorter. In addition, DevOps flexibility implies simplification and better risk management: you adapt and react faster to customer response and competition, without undermining product stability.
- It is imperative to always learn and improve: fail and learn the lesson, in order to better respond next time. DevOps teams adopt the Continuous Improvement philosophy: a real path, always offering something new to acquire.
Teams embracing DevOps culture aim at high performance, reduced working times and, above all, increased customer satisfaction. It is not just using a tool, but rather adopting a belief and work system and restructuring a company.
The pros are certainly much higher than the cons. However, there are still some false myths about the DevOps approach.
I have collected a few from my experience over the years: questions, criticism or simple doubts, which are completely normal when deciding to change direction.
- DevOps is a title.
Writing that you are a DevOps Engineer is not quite right. It may mean that that professional has a role – Engineer – within the DevOps process: however, such titles are usually assigned in a corporate setting. DevOps is instead a process, a philosophy, a culture.
- The DevOps approach is only good for small systems.
Wrong: working in DevOps means being flexible, fast, collaborative, ready to react and to learn from mistakes, which is fundamental for complex, long and articulated projects and systems. Adopting the DevOps method is in fact advisable in such cases.
- DevOps is just about collaborating.
I started the article talking about DevOps as a philosophy and I firmly believe that. But to put it into practice – let's bear in mind that we are technicians and thus need concreteness – you require tools, processes and methodologies. So, a big yes to the adoption of a model and all that it implies.
- You have to use Cloud to be DevOps.
Cloud and DevOps are often seen as two things that must necessarily go hand in hand, given the ability of the former to provide the necessary infrastructure for the latter. Actually, using Cloud does not automatically mean adopting a DevOps approach; likewise, many DevOps teams work on internal infrastructures.
For us at 20tab, DevOps is almost a creed, given how fond we are of principles such as Agile, Lean and Continuous Improvement. In the second part of this article I will take you through the DevOps procedures: keep following us!