DevOpsGroup Blog #DevOps - defining Devops - it's a Recipe not a Blueprint

#DevOps – defining Devops – it’s a Recipe not a Blueprint

There have been some great posts recently regarding the difficulting in defining DevOps e.g https://www.jumpcloud.com/what-is-devops-blog/ and following on from that http://www.scriptrock.com/blog/the-problem-with-defining-devops.

My view is that some of the confusion, and the multiplicity of opinions about what DevOps is, comes about because people are using the wrong cognitive frame when looking at DevOps, and maybe a bit of re-framing is in order.

Firstly, a bit of background. In The Blind Watchmaker (1986, pp. 295-296) Richard Dawkins explains that DNA is like a recipe, not a blueprint. You can’t take a slice of cake and then pull up the “cake engineering blueprint” and point to the section that specifies that part of the cake (as opposed to comparing a car or plane part to a blueprint, for example). You have a recipe… but there isn’t a one-to-one correspondence between the recipe and the cake.

“A recipe in a cookery book is not, in any sense, a blueprint for the cake that will finally emerge from the oven…. a recipe is not a scale model, not a description of a finished cake, not in any sense a point-for-point representation. It is a set of instructions which, if obeyed in the right order, will result in a cake…

The genes, taken together, can be seen as a set of instructions for carrying out a process, just as the words of a recipe, taken together, are a set of instructions for carrying out a process.” – Richard Dawkins

DevOps is a recipe, not a blueprint. And it’s a recipe that still evolving to meet the needs of different organisations, in the same way that bread recipes have evolved to meet different cultural and personal preferences.

There are 4 basic ingredients in any bread recipe – water, flour, yeast, salt – and there are core techniques – Kneading, Fermenting, Proofing, Baking etc – but by combining these techniques, adding extra ingredients etc you can have widely different outcomes.

IngredientsTechniques
FlourMixing
WaterFermenting
YeastPunching
SaltDividing
ButterRounding
EggsKneading
MilkPanning
SugarProofing
 Baking

Similarly, DevOps has some core ingredients and techniques (I’ve listed a few in the table below but I am sure you might want to add your own) but how you choose to combine them and what extra ingredients you add will determine if you end up with a crusty white cob, a baguette or a ciabatta.

IngredientsTechniques
“Infrastructure as Code”Agile
Continuous IntegrationKanban
Continuous DeliveryLean
Application Performance ManagementTheory of Constraints
Virtual/Cloud HostingSystems Thinking

But they are all “DevOps” in the same way that all the loaves in the image above are all bread – they share common ingredients, common techniques – but the exact recipe you follow and the end result depending on your organisational needs and preferences.

-TheOpsMgr


6 thoughts on “#DevOps – defining Devops – it’s a Recipe not a Blueprint

  1. The reference to Blind Watchmaker is useful – there is much of importance in Dawkins’ mid-period writing in relation to stepwise evolution of complexity [for software systems] as opposed to Big Upfront Design.
    The separation of ingredients from processes is also a good call. Nice post!

Leave a Reply

Your email address will not be published. Required fields are marked *