reviewing a developer experience
TRANSCRIPT
CTO, New Iron, Austin, TXJanelle Klein
©2015 New Iron Group
The Art of Better (Part 2)
Creation Date: 10/05/2015
Reviewing a Developer Experience
What is this talk about?
Process of Idea Flow Learning Framework
How to do “Experience Reviews”
The Troubleshooting Game!
The art of troubleshooting
PAIN occurs during the process of understanding and extending the
software
PAIN
Not the Code.
Optimize Developer Experience
Idea Flow Maps visualize the experienced difficulty of a problem-solving
task.
VisibilitySee the pain
“Friction”
Our level of understanding is constrained by the diversity of our conceptual
metaphors.
ClarityExpand your vocabulary of patterns
AwarenessPredict the consequences of decisions
The quality of our decisions is limited by our ability to ask the right questions at the right time.
What’s a Decision Principle?
1. How do I evaluate my situation?2. What should I optimize for?
Answers Two Questions
Pseudo code for making trade-off decisions
Strategy Types (“do”)
1. DependencyAnalysis2. IncrementalIntegrationTest3. DataDrivenTest4. IsolateHardToTestCode
Situation Types (“see”)
1. UnravelingSweater2. HeavyIntegrationLogic3. HighStateVariation4. CoupledExternalDependencies
Haystack Decisions
Codify What Works
DoSee
The Scientific Method
Creating an explicit model makes our beliefs testable.
Visibility Process
Clarity Process
Awareness Process
“Pain Control” in Software Development
Average Pain per Incident
This is Control
Target
Control Limit
Make a FOCOL Point!
Learn
Focus
Observe
ConcludeOptimize
(The Mastery Spiral)
Codify Decision Principles
Learn
Focus
Observe
ConcludeOptimize
Make a FOCOL Point!(The Mastery Spiral)
Learn with Decision Principles
Learn
Focus
Observe
ConcludeOptimize
Focus - Choose the Needle
Make a FOCOL Point!(The Mastery Spiral)
Learn
Focus
Observe
ConcludeOptimize
Focus - Choose the Needle
Focus: How could we have reduced the experiment pain?
14:230:00
George’s Painful Experience
What caused the experiment pain?
Focus: How could we have avoided the experiment pain?
14:230:00
George’s Painful Experience
What patterns do we see?
Focus: How could we have avoided the experiment pain?
Learn
ConcludeOptimize
Observe - What patterns do we see?
Focus
Observe
Focus: How could we have reduced the experiment pain?
ExperimentTime
Time Warp Bias
Setup Experiment Analyze Results &Decide Next Experiment
Execute
“Optimize experiments for human cycles.”
“How could I reduce the time spent on human cycles?”
Was it time-consuming to setup the inputs?What made it time-consuming?
Was it fast or slow to execute the experiment?What made it time-consuming?
Was it time-consuming to analyze the results?What made it time-consuming?
Execution
DecideNext Action
Setup Inputs
How could we have reduced the human cycles?
Time Warp Questions
Code Sandwich
Behavior Complexity
Observability
Ease of Manipulation
“How can I reduce the thickness of my code sandwich?”
“Optimize for low diagnostic difficulty.”
The thickness of thesandwich increases
troubleshootingdifficulty
What behavior were we trying to understand?Was the core behavior complex or simple?
How difficult was it to see what was going on?What made it difficult to see?
How difficult was it to manipulate the behavior?What made it difficult to tinker?
Observability
Ease of Manipulation
BehaviorComplexity
How could we reduce the thickness of the code sandwich?
Code Sandwich Questions
Cloud of Possibilities
“How can I generate clues to eliminate some possibilities?”
“Optimize the experiments to generate useful clues.”
Was the cloud of possibilities big or small?
What were some of the clues we saw?Were some of the clues more useful than others?
Scope
NarrowingSpeed
How could we have have narrowed the possibilities faster?
Cloud of Possibilities Questions
Learn
Optimize
Conclude - What’s causing the experiment pain?
Focus
Observe
Conclude
Focus: How could we have reduced the experiment pain?
Conclude - What’s causing the experiment pain?Cloud of
PossibilitiesCode
SandwichExperiment Pain Experiment Pain
Learn
Optimize
Optimize - What strategies could have reduced the pain?
Focus
Observe
Conclude
Focus: How could we have reduced the experiment pain?
What were some other possible options?At what point did we choose an option?
What inputs did we consider?How did we evaluate the situation?
BreakpointStop and Think!
Learn
Learn - What questions should we ask ourselves in the future?
Focus
Observe
ConcludeOptimize
Focus: How could we have reduced the experiment pain?
14:230:00
I want to avoid this…
Thinking ChecklistIs my current approach likely to cause a thick sandwich?
Situation: start of subtask
Let’s Make a Checklist!
“What question could I ask my future self to recognize similar risks in the future?”
“In what situation would I ask the question?”
0:00
Stop and Think:
Is my current approach likely to
cause a thick sandwich?
Predict: Low Experiment Pain
Strategy Experiments
18:120:00
Stop and Think:
Is my current approach likely to
cause a thick sandwich?
Predict: Low Experiment Pain
False Prediction
Strategy Experiments
18:120:00
Stop and Think:
Is my current approach likely to
cause a thick sandwich?
False Prediction
Strategy Experiments
High-Risk Situations
1. Can’t isolate from bootstrap2. Observe through visualization3. Manipulate through database4. Too many changes at once
Q: Is my current approach likely to
cause a thick sandwich?
Start of Subtask
Strategy Types (“do”)
1. 2. 3. 4.
Situation Types (“see”)
1. 2. 3. 4.
Risk Mitigation Strategies
Codify What Works
DoSee
Learn
Focus
Observe
ConcludeOptimize
Focus: How could we have reduced the experiment pain?
Iterate - What type of learning do we need most?
The Focus Principle
The key to accelerating improvement, is to break the most limiting knowledge
constraint.
Goldratt’s Theory of Constraints
Learning is Knowledge Expansion
Iterate - What type of learning do we need most?
Should we broaden the data?
…expand vocabulary?
… or run experiments?
Learn
Focus
Observe
ConcludeOptimize
Focus - Choose the needle
Make a FOCOL Point!(The Mastery Spiral)
Learn
ConcludeOptimize
Observe - What patterns do I see?
Focus
Observe
Make a FOCOL Point!(The Mastery Spiral)
Learn
Optimize
Conclude - What’s major factors caused the pain?
Focus
Observe
Conclude
Make a FOCOL Point!(The Mastery Spiral)
Learn
Optimize
Optimize - What strategies could have reduced the pain?
Focus
Observe
Conclude
Make a FOCOL Point!(The Mastery Spiral)
Learn
Learn - What questions should I ask myself in the future?
Focus
Observe
ConcludeOptimize
Make a FOCOL Point!(The Mastery Spiral)
Learn
Focus
Observe
ConcludeOptimize
Iterate - What type of learning do I need most?
Make a FOCOL Point!(The Mastery Spiral)
IFM Tools
Anonymized data
Developers Learning Together!
IFM Tools
IFM Tools IFM Tools
IFM Tools
IFM Tools
Community Focus
Integrated #HashTagGlossary
IFM Tools
IFM Tools
IFM Tools IFM Tools
IFM Tools
IFM Tools
Idea Flow Analytics PlatformPrivate data
Companies Learning Together!
Revenue frommembership feesto fund coredevelopment
@janellekz
Open Mastery 2016Join us! @openmastery
Thank you!
Free e-book if you sign up before publish day! (Jan
2016)
Tweet about #ideaflow!
IFM Tools available at: github.com/ideaflow/tools