Is DevOps no more than automation?

Is DevOps no more than automation?

One big misconception about DevOps is that it is just automation, no other purposes. Nothing is more wrong. Automation is a mean to a very different goal. The purpose of DevOps is to optimize and maximize the value delivered to users through the IT chain of work.

To maximize value, we need to reduce the size of our releases. Each release has less features, but we release more frequently. More frequent releases are less efficient if we manage them manually. You know how it works: open a ticket, get access to the systems, block traffic to the system, install updates, check that it works, reopen the traffic, close the ticket. To release more frequently, we must automate the release process as much as possible.

I have still to explain why smaller releases maximize user value. Let's say we release three features during a quarter. Each feature brings a 10% increase in revenue as we increased the number of paying users attracted by the new features. Clearly a hypothetical situation but it helps to understand. If we consider the entire quarter, for three months there is no increase in revenue (due to the new features) until the day of release at the end of the quarter. The next day, the first of the next quarter, we have a 30% increase. Consider instead releasing one feature each month. We would earn 10% more after the first month; at the end of the second month we get another 10%. So, with a massive release, we get 30% more after the third month. Using smaller releases, we could have a 10% increase during the second month and a 20% during the third. This means that we get the 30% increase a month in advance.

In addition to the direct economic benefit consider the indirect benefits. The first, most evident, is the reduction of risk, either technical or entrepreneurial or both. The technical risk decreases because we change fewer components (at least fewer lines of code) per release. This results in simpler troubleshooting and resolution of problems, faster deployment (potentially), shorter outage duration of (again potentially), and so on. The entrepreneurial risk decreases because we can know earlier, through telemetry or user surveys, if the functionality pleases users. With feedback we can correct the aim, risking only a month of development instead of three. We become able to change priorities each month, each week, even each day, with much less waste than a less-frequent, larger, release with greater interdependencies. Consequently, the commercial risk, of offering something that is not of interest to my users, is reduced because my offer becomes more dynamic, and I can quickly adapt to the competition. The smaller interval between releases, the lesser the risk.

Automation is therefore instrumental to reach the goal of releasing less changes more frequently. If my organisation takes three days to release, it is impossible releasing multiple times a month. It is imperative that my releases fall below four hours threshold overall. At least to start releasing multiple times a month. To release multiple times a week, we must go below 30 minutes.

The above reasoning is based on Lean principles. While traditional management emphasizes efficiency, whereby the size of a work lot is cost-driven and optimized at each stage of processing, the lean approach aims to optimize the final product. I recommend a book as The Goal to familiarize with these ideas.

What do you think? Am I wrong?

Pierfranco F.

Senior Officer at European Food Safety Authority (EFSA)

2 年

Yes, but it's not just about the automation of the deployment, which is rather easy to achieve, but it's especially about the test automation and regression.In a true agile environment you do not trigger the deployment, the developers "just" commit, if the build, test, regression and systems test succedes then the code is automatically released to production.

回复

要查看或添加评论,请登录

Giulio Vian的更多文章

  • Only Build Your Binaries Once

    Only Build Your Binaries Once

    One of the principles highlighted, many years ago, in Continuous Delivery is: Only Build Your Binaries Once (Chap.5 p.

  • Only Build Your Binaries Once (versione italiana)

    Only Build Your Binaries Once (versione italiana)

    Uno dei principi evidenziati da Continuous Delivery, già molti anni fa, è Only Build Your Binaries Once (Cap.5 p.

  • Designing CI/CD pipelines in 2023

    Designing CI/CD pipelines in 2023

    Here's a long article just in time for the Christmas holidays. Today I want to give you an overview of what to expect…

  • La pipeline CI/CD nel 2023

    La pipeline CI/CD nel 2023

    Ecco un lungo articolo in tempo per le vacanze natalizie. Oggi voglio darvi una panoramica su cosa prevedere in una…

    1 条评论
  • Rilasci non-funzionali

    Rilasci non-funzionali

    Cosa sono i rilasci non-funzionali? è presto detto: sono rilasci "tecnici" senza alcun cambiamento funzionale. Qualcuno…

  • Non-functional Releases

    Non-functional Releases

    What are non-functional releases? It is easy to say: they are “technical” releases with no functional changes. Someone…

  • Packages or Containers?

    Packages or Containers?

    In a previous article I considered the principle that DevOps collects from Lean, namely the importance of minimizing…

  • Pacchettini o Containers?

    Pacchettini o Containers?

    In un precedente articolo ho considerato il principio che DevOps raccoglie da Lean, ossia l'importanza di minimizzare…

    1 条评论
  • Automatizzare? Sempre!

    Automatizzare? Sempre!

    Alcuni anni fa ho tenuto una conferenza, dal titolo “Automate? Always!” (Automatizzare? Sempre!), per stimolare una…

  • Automate? Always!

    Automate? Always!

    Some years ago I gave a talk, titled "Automate? Always!", to stimulate a discussion about automation in software…

    1 条评论

社区洞察

其他会员也浏览了