Explaining How a Programmer Thinks to a Non-Coder
- Boil Water
- Put tea in a cup
- When the water is boiled pour it into a pot
- Wait 5 minutes
- Pour the tea into cups
- Add milk
- And drink
Boiling water?Ask the following questions.
- 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 you fill sensor fails?
- what if your boiling sensor fails
Put tea in pot?Obviously, since this is the next step, continue your questions from the point.
- 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?
Pouring boiling water?Here is where it gets interesting.
- are you sure its 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 pouring machine knows where the pot is?
- What if the pot tips over during pouring?