learn your way to awesome
TRANSCRIPT
![Page 1: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/1.jpg)
Janelle Kleinopenmastery.org @janellekz
Point A Point AWESOME.
Learn Your Way to AWESOME.
![Page 2: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/2.jpg)
Focus of this Talk:
Using Science to Fuel Software Mastery“Data-Driven Software Mastery”
![Page 3: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/3.jpg)
Overview
How can we measure development pain?
How do we create a data-driven feedback loop?
What does this look like in practice?
![Page 4: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/4.jpg)
Overview
How can we measure development pain?
How do we create a data-driven feedback loop?
What does this look like in practice?
![Page 5: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/5.jpg)
Great TeamDisciplined with Best PracticesConstantly Working on Improvements+
Project FAILURE
About 8 years ago…
![Page 6: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/6.jpg)
Technical Debt Mistakes
I thought the problem wasTechnical Debt
![Page 7: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/7.jpg)
?Most of our mistakes were in the
most well-written parts of the code.
Mistakes
![Page 8: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/8.jpg)
We made significantly more mistakesin code that we didn’t write ourselves.
LowerFamiliarity
MoreMistakes=
There had to be more to the story...
![Page 9: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/9.jpg)
PAIN
This is what I knew...
What made development feel painful?
![Page 10: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/10.jpg)
UnexpectedBehavior
ProblemResolved
Tracking Painful Interaction with the Code (Friction)
Troubleshooting
Progress
5 hours and 18 minutes of troubleshooting...
PAINFUL
![Page 11: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/11.jpg)
What Causes Unexpected
Behavior (likeliness)?
What Makes Troubleshooting
Time-Consuming (impact)?Semantic MistakesStale Memory MistakesAssociation MistakesBad Input AssumptionTedious Change MistakesCopy-Edit MistakesTransposition MistakesFailed Refactor MistakesFalse Alarm
Non-Deterministic BehaviorAmbiguous CluesLots of Code ChangesNoisy OutputCryptic OutputLong Execution TimeEnvironment CleanupTest Data CreationUsing Debugger
Most of the pain was caused by human factors.
What causes PAIN?
![Page 12: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/12.jpg)
What Causes Unexpected
Behavior (likeliness)?
What Makes Troubleshooting
Time-Consuming (impact)?Non-Deterministic BehaviorAmbiguous CluesLots of Code ChangesNoisy OutputCryptic OutputLong Execution TimeEnvironment CleanupTest Data CreationUsing Debugger
What causes PAIN?
Most of the pain was caused by human factors.
Semantic MistakesStale Memory MistakesAssociation MistakesBad Input AssumptionTedious Change MistakesCopy-Edit MistakesTransposition MistakesFailed Refactor MistakesFalse Alarm
![Page 13: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/13.jpg)
What Causes Unexpected
Behavior (likeliness)?
What Makes Troubleshooting
Time-Consuming (impact)?Non-Deterministic BehaviorAmbiguous CluesLots of Code ChangesNoisy OutputCryptic OutputLong Execution TimeEnvironment CleanupTest Data CreationUsing Debugger
What causes PAIN?
Semantic MistakesStale Memory MistakesAssociation MistakesBad Input AssumptionTedious Change MistakesCopy-Edit MistakesTransposition MistakesFailed Refactor MistakesFalse Alarm
Most of the pain was caused by human factors.
![Page 14: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/14.jpg)
What Causes Unexpected
Behavior (likeliness)?
What Makes Troubleshooting
Time-Consuming (impact)?Non-Deterministic BehaviorAmbiguous CluesLots of Code ChangesNoisy OutputCryptic OutputLong Execution TimeEnvironment CleanupTest Data CreationUsing Debugger
What causes PAIN?
PAIN is a consequence of how we interact with the code.
Semantic MistakesStale Memory MistakesAssociation MistakesBad Input AssumptionTedious Change MistakesCopy-Edit MistakesTransposition MistakesFailed Refactor MistakesFalse Alarm
![Page 15: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/15.jpg)
PAIN occurs during the process of understanding and extending the software
PAIN
Not the Code.
Optimize “Idea Flow”
![Page 16: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/16.jpg)
My team spent tons of time working on improvements that didn’t make much
difference.
We had tons of automation, but the automation didn’t catch our bugs.
![Page 17: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/17.jpg)
My team spent tons of time working on improvements that didn’t make much
difference.
We had well-modularized code, but it was still extremely time-consuming to troubleshoot defects.
![Page 18: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/18.jpg)
The hard part isn’t solving the problemsit’s identifying the right problems to solve.
“What are the specific problemsthat are causing the team’s pain?”
![Page 19: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/19.jpg)
PAIN occurs during the process of understanding and extending the software
PAIN
Not the Code.
Optimize “Idea Flow”
![Page 20: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/20.jpg)
The Rhythm of “Idea Flow”
Write a little code.
Work out the kinks.
Write a little code.
Work out the kinks.
Write a little code.
Work out the kinks.
![Page 21: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/21.jpg)
Write a little code. Work out the kinks.
The Rhythm of “Idea Flow”
Does the behavior match our expectations?
![Page 22: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/22.jpg)
The Rhythm of “Idea Flow”
Write a little code. Work out the kinks.
Adjustment LoopProgress Loop
![Page 23: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/23.jpg)
“Friction” in Idea Flow
Write a little code. Work out the kinks.
Adjustment LoopProgress Loop
![Page 24: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/24.jpg)
Idea Flow Mapping Tools
(Open Source, Supported GA ~August 2016)github.com/ideaflow/tools
![Page 25: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/25.jpg)
“Idea Flow Map”
“Friction”
![Page 26: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/26.jpg)
“What caused the painin this case?”
Categorize the Problems with #HashTags
#ReportingEngine
#Hibernate
#MergeHell
![Page 27: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/27.jpg)
1. Problem A
2. Problem B
3. Problem C
Add up the Pain by Category
What’s the biggest problem to solve?
![Page 28: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/28.jpg)
Overview
How can we measure development pain?
How do we create a data-driven feedback loop?
What does continuous improvement look like?
What should we be trying to optimize for?
![Page 29: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/29.jpg)
The Lean StartupEric Reis
Pioneers in the Art of “Everyday Science”
![Page 30: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/30.jpg)
“The Art of the Scientist” Workshop, Ash Maurya
Ash: “What’s the most important thing that scientists do?”
“Run Experiments!”“Analyze Data!”
Getting Involved with Lean Startup
![Page 31: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/31.jpg)
“The Art of the Scientist” Workshop, Ash Maurya
NO!
??
?
?
?
??
Getting Involved with Lean Startup
![Page 32: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/32.jpg)
“The Art of the Scientist” Workshop, Ash Maurya
Ash: “The most important things scientists do is build models.”
Getting Involved with Lean Startup
![Page 33: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/33.jpg)
Ceiling of Achievement, Ash Maurya
Lots of learning, but not learning the “right things.”
![Page 34: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/34.jpg)
Floor of Improvement?
Lots of improving, but not improving the “right things.”
![Page 35: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/35.jpg)
Modeling(Inductive)
Experimentation(Deductive)
Empirical Data
We can’t ignorethis part.
The Scientific Method
![Page 36: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/36.jpg)
Experimentation = Deductive Reasoning
![Page 37: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/37.jpg)
Modeling = Inductive Reasoning
![Page 38: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/38.jpg)
Modeling(Inductive)
Experimentation(Deductive)
Empirical Data
Creating an explicit model makesour beliefs testable and our discoveries additive.
Science is a Feedback Loop
We can’t ignorethis part.
![Page 39: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/39.jpg)
“The Customer Factory”, Ash Maurya
Optimize the Rate of Happy Customer Flow
![Page 40: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/40.jpg)
Unaware Visitors
Users
RetentionUser Repeats Experience
Currency(not necessarily money)
Customers
Referrals
Customer Value > Customer Cost > Your Costs
Amusement Park
Interested Prospects
![Page 41: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/41.jpg)
“The Art of the Scientist” Lean Startup Workshop, Ash Maurya
Ash: “The goal isn’t learning, the goal is traction.”
![Page 42: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/42.jpg)
We can measure flow throughthe Customer Factory.
How do we know if we’re getting traction?
![Page 43: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/43.jpg)
The GoalEliyahu Goldratt
![Page 44: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/44.jpg)
Focus onLimiting
Constraint
Optimize the Rate of Flow in a Supply Chain
![Page 45: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/45.jpg)
“The Customer Factory”, Ash Maurya
Optimize the Rate of Happy Customer Flow
Identify the Limiting Constraint
![Page 46: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/46.jpg)
The Three Steps of Science
1. Measure the “What”2. Explain the “Why”3. Experiment to Learn “How”
![Page 47: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/47.jpg)
Lean Startup: Science-Driven Refactoring
Target: Optimize Rate of Factory Flow
Pain Signal: “Friction” in Flow
![Page 48: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/48.jpg)
This is “Out of Control”
Lower Variability = Better Control
Process Control in Lean Manufacturing
Quality Target
Upper Control Limit
Lower Control Limit
![Page 49: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/49.jpg)
Symptom
Process Control in Lean Manufacturing
Symptom
Symptom
Cause
Cause
Fix
Fix
Fix
FixCause
Cause
Symptom
![Page 50: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/50.jpg)
Symptom
Symptom
Symptom
Cause
Cause
Fix
Fix
Fix
FixCause
Cause
Symptom
What Why How
Process Control in Lean Manufacturing
![Page 51: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/51.jpg)
Average Friction per Customer
This is “Traction”
Optimize for Customer Happiness
HighFriction
MinFriction
“No”Threshold
CustomerHappiness
Categorize the “No” Type
![Page 52: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/52.jpg)
How do we use science to create a feedback loop in
software development?
![Page 53: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/53.jpg)
Problems Look Avoidable in Hindsight
z
14:230:00
Big haystack of changes will make troubleshooting difficult
“That was a dumb thing to do,I’ll avoid that next time…
![Page 54: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/54.jpg)
Imagine your brain is adecision-making engine
written in code.
Breakpoint
Human Brain = Decision-Making Machine
![Page 55: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/55.jpg)
The ChallengeWe tend to make auto-pilot decisions and do what’s familiar
How do we modify decision habits?
![Page 56: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/56.jpg)
BreakpointStop and Think!
Turn Auto-Pilot Decisions into Conscious Decisions
The Awareness Challenge:
We have to recognize the situationand predict the pain
in order to modify the decision.
Now we can modify the decision code!
![Page 57: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/57.jpg)
Improve Quality of Decisions
Data-Driven Software Mastery
![Page 58: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/58.jpg)
Target - The direction of “better”
Data-Driven Software Mastery
![Page 59: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/59.jpg)
Input - The constraints that limit our short-term choices…
Data-Driven Software Mastery
![Page 60: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/60.jpg)
Output - The pain signal we’re trying to improve
Data-Driven Software Mastery
![Page 61: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/61.jpg)
Focus on the biggest pain…
Data-Driven Software Mastery
![Page 62: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/62.jpg)
1. Visibility - Identify the specific patterns
1.Visibility
Data-Driven Software Mastery
![Page 63: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/63.jpg)
2. Clarity - Understand cause and effect
2.Clarity
Data-Driven Software Mastery
![Page 64: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/64.jpg)
3.Awareness
3. Awareness - Stop and think to adjust habits
Data-Driven Software Mastery
![Page 65: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/65.jpg)
4. Run Experiments to Learn What Works
Data-Driven Software Mastery
![Page 66: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/66.jpg)
Average Pain per Incident
This is Traction
Target Flow
Control Limit
Categorize the Pain Type
“Pain Control” in Software Development
![Page 67: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/67.jpg)
Symptom
Symptom
Symptom
Cause
Cause
Fix
Fix
Fix
FixCause
Cause
Symptom
What Why How
Refactor BrainPain Type
![Page 68: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/68.jpg)
BreakpointStop and Think!
We have to recognize the situationand predict the pain
in order to modify the decision.
The Awareness Challenge:
What —> Why —> How
![Page 69: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/69.jpg)
George LakoffMetaphors We Live By
Jeff HawkinsOn Intelligence
+
The Foundational Theory
Theory of Understanding Theory of Prediction
![Page 70: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/70.jpg)
What —> Why
![Page 71: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/71.jpg)
Observe Pattern
“Do I know this pattern?”
Metaphors are patterns of conceptual “Shapes”
![Page 72: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/72.jpg)
“What is Clojure?”
Lisp
property: Functional Language
Groovy
property: JVM Language
property: Object-Oriented Language
Clojure!
property: JVM Language
property: Functional Language
How Our Brain Creates a New Shape Recipe
![Page 73: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/73.jpg)
Three Different Types of Metaphors
Object Patterns(Thing)
Context/Relationship Patterns(Space)
Process Patterns (Time)
![Page 74: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/74.jpg)
Technical Debt
Debt is a “Thing”
![Page 75: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/75.jpg)
“This looks likea tech debt thing.”
1. Categorize patterns by concept type
![Page 76: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/76.jpg)
“This looks likea painful tech debt
thing.”
2. Categorize variations by intensity.
Pain level = 8
![Page 77: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/77.jpg)
= Little Debt
= Medium Debt
= Big Debt
Beliefs About Developer Pain
![Page 78: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/78.jpg)
PAIN occurs during the process of understanding and extending the software
PAIN
Pain occurs over TIME.
![Page 79: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/79.jpg)
What do you think happens when we make this transition?
Process Patterns (Time)
Object Patterns(Thing)
![Page 80: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/80.jpg)
What Causes Unexpected
Behavior (likeliness)?
What Makes Troubleshooting
Time-Consuming (impact)?
Take a Closer Look at the Patterns
Familiarity MistakesStale Memory MistakesSemantic MistakesBad Input AssumptionTedious Change MistakesCopy-Edit MistakesTransposition MistakesFailed Refactor MistakesFalse Alarm
Non-Deterministic BehaviorAmbiguous CluesLots of Code ChangesNoisy OutputCryptic OutputLong Execution TimeEnvironment CleanupTest Data CreationUsing Debugger
Most of the pain was caused by human factors.
![Page 81: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/81.jpg)
JourneyBeginning End
Think about the Developer’s Experience as a
Problem-Solving Journey
![Page 82: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/82.jpg)
Journey
Constraints
What were the biggest challenges on the journey?
![Page 83: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/83.jpg)
Friction
Journey
What were the biggest challenges on the journey?
![Page 84: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/84.jpg)
Journey Strategy
What were the biggest challenges on the journey?
![Page 85: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/85.jpg)
Journey Uncertainty
What were the biggest challenges on the journey?
???
![Page 86: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/86.jpg)
8:150:00
George’s Painful Experience
Look for Patterns in Experience Reviews
What pain did you experience?What situation caused the pain?
What strategies did you try?
What strategies would you try if you could do it again?
![Page 87: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/87.jpg)
Situation Strategy Consequence
Developer Journeys
Clarity = Understand Why Breakdown the Journeys into Patterns
![Page 88: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/88.jpg)
PastStrategiesSituation Consequence
Prediction Machine
“Gut Feel” arises through pattern reinforcement
Clarity = Understand Why Breakdown the Journeys into Patterns
![Page 89: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/89.jpg)
Symptom
Symptom
Symptom
Cause
Cause
Fix
Fix
Fix
FixCause
Cause
Symptom
What Why How
Refactor BrainPain Type
![Page 90: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/90.jpg)
Why —> How
![Page 91: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/91.jpg)
BreakpointStop and Think!
Turn Auto-Pilot Decisions into Conscious Decisions
The Awareness Challenge:
We have to recognize the situationand predict the pain
in order to modify the decision.
Now we can modify the decision code!
![Page 92: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/92.jpg)
The Checklist ManifestoAtul Gawande
Scaling LeanAsh Maurya
+
Change Habits with Checklist Experiments
![Page 93: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/93.jpg)
The Haystack Principle
Lots of unvalidated changes
Easier to find the needle.
The Haystack Principle
Optimize for small manageable haystacks.
![Page 94: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/94.jpg)
14:230:00
I want to avoid this…
Thinking ChecklistIs my current approach likely to cause a big haystack?
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?”
![Page 95: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/95.jpg)
0:00
Stop and Think:
Is my current approach likely tocause a big haystack?
Predict: Small haystackLow Friction
Checklist Experiments
![Page 96: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/96.jpg)
18:120:00
Stop and Think:
Is my current approach likely tocause a big haystack?
False Prediction
Predict: Small haystackLow Friction
Checklist Experiments
![Page 97: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/97.jpg)
18:120:00
Stop and Think:
Is my current approach likely tocause a big haystack?
False Prediction
High-Risk Situations
1. Unraveling sweater2. Integration-heavy change3. High state variation4. Minimum scope is big
Q: Is my current approach likely tocause a big haystack?
Start of Subtask
Checklist Experiments
![Page 98: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/98.jpg)
Strategy Types (“do”)
1. DependencyAnalysis2. IncrementalIntegrationTest3. DataDrivenTest4. IsolateHardToTestCode
Situation Types (“see”)
1. UnravelingSweater2. HeavyIntegrationLogic3. HighStateVariation4. CoupledExternalDependencies
Haystack Decisions
![Page 99: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/99.jpg)
Adhoc Predictions While You Work
I predict this <strategy> will avoid this <pain>
General rule of thumb: Predict the pain and throw as many patterns as you can in a
sentence
I see a risk of this <situation>, and I predict this <strategy> will help me
avoid it
![Page 100: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/100.jpg)
Symptom
Symptom
Symptom
Cause
Cause
Fix
Fix
Fix
FixCause
Cause
Symptom
What Why How
Refactor BrainPain Type
![Page 101: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/101.jpg)
Improve Quality of Decisions
Data-Driven Software Mastery
![Page 102: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/102.jpg)
If any part of the feedback loop is broken:
Our improvements don’t make much difference.
![Page 103: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/103.jpg)
Average Pain per Incident
This is Traction
Target Flow
Control Limit
Categorize the Pain Type
“Pain Control” in Software Development
![Page 104: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/104.jpg)
Overview
How can we measure development pain?
How do we create a data-driven feedback loop?
What does this look like in practice?
![Page 105: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/105.jpg)
Continuous Improvement Framework
![Page 106: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/106.jpg)
1. Clarify the Strategy
![Page 107: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/107.jpg)
1. Clarify the Strategy
![Page 108: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/108.jpg)
1. Clarify the Strategy
![Page 109: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/109.jpg)
Look for #Patterns.
1. Clarify the Strategy
![Page 110: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/110.jpg)
Janelle’s Painful Experience
2. Record an Idea Flow Map
Make adhoc predictions as you work
![Page 111: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/111.jpg)
3. Reflect on Decisions (Experience Review)
![Page 112: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/112.jpg)
3. Reflect on Decisions (Experience Review)
![Page 113: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/113.jpg)
3. Reflect on Decisions (Experience Review)
![Page 114: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/114.jpg)
Look for #Patterns.
3. Reflect on Decisions (Experience Review)
![Page 115: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/115.jpg)
Continuous Improvement Framework
![Page 116: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/116.jpg)
Focus Meeting: Mastery Circle
Circle Leader
Circle Member
Focus: What pain did we experience?Observe: Ask questions about the factsConclude: What major factors caused pain?Optimize: What strategies to reduce the pain?Learn: What experiments could we run?
ObservationQuestions
Make a F.O.C.O.L Point!
Summarize lessons learned in a #HashTagged Journey.
(focused problem-solving discussion)
![Page 117: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/117.jpg)
Dedicated Capacity for Improvement Work
Long-term feedback loop
![Page 118: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/118.jpg)
LEARN YOUR WAY TO AWESOME.
Free to Join Industry Peer Mentorship Network
openmastery.org
![Page 119: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/119.jpg)
Developer Insight Tools Platform
Idea Flow Mapping Tools
Team Insight Tools
TeamJoeSallyMarkEric
Community Insight Tools
AnonymizedData
(REST)
Shared Taxonomyof Patterns & Principles
(with example data)
![Page 120: Learn Your Way to AWESOME](https://reader036.vdocuments.us/reader036/viewer/2022070602/587586ce1a28ab901c8b4e63/html5/thumbnails/120.jpg)
Janelle Kleinopenmastery.org @janellekz
Check out openmastery.org for details.
Read my Book.
Think About It.
FREE withMembershipBuy It
How to Measure the PAINin Software Development
Janelle Klein