SlideShare a Scribd company logo
1 of 120
Janelle Klein
openmastery.org @janellekz
Point A Point AWESOME.
Learn Your Way to
AWESOME.
Focus of this Talk:
Using Science to Fuel Software Mastery
“Data-Driven Software Mastery”
Overview
How can we measure development pain?
How do we create a data-driven feedback loop?
What does this look like in practice?
Overview
How can we measure development pain?
How do we create a data-driven feedback loop?
What does this look like in practice?
Great Team
Disciplined with Best Practices
Constantly Working on Improvements+
Project FAILURE
About 8 years ago…
Technical Debt Mistakes
I thought the problem was
Technical Debt
Most of our mistakes were in the
most well-written parts of the code.
Mistakes
We made significantly more mistakes
in code that we didn’t write ourselves.
Lower
Familiarity
More
Mistakes=
There had to be more to the story...
PAIN
This is what I knew...
What made development feel painful?
Unexpected
Behavior
Problem
Resolved
Tracking Painful Interaction with the Code (Friction)
Troubleshooting
Progress
5 hours and 18 minutes of troubleshooting...
PAINFUL
What Causes Unexpected
Behavior (likeliness)?
What Makes Troubleshooting
Time-Consuming (impact)?
Semantic Mistakes
Stale Memory Mistakes
Association Mistakes
Bad Input Assumption
Tedious Change Mistakes
Copy-Edit Mistakes
Transposition Mistakes
Failed Refactor Mistakes
False Alarm
Non-Deterministic Behavior
Ambiguous Clues
Lots of Code Changes
Noisy Output
Cryptic Output
Long Execution Time
Environment Cleanup
Test Data Creation
Using Debugger
Most of the pain was caused by human factors.
What causes PAIN?
What Causes Unexpected
Behavior (likeliness)?
What Makes Troubleshooting
Time-Consuming (impact)?
Non-Deterministic Behavior
Ambiguous Clues
Lots of Code Changes
Noisy Output
Cryptic Output
Long Execution Time
Environment Cleanup
Test Data Creation
Using Debugger
What causes PAIN?
Most of the pain was caused by human factors.
Semantic Mistakes
Stale Memory Mistakes
Association Mistakes
Bad Input Assumption
Tedious Change Mistakes
Copy-Edit Mistakes
Transposition Mistakes
Failed Refactor Mistakes
False Alarm
What Causes Unexpected
Behavior (likeliness)?
What Makes Troubleshooting
Time-Consuming (impact)?
Non-Deterministic Behavior
Ambiguous Clues
Lots of Code Changes
Noisy Output
Cryptic Output
Long Execution Time
Environment Cleanup
Test Data Creation
Using Debugger
What causes PAIN?
Semantic Mistakes
Stale Memory Mistakes
Association Mistakes
Bad Input Assumption
Tedious Change Mistakes
Copy-Edit Mistakes
Transposition Mistakes
Failed Refactor Mistakes
False Alarm
Most of the pain was caused by human factors.
What Causes Unexpected
Behavior (likeliness)?
What Makes Troubleshooting
Time-Consuming (impact)?
Non-Deterministic Behavior
Ambiguous Clues
Lots of Code Changes
Noisy Output
Cryptic Output
Long Execution Time
Environment Cleanup
Test Data Creation
Using Debugger
What causes PAIN?
PAIN is a consequence of how we interact with the code.
Semantic Mistakes
Stale Memory Mistakes
Association Mistakes
Bad Input Assumption
Tedious Change Mistakes
Copy-Edit Mistakes
Transposition Mistakes
Failed Refactor Mistakes
False Alarm
PAIN occurs during the process of
understanding and extending the software
PAIN
Not the Code.
Optimize “Idea Flow”
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.
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.
The hard part isn’t solving the problems
it’s identifying the right problems to solve.
“What are the specific problems
that are causing the team’s pain?”
PAIN occurs during the process of
understanding and extending the software
PAIN
Not the Code.
Optimize “Idea Flow”
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.
Write a little code. Work out the kinks.
The Rhythm of “Idea Flow”
Does the behavior match our expectations?
The Rhythm of “Idea Flow”
Write a little code. Work out the kinks.
Adjustment LoopProgress Loop
“Friction” in Idea Flow
Write a little code. Work out the kinks.
Adjustment LoopProgress Loop
Idea Flow Mapping Tools
(Open Source, Supported GA ~August 2016)
github.com/ideaflow/tools
“Idea Flow Map”
“Friction”
“What caused the pain
in this case?”
Categorize the Problems with #HashTags
#ReportingEngine
#Hibernate
#MergeHell
1. Problem A
2. Problem B
3. Problem C
Add up the Pain by Category
What’s the biggest problem to solve?
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?
The Lean Startup
Eric Reis
Pioneers in the Art of “Everyday Science”
“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
“The Art of the Scientist” Workshop, Ash Maurya
NO!
?
?
?
?
?
?
?
Getting Involved with Lean Startup
“The Art of the Scientist” Workshop, Ash Maurya
Ash:
“The most important things scientists do is build models.”
Getting Involved with Lean Startup
Ceiling of Achievement, Ash Maurya
Lots of learning, but not learning the “right things.”
Floor of Improvement?
Lots of improving, but not improving the “right things.”
Modeling
(Inductive)
Experimentation
(Deductive)
Empirical Data
We can’t ignore
this part.
The Scientific Method
Experimentation = Deductive Reasoning
Modeling = Inductive Reasoning
Modeling
(Inductive)
Experimentation
(Deductive)
Empirical Data
Creating an explicit model makes
our beliefs testable and our discoveries additive.
Science is a Feedback Loop
We can’t ignore
this part.
“The Customer Factory”, Ash Maurya
Optimize the Rate of Happy Customer Flow
Unaware
Visitors
Users
Retention
User Repeats Experience
Currency
(not necessarily money)
Customers
Referrals
Customer Value > Customer Cost > Your Costs
Amusement Park
Interested
Prospects
“The Art of the Scientist”
Lean Startup Workshop, Ash Maurya
Ash:
“The goal isn’t learning, the goal is traction.”
We can measure flow through
the Customer Factory.
How do we know if we’re getting traction?
The Goal
Eliyahu Goldratt
Focus on
Limiting
Constraint
Optimize the Rate of Flow in a Supply Chain
“The Customer Factory”, Ash Maurya
Optimize the Rate of Happy Customer Flow
Identify the Limiting Constraint
The Three Steps of Science
1. Measure the “What”
2. Explain the “Why”
3. Experiment to Learn “How”
Lean Startup: Science-Driven Refactoring
Target: Optimize Rate of Factory Flow
Pain Signal:
“Friction” in Flow
This is “Out of Control”
Lower Variability = Better Control
Process Control in Lean Manufacturing
Quality Target
Upper Control Limit
Lower Control Limit
Symptom
Process Control in Lean Manufacturing
Symptom
Symptom
Cause
Cause
Fix
Fix
Fix
FixCause
Cause
Symptom
Symptom
Symptom
Symptom
Cause
Cause
Fix
Fix
Fix
FixCause
Cause
Symptom
What Why How
Process Control in Lean Manufacturing
Average Friction per Customer
This is “Traction”
Optimize for Customer Happiness
High
Friction
Min
Friction
“No”
Threshold
Customer
Happiness
Categorize the “No” Type
How do we use science to
create a feedback loop in
software development?
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…
Imagine your brain is a
decision-making engine
written in code.
Breakpoint
Human Brain = Decision-Making Machine
The Challenge
We tend to make auto-pilot decisions and do what’s familiar
How do we modify decision habits?
Breakpoint
Stop and Think!
Turn Auto-Pilot Decisions into Conscious Decisions
The Awareness Challenge:
We have to recognize the situation
and predict the pain
in order to modify the decision.
Now we can modify the decision code!
Improve Quality of Decisions
Data-Driven Software Mastery
Target - The direction of “better”
Data-Driven Software Mastery
Input - The constraints that limit our short-term choices…
Data-Driven Software Mastery
Output - The pain signal we’re trying to improve
Data-Driven Software Mastery
Focus on the biggest pain…
Data-Driven Software Mastery
1. Visibility - Identify the specific patterns
1.
Visibility
Data-Driven Software Mastery
2. Clarity - Understand cause and effect
2.
Clarity
Data-Driven Software Mastery
3.
Awareness
3. Awareness - Stop and think to adjust habits
Data-Driven Software Mastery
4. Run Experiments to Learn What Works
Data-Driven Software Mastery
Average Pain per Incident
This is Traction
Target Flow
Control Limit
Categorize the Pain Type
“Pain Control” in Software Development
Symptom
Symptom
Symptom
Cause
Cause
Fix
Fix
Fix
FixCause
Cause
Symptom
What Why How
Refactor BrainPain Type
Breakpoint
Stop and Think!
We have to recognize the situation
and predict the pain
in order to modify the decision.
The Awareness Challenge:
What —> Why —> How
George Lakoff
Metaphors We Live By
Jeff Hawkins
On Intelligence
+
The Foundational Theory
Theory of Understanding Theory of Prediction
What —> Why
Observe Pattern
“Do I know this pattern?”
Metaphors are patterns of conceptual “Shapes”
“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
Three Different Types of Metaphors
Object Patterns
(Thing)
Context/Relationship Patterns
(Space)
Process Patterns
(Time)
Technical Debt
Debt
is a “Thing”
“This looks like
a tech debt thing.”
1. Categorize patterns by concept type
“This looks like
a painful tech debt thing.”
2. Categorize variations by intensity.
Pain level = 8
= Little Debt
= Medium Debt
= Big Debt
Beliefs About Developer Pain
PAIN occurs during the process of
understanding and extending the software
PAIN
Pain occurs over TIME.
What do you think happens when we
make this transition?
Process Patterns
(Time)
Object Patterns
(Thing)
What Causes Unexpected
Behavior (likeliness)?
What Makes Troubleshooting
Time-Consuming (impact)?
Take a Closer Look at the Patterns
Familiarity Mistakes
Stale Memory Mistakes
Semantic Mistakes
Bad Input Assumption
Tedious Change Mistakes
Copy-Edit Mistakes
Transposition Mistakes
Failed Refactor Mistakes
False Alarm
Non-Deterministic Behavior
Ambiguous Clues
Lots of Code Changes
Noisy Output
Cryptic Output
Long Execution Time
Environment Cleanup
Test Data Creation
Using Debugger
Most of the pain was caused by human factors.
Journey
Beginning End
Think about the Developer’s Experience as a
Problem-Solving Journey
Journey
Constraints
What were the biggest challenges on the journey?
Friction
Journey
What were the biggest challenges on the journey?
Journey Strategy
What were the biggest challenges on the journey?
Journey Uncertainty
What were the biggest challenges on the journey?
???
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?
Situation Strategy Consequence
Developer Journeys
Clarity = Understand Why
Breakdown the Journeys into Patterns
Past
StrategiesSituation Consequence
Prediction Machine
“Gut Feel” arises through pattern reinforcement
Clarity = Understand Why
Breakdown the Journeys into Patterns
Symptom
Symptom
Symptom
Cause
Cause
Fix
Fix
Fix
FixCause
Cause
Symptom
What Why How
Refactor BrainPain Type
Why —> How
Breakpoint
Stop and Think!
Turn Auto-Pilot Decisions into Conscious Decisions
The Awareness Challenge:
We have to recognize the situation
and predict the pain
in order to modify the decision.
Now we can modify the decision code!
The Checklist Manifesto
Atul Gawande
Scaling Lean
Ash Maurya
+
Change Habits with Checklist Experiments
The Haystack Principle
Lots of unvalidated changes
Easier to find the needle.
The Haystack Principle
Optimize for small manageable haystacks.
14:230:00
I want to avoid this…
Thinking Checklist
Is 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?”
0:00
Stop and Think:
Is my current approach likely to
cause a big haystack?
Predict: Small haystack
Low Friction
Checklist Experiments
18:120:00
Stop and Think:
Is my current approach likely to
cause a big haystack?
False Prediction
Predict: Small haystack
Low Friction
Checklist Experiments
18:120:00
Stop and Think:
Is my current approach likely to
cause a big haystack?
False Prediction
High-Risk Situations
1. Unraveling sweater
2. Integration-heavy change
3. High state variation
4. Minimum scope is big
Q: Is my current approach likely to
cause a big haystack?
Start of Subtask
Checklist Experiments
Strategy Types (“do”)
1. DependencyAnalysis
2. IncrementalIntegrationTest
3. DataDrivenTest
4. IsolateHardToTestCode
Situation Types (“see”)
1. UnravelingSweater
2. HeavyIntegrationLogic
3. HighStateVariation
4. CoupledExternalDependencies
Haystack Decisions
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
Symptom
Symptom
Symptom
Cause
Cause
Fix
Fix
Fix
FixCause
Cause
Symptom
What Why How
Refactor BrainPain Type
Improve Quality of Decisions
Data-Driven Software Mastery
If any part of the feedback loop is broken:
Our improvements don’t make much difference.
Average Pain per Incident
This is Traction
Target Flow
Control Limit
Categorize the Pain Type
“Pain Control” in Software Development
Overview
How can we measure development pain?
How do we create a data-driven feedback loop?
What does this look like in practice?
Continuous Improvement Framework
1. Clarify the Strategy
1. Clarify the Strategy
1. Clarify the Strategy
Look for #Patterns.
1. Clarify the Strategy
Janelle’s Painful Experience
2. Record an Idea Flow Map
Make adhoc predictions as you work
3. Reflect on Decisions (Experience Review)
3. Reflect on Decisions (Experience Review)
3. Reflect on Decisions (Experience Review)
Look for #Patterns.
3. Reflect on Decisions (Experience Review)
Continuous Improvement Framework
Focus Meeting: Mastery Circle
Circle Leader
Circle Member
Focus: What pain did we experience?
Observe: Ask questions about the facts
Conclude: What major factors caused pain?
Optimize: What strategies to reduce the pain?
Learn: What experiments could we run?
Observation
Questions
Make a F.O.C.O.L Point!
Summarize lessons learned in a
#HashTagged Journey.
(focused problem-solving discussion)
Dedicated Capacity for Improvement Work
Long-term feedback loop
LEARN YOUR WAY TO AWESOME.
Free to Join Industry Peer Mentorship Network
openmastery.org
Developer Insight Tools Platform
Idea Flow Mapping Tools
Team Insight Tools
Team
Joe
Sally
Mark
Eric
Community Insight Tools
Anonymized
Data
(REST)
Shared Taxonomy
of Patterns & Principles
(with example data)
Janelle Klein
openmastery.org @janellekz
Check out openmastery.org for details.
Read my Book.
Think About It.
FREE with
MembershipBuy It
How to Measure the PAIN
in Software Development
Janelle Klein

