Download - Why #OpenDX?
![Page 1: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/1.jpg)
Gradle Summit 2016
![Page 2: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/2.jpg)
How to Measure Your #GradleDX
Janelle Klein
![Page 3: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/3.jpg)
, Developer, Consultant, CTO @Specialized in Statistical Process Control (SPC) and Supply Chain Optimization from Lean Manufacturing (data geek)
Continuous Delivery infrastructure, automation strategy & technical mentorship
Janelle Klein
Who Am I?
How to Measure the PAIN in Software Development
Janelle Klein
Author of “Idea Flow”
leanpub.com/ideaflow
Yay!
Tour SpeakerFounder of
newiron.com
![Page 4: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/4.jpg)
What is This Talk About?
![Page 5: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/5.jpg)
#OpenDXAn Open Standard for Measuring PAIN
Universal definition of “Better”
(Specification for Data Collection)
Developer Experience
![Page 6: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/6.jpg)
#GradleDX is a Pilot Project
#OpenDX
within
#GradleDX
![Page 7: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/7.jpg)
Feedback LoopCommunity Pain Sensor
Tools
Pilot: Supplier Partnership
#GradleDX Community Project
Plugin
Plugin
Plugin
Plugin
![Page 8: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/8.jpg)
Why does partnership matter in a software supply-chain?
![Page 9: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/9.jpg)
My Codeis AWESOME!
100% Code Coverage
Low Cyclomatic Complexity
Usability Problems
This is PAINFUL!
Depend On API
WTF?!
WTF?!
WTF?!
WTF?!
WTF?! WTF?!
![Page 10: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/10.jpg)
My Codeis AWESOME!
100% Code Coverage
Low Cyclomatic Complexity
This is PAINFUL!
Depend On API
WTF?!
WTF?!
WTF?!
WTF?!
WTF?! WTF?!
We can both be looking at the exact same code, and have a totally different experience.
![Page 11: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/11.jpg)
100% Code Coverage
Low Cyclomatic Complexity
Usability Problems
Depend On API
WTF?!
WTF?!
WTF?!
WTF?!
WTF?! WTF?!
Here’s what caused me PAIN
Painful Experience
Oh…I can fix that!
![Page 12: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/12.jpg)
100% Code Coverage
Low Cyclomatic Complexity
Depends On API
WTF?!
WTF?!
WTF?!
WTF?!
WTF?! WTF?!
Oh…I can fix that!
![Page 13: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/13.jpg)
100% Code Coverage
Low Cyclomatic Complexity
Depend On API
Oh…I can fix that!
No More Pain
Thisis AWESOME!
![Page 14: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/14.jpg)
100% Code Coverage
Low Cyclomatic Complexity
Depend On API
Yay! It’s AWESOME!
No More Pain
This is AWESOME!
Visibility Facilitates the Conversation
![Page 15: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/15.jpg)
Application
3rd Party Dependencies
Local Components
Usability Problems
90% of our Software is HERE
![Page 16: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/16.jpg)
Application
3rd Party Dependencies
Local Components
Usability Problems
90% of our Software is HERE
This is PAINFUL!
![Page 17: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/17.jpg)
Bad Software has become the new Environment Pollution
Cost &
Risk
Human Limitations
We are HERE:
Difficulty of Work
What’s Causing our Pain? Cumulative Usability Problems in the Software Supply Chain
![Page 18: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/18.jpg)
Alert!
Alert!
Our Application
PRESSURE for better quality parts PAIN
What if we started measuring PAIN across the software supply chain?
This is PAINFUL!
![Page 19: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/19.jpg)
Everything is AWESOME!
Our Application
PRESSURE for better quality parts
What if we started measuring PAIN across the software supply chain?
![Page 20: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/20.jpg)
Feedback LoopCommunity Pain Sensor
Tools
#GradleDX: Pilot for Supply-Chain Feedback Loop
Plugin
Plugin
Plugin
Plugin
Pilot: Supplier Partnership
![Page 21: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/21.jpg)
Why Should YOU Care?
source: Domics - “What’s a Shrug?”
![Page 22: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/22.jpg)
Every few years we rewrite our software…
Start%Over%
Unmaintainable%So0ware%
Across the Industry
![Page 23: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/23.jpg)
We Start with the Best of Intentions
High Quality Code
Low Technical Debt
Automated Deployment
Good Code Coverage
![Page 24: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/24.jpg)
Then This Happens!
![Page 25: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/25.jpg)
PAIN
The Classic Story of Project Failure
Problems get deferred
Builds start breaking
Releases get chaotic
Productivity slows to a crawl
Developers begging for time
It’s never enough
Project Meltdown
![Page 26: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/26.jpg)
Our Solution…
![Page 27: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/27.jpg)
Until we can’t take it anymore.
![Page 28: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/28.jpg)
On to greener pastures…
![Page 29: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/29.jpg)
Has anyone struggled with the challenge of business pressure?
Has anyone ever tried to fix this problem within their organization?
Has anyone ever succeeded?
![Page 30: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/30.jpg)
This is the biggest cause of FAILURE in our industry:
![Page 31: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/31.jpg)
Because PAIN Doesn’t Show Up
on a Balance Sheet
If we don’t MEASURE it,
Why?
they don’t SEE it.
![Page 32: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/32.jpg)
“Better”“Better”
What if you could get managers and developers all pulling the same direction in your company?
ManagersDevelopers
![Page 33: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/33.jpg)
“Better”“Better”
What if we could solve this problem in ALL of our companies?
ManagersDevelopers
![Page 34: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/34.jpg)
Two Options:
Option 1
Stay the Course
Here’s the Catch:
In order for this to work, we have to start working together as a community.
Option 2
Build Happiness
or
Let’s Do This
![Page 35: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/35.jpg)
LEARN YOUR WAY TO AWESOME.
Free to Join Industry Peer Mentorship Network
1. Make the PAIN visible
2. Breakdown the causes into patterns
3. Help each other to learn & improve
![Page 36: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/36.jpg)
We are working together to INVENT solutions for:
Community Analytics Platform
Process Control, Supply-Chain Optimization &
Throughput Accounting for
Software Organizations
![Page 37: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/37.jpg)
#OpenDXAn Open Standard for Measuring PAIN
Based on:
![Page 38: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/38.jpg)
The Goal Eliyahu M. Goldratt
“Throughput Accounting”
System Productivity =Rate of Revenue
Rate of Investment
Theory of Constraints Optimizing Flow in a Supply Chain System
![Page 39: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/39.jpg)
“Throughput Accounting”
System Productivity =Rate of Revenue
Rate of Investment
Throughput Accounting measures how efficiently we turn effort into money.
Our PAIN Matters
![Page 40: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/40.jpg)
How Do We Measure PAIN?
![Page 41: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/41.jpg)
Great Team Disciplined with Best Practices Constantly Working on Improvements+
Project FAILURE
About 8 Years Ago…
![Page 42: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/42.jpg)
ApplicationTests
Our Test Suite
![Page 43: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/43.jpg)
ApplicationTests
Our Test Suite
“What are we supposed to do?!”
![Page 44: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/44.jpg)
The Retrospective
“What are we supposed to do?!”
Our biggest problem
“Well, if we don’t understand a problem, we should
collect data.”
![Page 45: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/45.jpg)
The Retrospective
Our biggest problem
“What data would help us understand the problem?”
“What are we supposed to do?!”
![Page 46: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/46.jpg)
Technical Debt Mistakes
I thought the main obstacle was Technical Debt
![Page 47: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/47.jpg)
?Most of our mistakes were in the
most well-written parts of the code.
Mistakes
![Page 48: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/48.jpg)
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...
![Page 49: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/49.jpg)
Complex(So*ware(
PAIN
This is what I knew...
What made development feel painful?
![Page 50: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/50.jpg)
Unexpected Behavior
Problem Resolved
Tracking Painful Interaction with the Code (Friction)
Troubleshooting
Progress
5 hours and 18 minutes of troubleshooting...
PAINFUL
![Page 51: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/51.jpg)
The amount of PAIN was caused by…
Likeliness(of((Unexpected(Behavior(
Cost(to(Troubleshoot(and(Repair(
High(Frequency(Low(Impact(
Low(Frequency(Low(Impact(
Low(Frequency(High(Impact(
PAIN(
![Page 52: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/52.jpg)
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?
![Page 53: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/53.jpg)
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
![Page 54: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/54.jpg)
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.
![Page 55: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/55.jpg)
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
![Page 56: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/56.jpg)
PAIN occurs during the process of understanding and extending the software
Complex(So*ware(
PAIN
Not the Code.
Optimize “Idea Flow”
![Page 57: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/57.jpg)
We deleted everything…
The automation wasn’t solving the problem!
![Page 58: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/58.jpg)
What are the specific risks in this release?
How can we mitigate the risks?
Handful of manual tests
Custom Tools
+
![Page 59: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/59.jpg)
Time-Bound Releases
RISK-Bound Releases
![Page 60: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/60.jpg)
Release Size
(weeks)
Time
Defect Rates
RISK-Bound Releases
Continuous Delivery is about learning how to effectively manage risk
![Page 61: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/61.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 62: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/62.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 63: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/63.jpg)
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?”
![Page 64: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/64.jpg)
Complex(So*ware(
PAIN
Measure Friction in “Idea Flow”
OpenDX measures the “friction” that occurs during a developer’s experience
![Page 65: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/65.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 66: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/66.jpg)
Conflict Confirm
Rework'
Learn'
Validate(
Modify'
Progress Loop Conflict Loop
Troubleshoot'
Write a little code. Work out the kinks.
The Rhythm of “Idea Flow”
![Page 67: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/67.jpg)
On Intelligence Jeff Hawkins
![Page 68: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/68.jpg)
Confirmed Expectations
Our brain works like a giant prediction engine…
![Page 69: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/69.jpg)
Violated Expectations
Our brain works like a giant prediction engine…
![Page 70: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/70.jpg)
Conflict Confirm
Rework'
Learn'
Validate(
Modify'
Progress Loop Conflict Loop
Troubleshoot'
The Rhythm of “Idea Flow”
![Page 71: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/71.jpg)
“Friction” in Idea Flow
Conflict Confirm
Rework'
Learn'
Validate(
Modify'
Progress Loop Conflict Loop
Troubleshoot'
![Page 72: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/72.jpg)
“Idea Flow Map”
“Friction”
![Page 73: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/73.jpg)
Idea Flow Mapping Tools
(Open Source, Supported GA ~July 2016)github.com/ideaflow/tools
![Page 74: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/74.jpg)
Typical Idea Flow Maps
Single Problem
Multi-Problem
![Page 75: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/75.jpg)
We can read Visual Indicators in Idea Flow Maps
Le#$Atrium$
Le#$Ventricle$
Right$Ventricle$
Right$Atrium$
What’s$causing$this$pa7ern?$
Similar to how an EKG helps doctors diagnose heart problems...
![Page 76: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/76.jpg)
...Idea Flow Maps help developers diagnose software problems.
Problem-Solving Machine
We can read Visual Indicators in Idea Flow Maps
![Page 77: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/77.jpg)
= Solution Strategy
The “Heart” of Software Development(the problem-solving machine)
Based on: Grandon Gill and Richard Hicks models of Task Complexity and John Boyd’s OODA Loop
![Page 78: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/78.jpg)
= Solution Strategy
The “Heart” of Software Development(the problem-solving machine)
Choose a general strategy
![Page 79: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/79.jpg)
= Solution Strategy
The “Heart” of Software Development(the problem-solving machine)
Understand the system
![Page 80: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/80.jpg)
= Solution Strategy
The “Heart” of Software Development(the problem-solving machine)
Code & work out the kinks
![Page 81: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/81.jpg)
= Solution Strategy
The “Heart” of Software Development(the problem-solving machine)
Back to the drawing board
![Page 82: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/82.jpg)
The symptoms we experience depend on where the disruptions are in the problem-solving process
![Page 83: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/83.jpg)
Trial and Error
The Friction is Here
Troubleshooting
Progress
Learning
Rework
![Page 84: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/84.jpg)
Assumption Risk (Rework)
Likelihood)of))making)a))
Bad)Assump4on)
Cost)to)Correct)Decisions)
High)Uncertainty)Low)Delay)
Low)Uncertainty)Low)Delay)
Low)Uncertainty)High)Delay)
PAIN)
![Page 85: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/85.jpg)
Struggling with Understanding the Code
The Friction is Here
Troubleshooting
Progress
Learning
Rework
![Page 86: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/86.jpg)
Familiarity Risk (Learning)
Likelihood)of))working)with)Unfamiliar)
Code)
Cost)to)Learn)
High)Frequency)Easy)to)Learn)
Low)Frequency)Easy)to)Learn)
Low)Frequency)Hard)to)Learn)
PAIN)
![Page 87: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/87.jpg)
Struggling with Feedback
The Friction is Here
Troubleshooting
Progress
Learning
Rework
![Page 88: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/88.jpg)
Quality Risk (Troubleshooting)
Likelihood)of))Unexpected)Behavior)
Cost)to)Troubleshoot)and)Repair)
High)Frequency)Low)Impact)
Low)Frequency)Low)Impact)
Low)Frequency)High)Impact)
PAIN)
![Page 89: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/89.jpg)
”Friction” is the time spent on:
x
Troubleshooting
x
Learning
x
Rework
Quality Risk Familiarity Risk Assumption Risk
![Page 90: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/90.jpg)
“What caused the pain in this case?”
Categorize the Problems with #HashTags
#ReportingEngine
#Hibernate
#MergeHell
![Page 91: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/91.jpg)
1. Problem A
2. Problem B
3. Problem C
1000 hours/month
Add up the Pain by Category
What’s the biggest problem to solve?
![Page 92: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/92.jpg)
Case studies.
![Page 93: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/93.jpg)
Troubleshooting
Progress
Learning
7:070:00
0:00 19:52
12 year old project after all original developers left.
Case Study: Huge Mess with Great Team
70-90% of dev capacity on “friction”
![Page 94: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/94.jpg)
The Team’s Improvement Focus: Increasing unit test coverage by 5%
Case Study: Huge Mess with Great Team
1. Test Data Generation
2. Merging Problems
3. Repairing Tests
1000 hours/month
The Biggest Problem: ~700 hours/month generating test data
![Page 95: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/95.jpg)
18 months after a Micro-Services/Continuous Delivery rewrite.
Troubleshooting
Progress
Learning40-60% of dev capacity on “friction”
0:00 28:15
12:230:00
Case Study: From Monolith to Microservices
![Page 96: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/96.jpg)
The Architecture Looked Good on Paper
Team A Team B Team C
Complexity Moved Here
![Page 97: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/97.jpg)
We Don’t Have TIME To Fix It!
![Page 98: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/98.jpg)
The Cost of Escalating Risk
0%
100%
Release 1 Release 2 Release 3
Troubleshooting
Progress
Learning
Percentage Capacity spent on Troubleshooting (red) and Learning (blue)
(extrapolated from samples)
![Page 99: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/99.jpg)
0%
100%
Release 1 Release 2 Release 3
Percentage Capacity spent on Troubleshooting (red) and Learning (blue)
Figure out what to do Learning is front-loaded
Troubleshooting
Progress
Learning
The Cost of Escalating Risk
![Page 100: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/100.jpg)
0%
100%
Release 1 Release 2 Release 3
Percentage Capacity spent on Troubleshooting (red) and Learning (blue)
Rush Before the Deadline Validation is Deferred
Troubleshooting
Progress
Learning
The Cost of Escalating Risk
![Page 101: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/101.jpg)
0%
100%
Release 1 Release 2 Release 3
Percentage Capacity spent on Troubleshooting (red) and Learning (blue)
Pain Builds Baseline friction keeps rising
Troubleshooting
Progress
Learning
The Cost of Escalating Risk
![Page 102: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/102.jpg)
0%
100%
Release 1 Release 2 Release 3
Percentage Capacity spent on Troubleshooting (red) and Learning (blue)
Chaos Reigns Unpredictable work stops
fitting in the timebox
Troubleshooting
Progress
Learning
The Cost of Escalating Risk
![Page 103: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/103.jpg)
Over 1000 Hours/Month in Downtime!
They tried to solve their design problems with more test automation.
25 developers down for 2 days
(It didn’t work)
![Page 104: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/104.jpg)
Lots of Friction in BRAND NEW code:
27:15
“WHY?”
![Page 105: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/105.jpg)
Application
3rd Party Dependencies
Local Components
Usability Problems
90% of our Software is HERE
This is PAINFUL!
![Page 106: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/106.jpg)
“The Idea Flow Factory” (supply chain model)
Optimize the Rate of Idea Flow
Across ANY Software Supply Chain
![Page 107: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/107.jpg)
Build Test Deploy
Typical manufacturing metaphor mapping:
Customer
The Problem: Focus on short-term effects
![Page 108: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/108.jpg)
Software Supply Chain as the Factory Floor
Customer
![Page 109: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/109.jpg)
Software Supply Chain as the Factory Floor
Customer
Dev = Operator “flows” the components
![Page 110: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/110.jpg)
Architecture Changes Create Bottlenecks
![Page 111: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/111.jpg)
Customer
Lack of Familiarity Creates Bottlenecks
WTF?!
![Page 112: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/112.jpg)
Customer: Big Kahuna
Customers: Seg 2 Seg 3
Customers: Seg 2 Seg 4 Seg 5
Connect Maintenance Effort to Revenue through Software Dependencies
![Page 113: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/113.jpg)
“Big Kahuna”
Effort
Revenue
“Throughput Accounting” Metrics
Cost of Support vs Revenue per Customer Segment (%)
![Page 114: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/114.jpg)
Effort
Revenue
“Throughput Accounting” Metrics
Cost of Support vs Revenue per Customer Segment (%)
![Page 115: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/115.jpg)
Breakdown of Development Capacity
If you were an investor: wouldn’t YOU want to reduce friction?
“Throughput Accounting” Metrics
![Page 116: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/116.jpg)
With #OpenDX, we can apply the entire suite of Risk Management Tools from Lean Manufacturing
Statistical Process Control (SPC)
Optimal Friction
Upper Control Limit X"
“Out of Control”
20min
0m
Average Pain per Incident
Target
Control Limit
Supply Chain Optimization
Throughput Accounting
![Page 117: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/117.jpg)
We have the power to solve this problem:
If we choose to do it.
![Page 118: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/118.jpg)
Application
3rd Party Dependencies
Local Components
Usability Problems
This is PAINFUL!
We have the power to solve this problem:
![Page 119: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/119.jpg)
Two Options:
Option 1
Stay the Course
Option 2
Build Happiness
or
Let’s Do This
Miko Matsumura: “Build Happiness” is a philosophy that happiness must be built.
![Page 120: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/120.jpg)
Miko: “That’s not a happy elephant!”
![Page 121: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/121.jpg)
Miko: “That’s not a happy elephant!”
![Page 122: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/122.jpg)
Focus on the PAIN & Build Happiness
![Page 124: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/124.jpg)
Janelle Kleinopenmastery.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
![Page 125: Why #OpenDX?](https://reader031.vdocuments.us/reader031/viewer/2022022205/58d1752a1a28abed798b5653/html5/thumbnails/125.jpg)
Learn more at www.gradle.org