Imagine you got to redo your project...
…
…
- you knew then what you know now
- you had 20/20 fore
Something is holding us back
Slide 3
Slide 3 text
Theory of Constraints
There is currently a constraint
Any inventory behind the constraint is waste
Any time not addressing the constraint is waste
But you don’t know where the constraint is!
Slide 4
Slide 4 text
Ignorance is the constraint
Ignorance is multivariate
You are ignorant (to some degree) about…
- your domain
- the nature of the problem
- your incumbent technologies
- other possible technologies
- organisational constraints
- relationships with stakeholders
…and you don’t
Slide 5
Slide 5 text
Ignorance reduces in steps
oh.
Oh!
Crap
So can we influence this
Slide 6
Slide 6 text
Can you prepare for the oh crap
This time
This time
This time
This time will be just like all
Slide 7
Slide 7 text
Deliberate discovery
1. Assume you are always operating in second order
2. Assume some specific axis
3. Surface risk
Second-order ignorance is a given
Slide 8
Slide 8 text
We are wired to resist this
We suffer with attribution bias
We suffer with confirmation bias
…
Slide 9
Slide 9 text
Remember how the project started?
You got everyone in a room
You decomposed the problem into stories
- and more stories
- and more stories
You estimated the stories
- and estimated
- and estimated
Was that really the best use of your time?
Slide 10
Slide 10 text
So how can we apply this?
Software has a half-life
Shorter half-life means less 2OI
- less opportunity to not know what I don’t know
So why not rewrite rather than redevelop?
- with multiple overlapping
Slide 11
Slide 11 text
Deliberate discovery in programming
Spike-and-stabilise
- Learn through evolving the “spike”
- Stabilise later – test-driven testing
Design for the second case
- You might
Travel in pairs
- O
Slide 12
Slide 12 text
Deliberate discovery in testing
Exploratory testing
Randomised testing
Not
Good testers already know this
Slide 13
Slide 13 text
Deliberate discovery in (dev)ops
Get into production early
- get anything
Design for monitorability
- push diagnostics rather than pulling an autopsy
- make it easy to listen
Design for discoverability
- what went wrong?
- what’s going wrong right now
Slide 14
Slide 14 text
Summary
You don’t know what you don’t know
That ignorance is killing your delivery
Sometimes you can’t know what you don’t know
For everything else, there’s Deliberate Discovery
Slide 15
Slide 15 text
Thank you
dan@dannorth.net
http://dannorth.net
@tastapod