More Related Content

What's hot

Data-Driven Software Mastery @Open Mastery Austin
Data-Driven Software Mastery @Open Mastery AustinData-Driven Software Mastery @Open Mastery Austin
Data-Driven Software Mastery @Open Mastery AustinArty Starr
 
How To (Not) Open Source - Javazone, Oslo 2014
How To (Not) Open Source - Javazone, Oslo 2014How To (Not) Open Source - Javazone, Oslo 2014
How To (Not) Open Source - Javazone, Oslo 2014gdusbabek
 
Identify Development Pains and Resolve Them with Idea Flow
Identify Development Pains and Resolve Them with Idea FlowIdentify Development Pains and Resolve Them with Idea Flow
Identify Development Pains and Resolve Them with Idea FlowTechWell
 
Evangelizing Your Thing (Extended Edition)
Evangelizing Your Thing (Extended Edition)Evangelizing Your Thing (Extended Edition)
Evangelizing Your Thing (Extended Edition)Rex St. John
 
Testing for cognitive bias in ai systems
Testing for cognitive bias in ai systemsTesting for cognitive bias in ai systems
Testing for cognitive bias in ai systemsPeter Varhol
 
A Rapid Introduction to Rapid Software Testing
A Rapid Introduction to Rapid Software TestingA Rapid Introduction to Rapid Software Testing
A Rapid Introduction to Rapid Software TestingTechWell
 
