|Home||Back to Index|
I’m posting my (mostly raw) notes from the GOTO Chicago 2013 Conference as a series.
Behavior-Driven Development for Life
BDD - examples, conversations with business people, same language
GROW - Goal/Reality/Options/Way forward (coaching)
“Then” is your Goal.
Given - Reality
When - Options/Way forward
Similar to Plan/Do/Check/Act (but GROW misses Check)
Scenario uses concrete, real examples.
Acceptance criteria gives rules (more generic).
Chunking Down - well-formed outcomes - see/hear/smell/taste (visualize really specific desired result) - feel the sensation - know when you achieve it
Will it actually happen that way? Not necessarily. We don’t always have multiple opportunities to run the scenarios in real life.
But if you can’t visualize the example, you’ve probably got the wrong goal.
Examples illustrate the kind of behavior we’re looking for.
Outcome vs. Impact - outcome is uncertain, but we can predict the impact
Cynefin - framework for making sense
Complex - when you do something, the outcome may be unexpected (cause & effect may only be determined in retrospect) - unpredictable
Complicated - know how they’re meant to behave; may require expertise (but understood by the experts) - well-defined outcomes
Simple - obvious, only one way
Chaotic - usually short-lived, usually resolve themselves - untrained people may panic
Disorder (center) - when we don’t know what domain we’re in - we’ll act according to our preference (and many people like certainty and predictability) (other types of people will try something and get feedback) (and developers love complex problems) (developers will also solve half a problem with a full solution)
Cliff - where Simplicity tips into Chaos - it’s hard to get back
Breaking things down - works well in Complicated
Trying things out - works well in Complex
Talking through outcomes works well in between Complicated and Complex - helps you spot the uncertainty
Is there a context in which this event will create a different outcome?
Is this the only outcome that matters? Would it be OK if it were achieved by magic pixies that didn’t change anything else?
The language of uncertainty
Try something out that is likely to give you a good impact, and don’t worry too much about the outcome.
“Should” - great for examples, allows for uncertainty
Dan North’s “Three Ages”
Explore: Optimize for Discovery - try it out - Complex
Stabilize: Optimize for Readability - Complicated
Commoditize: Optimize for Efficiency - Simple
Panic: Optimize for Survival? - Chaotic
When we innovate, we cycle between Complex and Complicated.
Shallow dive into Chaos - wisdom of crowds - Chaos is not always bad
Feature Injection - every project has a vision and a primary stakeholder. Also have gatekeepers. Need capabilities and features. The trick is to hunt the value. (Five Whys.)
We forget things, we don’t know about things, we find things are connected - we discover things later.
Having the option to change your mind has value. Sometimes options expire.
Never commit early unless you know why. You might discover something that will help you make a better decision.
Negative visualization - look for things that will trip you up. Replace the context, preferably one with more options.
Change your beliefs.
Find your next goal. Think about how you’d like to look back on your life at the end.