It’s
not really about a rabbit and cream cheese, it’s actually a story about user
requirements, how they are specified, assumptions and context!
A
long time ago, I sent my boyfriend a text message and asked him to buy some low
fat cream cheese on the way home.
So what do we think? Clear
instruction of what I wanted and when?
Well
no, when I got home he said to me, “you didn’t tell me how much you needed so
there’s two packets in the fridge”
And
in the fridge there were two packets of low fat Dairylea Triangles
Ok, so they are low fat,
there is enough for what I needed, and they were purchased on the way home –
does this meet my specification?
Well,
after a little debate and looking up the definition of cream cheese, we agreed
that does actually meet what I asked for.
Which means that I was
happy right?
Well
no. Although I loathingly agreed that that did mean my specification, it was
not what I wanted and would be difficult for me to use.
Why?
Because
actually I was making my pet rabbit a carrot cake for his birthday, and needed
cream cheese for the icing.
The
actual cream cheese itself would have been ok, but I would have had to open
every triangle and scrape the cheese out. Far from ideal!
So what’s my point?
Well
my point is about context and shared understanding of what is trying to be
achieved. Without this information, it is very easy misunderstandings to occur,
or for one person to think they know what is meant or wanted, when in fact they
don’t.
In
Scrum, instead of saying “Please buy some low fat cream cheese on the way
home”, this would have been expressed as a user story
Hector
would like you to buy 500g of low fat cream on your way home, so that I can
make the icing for his birthday carrot cake
User
…. Requirement…. Context
With
this additional context information, I like to think that my boyfriend would
have made a slightly different choice.
Potentially
of course I could have just asked for 500g of low fat Philadelphia (which is
exactly what I wanted) – but there is also danger in being over specific, or
guessing the solution rather than telling your development team the problem and
letting them find the best solution.
If
Philadelphia hadn’t been available, or there was an own brand equivalent for
half the price, then actually, he could have bought me what I needed, without
meeting my (too specific) specification.
I
also have another true story – about the project manager and programmer going
shopping (which is actually about specifying the solution, rather than outlining
the problem/task you are trying to achieve)
No comments:
Post a Comment