The Rationale for Continuous Delivery by Dave Farley
The Rationale for Continuous Delivery by Dave FarleyThe Rationale for Continuous Delivery by Dave Farley
The Rationale for Continuous Delivery by Dave FarleyBosnia Agile
 
Making feedback visible_agileee_2010
Making feedback visible_agileee_2010Making feedback visible_agileee_2010
Making feedback visible_agileee_2010Anda Abramovici
 
Supercharging your bug reports
Supercharging your bug reportsSupercharging your bug reports
Supercharging your bug reportsNeil Studd
 
Guerrilla portfolio management
Guerrilla portfolio managementGuerrilla portfolio management
Guerrilla portfolio managementAlberto Brandolini
 

What's hot (13)

Why #OpenDX?
Why #OpenDX?Why #OpenDX?
Why #OpenDX?
 
Data-Driven Software Mastery @Open Mastery Austin
Data-Driven Software Mastery @Open Mastery AustinData-Driven Software Mastery @Open Mastery Austin
Data-Driven Software Mastery @Open Mastery Austin
 
How To (Not) Open Source - Javazone, Oslo 2014
How To (Not) Open Source - Javazone, Oslo 2014How To (Not) Open Source - Javazone, Oslo 2014
How To (Not) Open Source - Javazone, Oslo 2014
 
