Cómo explicar a cualquiera qué es programar

Muy interesante la explicación a la pregunta How do I explain to non-programmers how complex, time-consuming, and error-prone software development is? que se ha planteado en Quora.

La respuesta dice:

Ask them to describe the steps needed to make a cup of tea, they will say something like:

  1. boil water
  2. put tea in a pot
  3. when the water is boiled pour it into the pot
  4. wait 5 mins
  5. pour the tea into cups
  6. add milk
  7. drink

Now the fun begins. You need to start asking these kinds of questions:

Boiling water?

  • where is the water coming from
  • where is the kettle
  • how do you get the water into the kettle
  • how do you know how much water to put into the kettle
  • what if there is no water/kettle/electricity?
  • what if your fill sensor fails?
  • what if your boiling sensor fails

Put tea in pot?

  • where’s the pot, what if there isn’t one? should we have thought of that before boiling the water?
  • where is the tea, which kind of tea? should we have asked first, perhaps we shouldn’t have started this if we don’t have the right tea?
  • similar questions about filling and sensors

Pouring boiling water?

  • are you sure it’s boiling? how can you make sure that the machine doing the pouring got the right ‘done’ signal from the kettle?
  • How do you make sure that the machine pourer knows where the pot is?
  • What if the pot tips over during pouring?
  • etc.

And so on – you can go on for hours. They will get bored and say “yes but this level of detail is silly”, you can sagely smile and say “exactly”.

ps. after all that tell them the customer actually wanted coffee to go with an extra shot and not a Japanese tea ceremony – surely you should have known that, wasn’t it obvious from the requirements?

Profesor del Departamento de Lenguajes y Sistemas Informáticos de la Universidad de Alicante (España). Interesado en el desarrollo y la accesibilidad web.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *


This site uses Akismet to reduce spam. Learn how your comment data is processed.