The term „silver bullet“ comes from a 1986 paper by Frederick Brooks. He is the author of the book „The Mythical Man-Month“, which discusses the development of IBM’s OS/360 operating system. He led this project. It had a budget of $5 billion and in the sixties was second only to the moon landing. The book contains insights that are still important today - for example, that a project becomes slower at first if you add more people to the project, because the people first have to familiarize themselves with the project.

Silver Bullets

Silver bullets are actually used to hunt werewolves. Brooks argues that many IT projects eventually mutate into monsters and we need silver bullets. But there is no such thing as a silver bullet: In his opinion, no single development in a decade promises an order of magnitude better productivity, reliability, or simplicity. An order of magnitude is a factor of 10.

Brooks argues that technical complexity drivers have already been eliminated. But if most of the complexity now comes from the requirements, designs, and tests, you can’t just solve the complexity with a simple trick. He thinks buy instead of build is promising as are better handling of requirements, „growing“ software through incremental development, and finally good designers.

Continuous Delivery

Continuous delivery refers to the continuous delivery of software. It is clear that a higher deployment frequency reduces the time it takes for a change to go into production. There is now a study („2018 State of DevOps Report“) that shows further effects. It distinguishes between „Elite Performers“, who deploy several times a day as needed, and „Low Performers“, who deploy between once a week and once a month. Teams with quarterly releases are therefore not even „low performers“. Elite performers obviously achieve higher speeds with which changes enter production:

But there are also other positive effects:

So productivity and reliability increase. Continuous Delivery could therefore be a „silver bullet“, although according to Brooks such thing should not exist. How can this contradiction be resolved?

Silver Bullets?

One explanation could be that Brooks is not right. To prove that something does not exist is difficult in principle. His paper does not give any evidence, but essentially reflects the opinion of the author. It is now 30 years old, so perhaps something has changed in the meantime.

On the other hand, Brooks is very experienced and one of the most important people in the software development scene. So you can’t just ignore the paper.

Continuous Delivery - Just a Hype?

The DevOps study could also be flawed. Behind the study is Gene Kim, who among other things wrote the DevOps manual and the book about the Phoenix project. Both are books that praise continuous delivery. Another author of the study is Jez Humble, one of the authors of the first Continuous Delivery book. It would be quite a surprise if these people wrote a study that shows that continuous delivery doesn’t bring significant benefits.

But the third author in the group is the scientist Dr Nicole Forsgren. So you can be sure that the study will withstand a scientific review and has been evaluated according to scientific standards. And finally, the study has a large database: A total of 30,000 people took part in the study. A large database and a professional evaluation of the data actually leads to meaningful results.

Both are True?

I don’t think there is any contradiction. The study and Brooks are both right. There are several reasons for this:

Conclusion

Continuous Delivery actually has many distinct advantages. The study shows them clearly and explains them very well. This helps to clearly demonstrate the advantages of Continuous Delivery. However, Continuous Delivery is probably not a silver bullet, either. Nevertheless, the advantages of continuous delivery go far beyond the fast delivery of software and new features. It is therefore worth investing in this area, even if features do not have to be brought into production faster, because productivity and reliability also improve significantly.

tl;dr

Silver bullets are supposed to improve software development by at least one order of magnitude, but unfortunately there are none. However, continuous delivery has demonstrable significant benefits for reliability and productivity.

Header photo by Mitya Ivanov on Unsplash.