stoics

Stories and Computing

View the Project on GitHub austenrainer/stoics

Hansel and Gretel and Software Engineering

Overview

One of the more important contributions of story, and story-thinking, is that it disrupts computational thinking. Approaching a situation, the computational thinker by definition thinks in terms of computations. Computational-thinking frames the world in a certain kind of way. A human being who excels in computational-thinking (e.g., a programmer, a software engineer) may tend to naturally view the world computationally, quickly and unconsciously making assumptions in relation to computations. Story-thinking disrupts that quick and unconscious framing, encouraging the human to re-think. In other words, story-thinking can bewilder the computational-thinker.

A reference version of the story

# Line
   
  Once upon a time, there were two children, Hansel and Gretel, who lived with their father, a poor woodcutter, on the edge of a forest.
  There was just the three of them, for the poor woodcutter’s wife had passed away some years before.
  In time, the woodcutter marries again (yay!).
  But the woodcutter doesn’t realise he married a witch* (gasp).
  The witch wants to get rid of the children. (That’s what witches do, right?)
  One night, the witch tells the woodcutter that tomorrow she’ll take the children for a nice long walk in the forest, on an Easter Egg hunt.
  Hansel overhears this and realises their stepmother intends to abandon the children in the forest.
  That night, Hansel sneaks out and collects up a bag of white pebbles.
  The next day, the witch takes Hansel and Gretel deep into the forest.
  Then – oh no! – she ’accidently loses’ them (oops).
  But, as they walked into the forest, Hansel was secretly placing the white pebbles along the route through the forest.
  Now abandoned, Hansel and Gretel wait for night, for when the moon rises to lighten the pebbles.
  They follow the shining white pebbles all the home.
  “You’re safe!”, the woodcutter says.
  “What the f–- !”, says the witch (she doesn’t complete the sentence, because she’s not that nasty).
  Now the witch is not just nasty but persistent too. And a little bit clever. She gathers up all the pebbles and hides them.
  Then, she tells the woodcutter she’ll take the children for another walk: “I’ll make sure they don’t get lost this time. I promise.”
  With the pebbles all gone, Hansel realises something’s up.
  Unable to use pebbles, Hansel sneaks away a loaf of bread.
  The next day, the witch takes Hansel and Gretel even deeper into the forest.
  Then – “oh no, how has this happened, how clumsy am I?!” – the witch ’accidently loses’ the children (really, you couldn’t make this up).
  But, as they walked into the forest again, Hansel was placing breadcrumbs along the route through the forest.
  Now abandoned, Hansel explains to Gretel they can follow the breadcrumbs home.
  “Phew,” says Gretel.
  “Uh oh!” says Hansel.
  The breadcrumbs have gone. (Gone, I tell you!)
  “Those pesky birds have eaten them.”
  “Squawk,” says a bird (which in bird-speak means “yummy”)
  “What are we gonna do?” asks Gretel.
   

Questions to ask of the story

  1. Who are the characters in the story?
  2. Which character(s) do we empathise with, and which don’t we?
  3. For what reason(s) do we empathise with some characters and not with others?
  4. What different scenes are in the story?
  5. And what information do we have on each scene?
  6. What are the goals of the characters?
  7. What obstacles (problems) do each of the characters encounter which are preventing them from reaching their goal(s)?
  8. What user stories might be constructed from this story?
  9. What algorithmic thinking is present in the story? (Yes, there’s some there.)

Reflections

The Hansel and Gretel story allows us to think about:

Item Relevance to Software Engineering
Characters Characters suggest stakeholders, personas and potentially users
Goals  
Problems It is characters who have problems. Problems become the focus for software solutions.
Relationships Relationships between characters suggest:
  a) political relationships
  b) interactions that might be relevant to software systems
  c) effects of behaviour on others
  d) conflicts between prospective users
Scenes Scenes suggest possible scenarios, use cases, etc.
Procedures Suggest algorithms