Identify Development Pains and Resolve Them with Idea Flow
Identify Development Pains and Resolve Them with Idea FlowIdentify Development Pains and Resolve Them with Idea Flow
Identify Development Pains and Resolve Them with Idea Flow
 
Evangelizing Your Thing (Extended Edition)
Evangelizing Your Thing (Extended Edition)Evangelizing Your Thing (Extended Edition)
Evangelizing Your Thing (Extended Edition)
 
Testing for cognitive bias in ai systems
Testing for cognitive bias in ai systemsTesting for cognitive bias in ai systems
Testing for cognitive bias in ai systems
 
What lies beneath
What lies beneathWhat lies beneath
What lies beneath
 
A Rapid Introduction to Rapid Software Testing
A Rapid Introduction to Rapid Software TestingA Rapid Introduction to Rapid Software Testing
A Rapid Introduction to Rapid Software Testing
 
The Rationale for Continuous Delivery by Dave Farley
The Rationale for Continuous Delivery by Dave FarleyThe Rationale for Continuous Delivery by Dave Farley
The Rationale for Continuous Delivery by Dave Farley
 
Making feedback visible_agileee_2010
Making feedback visible_agileee_2010Making feedback visible_agileee_2010
Making feedback visible_agileee_2010
 
Theia H4D Stanford 2018
Theia H4D Stanford 2018Theia H4D Stanford 2018
Theia H4D Stanford 2018
 
