Slide 1

Slide 1 text

Deliberate Discovery Dan North @tastapod

Slide 2

Slide 2 text

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