How to explain to non-coders how complex, time-consuming and error-prone software development is?

by kalucky0

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.
  • Etc.

Until the questioner says: "Enough, this is madness!"

And I'm like, "Well, now you roughly understand what programming is all about."