Supercharging your bug reports
Supercharging your bug reportsSupercharging your bug reports
Supercharging your bug reports
 
Guerrilla portfolio management
Guerrilla portfolio managementGuerrilla portfolio management
Guerrilla portfolio management
 

Viewers also liked

How to manage web projects without setting your hair on fire
How to manage web projects without setting your hair on fireHow to manage web projects without setting your hair on fire
How to manage web projects without setting your hair on fireKathy Gill
 
Complexity Theory and Software Development
Complexity Theory and Software DevelopmentComplexity Theory and Software Development
Complexity Theory and Software DevelopmentTim Berglund
 
Maverick "The Recruit 2015" I Am #TeamPedestrian by Yulian
Maverick "The Recruit 2015" I Am #TeamPedestrian by YulianMaverick "The Recruit 2015" I Am #TeamPedestrian by Yulian
Maverick "The Recruit 2015" I Am #TeamPedestrian by YulianYulian Liong
 
Thong Tin Ve Thuoc Jex
Thong Tin Ve Thuoc JexThong Tin Ve Thuoc Jex
Thong Tin Ve Thuoc Jexwaylon557
 
17. Полацкае княства ў ІХ-ХІ стст.
17. Полацкае княства ў ІХ-ХІ стст.17. Полацкае княства ў ІХ-ХІ стст.
17. Полацкае княства ў ІХ-ХІ стст.AnastasiyaF
 
Assistant clerk performance appraisal
Assistant clerk performance appraisalAssistant clerk performance appraisal
Assistant clerk performance appraisalkyleannie435
 
Hoop snoop top 10 (may 10 2015)
Hoop snoop top 10 (may 10 2015)Hoop snoop top 10 (may 10 2015)
Hoop snoop top 10 (may 10 2015)shiro dino
 
RESULTS SUMMARY
RESULTS SUMMARYRESULTS SUMMARY
RESULTS SUMMARYBekki Tagg
 

Viewers also liked (11)

How to manage web projects without setting your hair on fire
How to manage web projects without setting your hair on fireHow to manage web projects without setting your hair on fire
How to manage web projects without setting your hair on fire
 
Complexity Theory and Software Development
Complexity Theory and Software DevelopmentComplexity Theory and Software Development
Complexity Theory and Software Development
 
Scala
ScalaScala
Scala
 
Maverick "The Recruit 2015" I Am #TeamPedestrian by Yulian
Maverick "The Recruit 2015" I Am #TeamPedestrian by YulianMaverick "The Recruit 2015" I Am #TeamPedestrian by Yulian
Maverick "The Recruit 2015" I Am #TeamPedestrian by Yulian
 
Thong Tin Ve Thuoc Jex
Thong Tin Ve Thuoc JexThong Tin Ve Thuoc Jex
Thong Tin Ve Thuoc Jex
 
17. Полацкае княства ў ІХ-ХІ стст.
17. Полацкае княства ў ІХ-ХІ стст.17. Полацкае княства ў ІХ-ХІ стст.
17. Полацкае княства ў ІХ-ХІ стст.
 
Assistant clerk performance appraisal
Assistant clerk performance appraisalAssistant clerk performance appraisal
Assistant clerk performance appraisal
 
Minimol - resume
Minimol - resumeMinimol - resume
Minimol - resume
 
Hoop snoop top 10 (may 10 2015)
Hoop snoop top 10 (may 10 2015)Hoop snoop top 10 (may 10 2015)
Hoop snoop top 10 (may 10 2015)
 
RESULTS SUMMARY
RESULTS SUMMARYRESULTS SUMMARY
RESULTS SUMMARY
 
UOP transcript
UOP transcriptUOP transcript
UOP transcript
 

Similar to Learn Your Way to AWESOME.

Let's Make the PAIN Visible!
Let's Make the PAIN Visible!Let's Make the PAIN Visible!
Let's Make the PAIN Visible!Arty Starr
 
Make a F.O.C.O.L. Point!
Make a F.O.C.O.L. Point!Make a F.O.C.O.L. Point!
Make a F.O.C.O.L. Point!Arty Starr
 
Reviewing a Developer Experience
Reviewing a Developer ExperienceReviewing a Developer Experience
Reviewing a Developer ExperienceArty Starr
 
