How to explain to non-coders how complex, time-consuming and error-prone
software development is?
Posted on October 14, 2020 at 20:00
My analogy is brewing tea. I ask the interlocutor to prepare a list of steps necessary to do
that. And then we start brewing it.
I'm pretending to be a compiler and interpreter. The typical answers I give (depending on the subsequent
iterations of the algorithm) are:
- I don't know what the box is.
- I don't know where the box is.
- How to open the box?
- What does it mean to open?
- Error: the box is empty.
- How much water to pour?
- Error: water overflow!
- Error: There is no water in the tap!
- How to set the faucet?
- How to turn the kettle?
- Where is the kettle? Kettle not found!
- How to check if the water is boiling?
- Error: the kettle does not have a temperature sensor.
- Error: The display device is not available.
- Warning: Inverted cup detected.
- How to turn the cup?
- Warning: the cup has no handle!
- Is color #537726 properly brewed tea?
- Error: the white tea did not reach the expected color in the given time!
- Error: green tea damaged, water too hot.
Until the questioner says: "Enough, this is madness!"
And I'm like, "Well, now you roughly understand what programming is all about."