GDG Cloud Southlake #24: Arty Starr: Enabling Powerful Software Insights by V...
GDG Cloud Southlake #24: Arty Starr: Enabling Powerful Software Insights by V...GDG Cloud Southlake #24: Arty Starr: Enabling Powerful Software Insights by V...
GDG Cloud Southlake #24: Arty Starr: Enabling Powerful Software Insights by V...James Anderson
 
Being Right Starts By Knowing You're Wrong
Being Right Starts By Knowing You're WrongBeing Right Starts By Knowing You're Wrong
Being Right Starts By Knowing You're WrongData Con LA
 
Software Analytics
Software AnalyticsSoftware Analytics
Software AnalyticsAndy Zaidman
 
Empirical Methods in Software Engineering - an Overview
Empirical Methods in Software Engineering - an OverviewEmpirical Methods in Software Engineering - an Overview
Empirical Methods in Software Engineering - an Overviewalessio_ferrari
 
Presentatie Web analytics in the Public Sector Govdesign v4 english version
Presentatie Web analytics in the Public Sector Govdesign v4 english versionPresentatie Web analytics in the Public Sector Govdesign v4 english version
Presentatie Web analytics in the Public Sector Govdesign v4 english versionToon Vuursteen
 
Open Mastery: Let's Conquer the Challenges of the Industry!
Open Mastery: Let's Conquer the Challenges of the Industry!Open Mastery: Let's Conquer the Challenges of the Industry!
Open Mastery: Let's Conquer the Challenges of the Industry!Arty Starr
 
Troublefree troubleshooting ian campbell sps jhb 2019
Troublefree troubleshooting ian campbell sps jhb 2019Troublefree troubleshooting ian campbell sps jhb 2019
Troublefree troubleshooting ian campbell sps jhb 2019Ian Campbell
 
Software estimation is crap
Software estimation is crapSoftware estimation is crap
Software estimation is crapIan Garrison
 
Shift Left, Shift Right and improve the centre
Shift Left, Shift Right and improve the centreShift Left, Shift Right and improve the centre
Shift Left, Shift Right and improve the centreAugusto Evangelisti
 
Risk management
Risk managementRisk management
Risk managementDino Dini
 
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)Peter Gfader
 
Improve Testing with a Zone Defense
Improve Testing with a Zone DefenseImprove Testing with a Zone Defense
Improve Testing with a Zone DefenseTechWell
 
It's Okay to be Wrong (Accelerator Academy Oct '17)
It's Okay to be Wrong (Accelerator Academy Oct '17)It's Okay to be Wrong (Accelerator Academy Oct '17)
It's Okay to be Wrong (Accelerator Academy Oct '17)Matt Mower
 
Tri State Final
Tri State FinalTri State Final
Tri State FinalSamWagner
 
Get Faster - While You're Getting Better
Get Faster - While You're Getting BetterGet Faster - While You're Getting Better
Get Faster - While You're Getting Betterantoineg
 
Training Taster: Leading the way to become a data-driven organization
Training Taster: Leading the way to become a data-driven organizationTraining Taster: Leading the way to become a data-driven organization
Training Taster: Leading the way to become a data-driven organizationGoDataDriven
 
JR Dickens - FPS 2004
JR Dickens - FPS 2004JR Dickens - FPS 2004
JR Dickens - FPS 2004jrd9234
 

Similar to Learn Your Way to AWESOME. (20)

Let's Make the PAIN Visible!
Let's Make the PAIN Visible!Let's Make the PAIN Visible!
Let's Make the PAIN Visible!
 
Make a F.O.C.O.L. Point!
Make a F.O.C.O.L. Point!Make a F.O.C.O.L. Point!
Make a F.O.C.O.L. Point!
 
Reviewing a Developer Experience
Reviewing a Developer ExperienceReviewing a Developer Experience
Reviewing a Developer Experience
 
GDG Cloud Southlake #24: Arty Starr: Enabling Powerful Software Insights by V...
GDG Cloud Southlake #24: Arty Starr: Enabling Powerful Software Insights by V...GDG Cloud Southlake #24: Arty Starr: Enabling Powerful Software Insights by V...
GDG Cloud Southlake #24: Arty Starr: Enabling Powerful Software Insights by V...
 
Being Right Starts By Knowing You're Wrong
Being Right Starts By Knowing You're WrongBeing Right Starts By Knowing You're Wrong
Being Right Starts By Knowing You're Wrong
 
Software Analytics
Software AnalyticsSoftware Analytics
Software Analytics
 
Empirical Methods in Software Engineering - an Overview
Empirical Methods in Software Engineering - an OverviewEmpirical Methods in Software Engineering - an Overview
Empirical Methods in Software Engineering - an Overview
 
Presentatie Web analytics in the Public Sector Govdesign v4 english version
Presentatie Web analytics in the Public Sector Govdesign v4 english versionPresentatie Web analytics in the Public Sector Govdesign v4 english version
Presentatie Web analytics in the Public Sector Govdesign v4 english version
 
Open Mastery: Let's Conquer the Challenges of the Industry!
Open Mastery: Let's Conquer the Challenges of the Industry!Open Mastery: Let's Conquer the Challenges of the Industry!
Open Mastery: Let's Conquer the Challenges of the Industry!
 
Troublefree troubleshooting ian campbell sps jhb 2019
Troublefree troubleshooting ian campbell sps jhb 2019Troublefree troubleshooting ian campbell sps jhb 2019
Troublefree troubleshooting ian campbell sps jhb 2019
 
Software estimation is crap
Software estimation is crapSoftware estimation is crap
Software estimation is crap
 
Shift Left, Shift Right and improve the centre
Shift Left, Shift Right and improve the centreShift Left, Shift Right and improve the centre
Shift Left, Shift Right and improve the centre
 
Risk management
Risk managementRisk management
Risk management
 
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
 
Improve Testing with a Zone Defense
Improve Testing with a Zone DefenseImprove Testing with a Zone Defense
Improve Testing with a Zone Defense
 
It's Okay to be Wrong (Accelerator Academy Oct '17)
It's Okay to be Wrong (Accelerator Academy Oct '17)It's Okay to be Wrong (Accelerator Academy Oct '17)
It's Okay to be Wrong (Accelerator Academy Oct '17)
 
Tri State Final
Tri State FinalTri State Final
Tri State Final
 
Get Faster - While You're Getting Better
Get Faster - While You're Getting BetterGet Faster - While You're Getting Better
Get Faster - While You're Getting Better
 
Training Taster: Leading the way to become a data-driven organization
Training Taster: Leading the way to become a data-driven organizationTraining Taster: Leading the way to become a data-driven organization
Training Taster: Leading the way to become a data-driven organization
 
JR Dickens - FPS 2004
JR Dickens - FPS 2004JR Dickens - FPS 2004
JR Dickens - FPS 2004
 

Recently uploaded

The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
buds n tech IT solutions
buds n  tech IT                solutionsbuds n  tech IT                solutions
buds n tech IT solutionsmonugehlot87
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningVitsRangannavar
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 

Recently uploaded (20)

The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
buds n tech IT solutions
buds n  tech IT                solutionsbuds n  tech IT                solutions
buds n tech IT solutions
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 

Learn Your Way to AWESOME.

Editor's Notes

  1. Hi everyone, this is Janelle Klein, founder of Open Mastery, and author of Idea Flow Learning Framework. So I wanted to tell you about Business Mastery Learning Framework, the new research project we’re working on, so you can see if this sounds like something you’d want to be apart of.
  2. I thought the main obstacle was all the technical debt building up in the code base that was causing us to make mistakes. and if we made changes in the code that had more technical debt, we’d be more likely to make mistakes. So I got this idea to build a tool that could detect high-risk changes, and tell us where we needed to do more testing -- but what I found wasn’t what I found wasn’t what I expected at all.
  3. Our bugs were mostly in the code written by the senior engineers on the team where the design actually got the most scrutiny. It’s not like we didn’t have any awful crufty code -- but that’s not where the bugs were. The correlation I did find in the data was this...
  4. [read] And while that made some sense, I couldn’t help but think, there had to be more to the story...
  5. When I had to work with complex code, it was really painful. [read]
  6. So I started keeping track of all my painful interaction with the code and visualizing it on a timeline like this. The pain started [] when I ran into some unexpected behavior and ended [] when I had the problem resolved. So that was 5 hours and 18 minutes of troubleshooting, I think everyone would agree that’s pretty painful.
  7. So I started breaking down the problems into categories. And when I did this, I realized that most of the pain was actually caused by human factors.
  8. This is when I have an idea in my head about how the code is supposed to work, but it doesn’t work that way anymore.
  9. This is when your running an experiment, and there’s multiple possibilities for how a behavior can occur, and you make a bad assumption, and down the rabbit hole you go. These aren’t really problems with the code itself, [read]
  10. These aren’t really problems with the code itself… [read]
  11. The pain isn’t something inside the code, pain occurs during the process of interacting with the code. So I started optimizing for… and I did that, with the help of a data driven feedback loop.
  12. On our project, we ended up [read] For almost a year! [read]
  13. [read] Then we started asking []
  14. [read] That’s when everything changed [] We were finally able to turn the project around. And I learned one of the most valuable lessons in my career. [read]
  15. The pain isn’t something inside the code, pain occurs during the process of interacting with the code. So I started optimizing for… and I did that, with the help of a data driven feedback loop.
  16. There’s this decision point when we validate the code and ask ourselves, “does the behavior match our expectations?”
  17. When we try to make progress, learning gets in the way. Especially if we’re unfamiliar with the system. And with conflict loops we have to troubleshoot the problem, then rework our solution before we get back to a stable state.
  18. Quick demo.
  19. Then by categorizing all the different types of problems I was running into, we could start adding up the time spent for each category, and we could figure out what was causing our biggest problems.
  20. So If I wanted to know what was causing the pain I needed to understand the things that caused these 2 factors. A lot of the problems had more to do with human factors than anything going on with the code. Stale Memory mistakes, Ambiguous Clues. But once I understood what was causing the pain, [read -- most of the problems were easy to avoid] For example...
  21. A little history here…
  22. That one sentence, fundamentally changed the trajectory of the next 3 years of my life.
  23. So we [read] measure the pain, explain what’s causing the pain, then run experiments to systematically learn what works. And for the model, we’re breaking down the lessons learned into patterns and what I call “decision principles”, the optimization rules for how to make trade-off decisions that reduce friction.
  24. So we [read] measure the pain, explain what’s causing the pain, then run experiments to systematically learn what works. And for the model, we’re breaking down the lessons learned into patterns and what I call “decision principles”, the optimization rules for how to make trade-off decisions that reduce friction.
  25. Ash talked about how the entrepreneurs he was working with were doing lots of learning, but spinning their wheels and getting nowhere. So he’s like: [read] And he wrote this incredible book, Scaling Lean which is some of the most brilliant material I’ve seen in years. Essentially describing the art of traction.
  26. This is a feedback loop.
  27. Rework Risk is driven by the likelihood... Things like... bad assumptions about the architecture or design or bad assumptions about customer requirements. The longer we delay before making corrections, the greater the rework.
  28. N
  29. Rework Risk is driven by the likelihood... Things like... bad assumptions about the architecture or design or bad assumptions about customer requirements. The longer we delay before making corrections, the greater the rework.
  30. Rework Risk is driven by the likelihood... Things like... bad assumptions about the architecture or design or bad assumptions about customer requirements. The longer we delay before making corrections, the greater the rework.
  31. Metaphors and language shape the way we see everything in the world around us. We don’t even realize how many of them affect us. Look for patterns in things, instead of look for patterns in processes.
  32. If we don’t make time to deal with emerging risks and emerging risks, we will never get out of this cycle.
  33. An attribute of a process is fundamentally different than an attribute of a thing. It’s the difference between a data file, and a program that generates data files.
  34. This happens all the time in software development. Imagine the idea you had conceptually mapped to an “it” becomes a “function for producing its.”
  35. Then you start recognizing the patterns, “aha! this is one of those situations, or… I should keep on eye on that.” If there’s one thing that will accelerate your learning faster than anything else, it’s this. Need to also mention Open Mastery Online. People in the Mentorship program we’re going to build a statical process control system for software development.
  36. Then you start recognizing the patterns, “aha! this is one of those situations, or… I should keep on eye on that.” If there’s one thing that will accelerate your learning faster than anything else, it’s this. Need to also mention Open Mastery Online. People in the Mentorship program we’re going to build a statical process control system for software development.
  37. Then you start recognizing the patterns, “aha! this is one of those situations, or… I should keep on eye on that.” If there’s one thing that will accelerate your learning faster than anything else, it’s this. Need to also mention Open Mastery Online. People in the Mentorship program we’re going to build a statical process control system for software development.
  38. Then you start recognizing the patterns, “aha! this is one of those situations, or… I should keep on eye on that.” If there’s one thing that will accelerate your learning faster than anything else, it’s this. Need to also mention Open Mastery Online. People in the Mentorship program we’re going to build a statical process control system for software development.
  39. Rework Risk is driven by the likelihood... Things like... bad assumptions about the architecture or design or bad assumptions about customer requirements. The longer we delay before making corrections, the greater the rework.
  40. Used thinking checklists to codify a decision-making process… let me show you what I mean.
  41. We optimize for execution time, even when the time spent on human cycles can completely dwarf the execution time. Why do you think that is?
  42. Focus on one decision principle until you have it down.
  43. Then I realized George was missing a key conceptual model.
  44. So here’s what I’m doing about it, because I really give a shit about these problems getting solved. I built an organization to carry the torch.
  45. With anonymized data, that we can all study together, solve problems together, and codify our knowledge into patterns and principles backed by data rather than anecdote and gut feel.
  46. If you want to join me, then read the book, and think about the ideas, see if this is something you want to be a part of. You can either buy the book, or if you start a reading group for Idea Flow, I’ll provide free e-books for all the attendees. Check out openmastery.org for details.