SlideShare a Scribd company logo
Janelle Klein
openmastery.org @janellekz
Improvement Efforts
FAIL
Top 5 Reasons Why
, 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
Founder of
newiron.com
What is this talk about?
Mistakes
We were trying to do
all the “right” things.
About 8 Years Ago…
We were building a
factory automation system...
We shipped to production...
We shipped to production... (again)
We couldn’t reproduce the problem.
We shipped to production... (AGAIN)
The rollback failed!
Project FAILURE
The Situation
10 year old software project, 1.5M LOC, 24/7 uptime,
programmable statistical processing engine
Brought down production three releases in a row
12 developers on the team,
disciplined with best practices,
constantly working on improvements
The Retrospective
“What are we going to do?!”
Our biggest problem
“Well, we know we’ve got
a quality problem right?”
The Retrospective
“What are we going to do?!”
Our biggest problem
“The problem is we don’t have
enough test automation!”
So the Test Automation Began…
Our regression testing
took 3-4 weeks…
Let’s automate the tests!
20%
Percent Automated:
So the Test Automation Began…
50%
Maintenance
started getting PAINFUL…
Let’s refactor the tests!
Percent Automated:
So the Test Automation Began…
80%
It was still really PAINFUL…
“Well, at least our regression
cycle is faster, right?”
Our regression cycle still took 3-4 weeks!
Percent Automated:
So the Test Automation Began…
ApplicationTests
We noticed a Pattern in Our Test Suite
ApplicationTests
We noticed a Pattern in Our Test Suite
Most of the bugs were found
during exploratory testing.
The First Mistake
Our biggest problem
“Well, we know we’ve got
a quality problem right?”
“The problem is we don’t have
enough test automation!”
What’s the mistake we made?
What does “better” really mean?
What qualifies as an “improvement”?
“Better”
following best practices
(solution-focused)
Start with the Solution
(problem-focused)
“Better”
solving the problems
Start with the Problem
What does “better” really mean?
The Retrospective
Our biggest problem
“The problem is we don’t have
enough test automation!”
Solution-Focused “Problems”
“What problem am I trying to solve?”
Mistake #1:
Starting with the Solution
ApplicationTests
Most of the bugs were found
during exploratory testing.
Our Test Suite
The Retrospective
“What are we supposed to do?!”
Our biggest problem
“The problem is all the
technical debt is causing
us to make mistakes.”
The Retrospective
“What are we supposed to do?!”
Our biggest problem
“Let’s brainstorm a list
of all the problems!”
Brainstorm a List
Filled up Tech-Debt Backlog
The Retrospective
“What are we supposed to do?!”
Our biggest problem
“Well, if we don’t understand
a problem, we should
collect data.”
The Retrospective
Our biggest problem
“What data would help us
understand the problem?”
“What are we supposed to do?!”
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...
Complex(
So*ware(
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
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(
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
Complex(
So*ware(
PAIN
Not the Code.
Optimize “Idea Flow”
ApplicationTests
Most of the bugs were found
during exploratory testing.
Our Test Suite
ApplicationTests
The bugs weren’t in the code,
the bugs were in our Conceptual Models
Our Test Suite
The Fix:
We built a Data Dictionary
The bugs weren’t in the code,
the bugs were in our Conceptual Models
The “Coat of Armor” Principle
Software
Coat of Armor
More tests result in better bug protection
It’s not that simple!
“Alarm Pain”
Six hours of troubleshooting and repairing tests
when nothing is broken.
“Green Washing” — Kerry Kimbrough
“Green Washing” — Kerry Kimbrough
If we don’t understand the system,
we fix the tests incorrectly.
The “Waxy Coating” Principle
Optimize the signal to noise ratio.
Software
(before)
Software
(after)
Tests are like a waxy coating poured over the code.
Cost & Risk are a Function of Increased Difficulty
Cost
&
Risk
Difficulty of Work
The Difficulty of Doing Our Jobs
Human
Limitations
Likelihood)of))
Unexpected)
Behavior)
Cost)to)Troubleshoot)and)Repair)
High)Frequency)
Low)Impact)
Low)Frequency)
Low)Impact)
Low)Frequency)
High)Impact)
PAIN)
“Better” = Reduce the Risk
Reduce Likeliness
=
Mistake Proofing
Reduce Recovery Cost = Mistake Tolerance
The Second Mistake
Our biggest problem
“The problem is all the
technical debt that’s causing
us to make mistakes.”
What’s the mistake we made?
Complex(
So*ware(
PAIN
Mistake #2:
Assuming the problems are inside the code.
What pain are we experiencing when we
interact with the code?
Our biggest problem
“Let’s brainstorm a list of all
the problems!”
The Third Mistake
What’s the mistake we made?
“What’s the best opportunity for improvement?
“The awful email
template engine code!”
Our biggest problem
The Retrospective
“Fill in missing
unit tests!”
Our biggest problem
The Retrospective
“What’s the best opportunity for improvement?
“We should clean up
the database code!”
Our biggest problem
The Retrospective
“What’s the best opportunity for improvement?
“Let’s improve maintainability
of our test framework!”
Our biggest problem
The Retrospective
“What’s the best opportunity for improvement?
Just because a problem comes to mind,
doesn’t mean it’s an important problem to solve.
Our biggest problem
The Retrospective
“What’s the best opportunity for improvement?
Our biggest problem
What do I feel the
most intensely about?
Daniel Kahneman
Thinking Fast and Slow
The Retrospective
“What’s the best opportunity for improvement?
“The awful email
template engine code!”
Recency Bias
Our biggest problem
The Retrospective
“What’s the best opportunity for improvement?
Guilt Bias
“Fill in missing
unit tests!”
Our biggest problem
The Retrospective
“What’s the best opportunity for improvement?
Known Solution Bias
Our biggest problem
The Retrospective
“What’s the best opportunity for improvement?
“We should clean up
the database code!”
Sunk Cost Bias
“Let’s improve maintainability
of our test framework!”
Our biggest problem
The Retrospective
“What’s the best opportunity for improvement?
Mistake #3:
Assuming the biggest problems will come to mind.
How do I know the right problems are on the list?
What do I feel the
most intensely about?
Daniel Kahneman
Thinking Fast and Slow
The Deadline Effect
Rushing before the deadline increases risk.
The Retrospective
“What are we supposed to do?!”
Our biggest problem
“We should stop rushing
before the deadline.”
“Yes. Fixed deadline.
Variable scope.”
Urgency Leads to High-Risk Decisions
7:01
Iterative Validation with Unit Tests
7:010:00
14:230:00
Skipping Tests and Validating at the End
We gamble to save time:
If I make no mistakes I save ~2 hours.
If I make several mistakes I lose ~8 hours.
Time%
Pressure%
Compromise%
Safety%
for%
Speed%
Increase%
Number%&%
Severity%of%
Hazards%
%
More%Pain%
and%Higher%
Task%Effort%
Constant'
Urgency'
Cycle of Chaos
High-Risk Decision Habits
Problems
Time%
Pressure%
Compromise%
Safety%
for%
Speed%
Increase%
Number%&%
Severity%of%
Hazards%
%
More%Pain%
and%Higher%
Task%Effort%
Constant'
Urgency'
Cycle of Chaos
High-Risk Decision Habits
Problems
Time%
Pressure%
Compromise%
Safety%
for%
Speed%
Increase%
Number%&%
Severity%of%
Hazards%
%
More%Pain%
and%Higher%
Task%Effort%
Constant'
Urgency'
Cycle of Chaos
High-Risk Decision Habits
Problems
Time%
Pressure%
Compromise%
Safety%
for%
Speed%
Increase%
Number%&%
Severity%of%
Hazards%
%
More%Pain%
and%Higher%
Task%Effort%
Constant'
Urgency'
Cycle of Chaos
High-Risk Decision Habits
Problems
Time%
Pressure%
Compromise%
Safety%
for%
Speed%
Increase%
Number%&%
Severity%of%
Hazards%
%
More%Pain%
and%Higher%
Task%Effort%
Constant'
Urgency'
Cycle of Chaos
High-Risk Decision Habits
Problems
Likelihood)of))
Unexpected)
Behavior)
Cost)to)Troubleshoot)and)Repair)
High)Frequency)
Low)Impact)
Low)Frequency)
Low)Impact)
Low)Frequency)
High)Impact)
PAIN)
PAIN = Frequent Severe Explosions
Fewer%
Problems%to%
Fix%
Stop%%
and%
Think%
Mi8gate%
the%
Risk%
Increased%
Produc8vity%
and%
Innova8on%
Safety'
Cycle of Safety
Low-Risk Decision Habits
Fewer%
Problems%to%
Fix%
Stop%%
and%
Think%
Mi8gate%
the%
Risk%
Increased%
Produc8vity%
and%
Innova8on%
Safety'
Cycle of Safety
Low-Risk Decision Habits
Fewer%
Problems%to%
Fix%
Stop%%
and%
Think%
Mi8gate%
the%
Risk%
Increased%
Produc8vity%
and%
Innova8on%
Safety'
Cycle of Safety
Low-Risk Decision Habits
Fewer%
Problems%to%
Fix%
Stop%%
and%
Think%
Mi8gate%
the%
Risk%
Increased%
Produc8vity%
and%
Innova8on%
Safety'
Cycle of Safety
Low-Risk Decision Habits
Fewer%
Problems%to%
Fix%
Stop%%
and%
Think%
Mi8gate%
the%
Risk%
Increased%
Produc8vity%
and%
Innova8on%
Safety'
Cycle of Safety
Low-Risk Decision Habits
Product(
Requirements( So1ware(Task(
Possible(Decision(Paths(
So1ware(
Software is a Reflection of our Decisions
Product(
Requirements( So1ware(Task(
High%Risk%
Decision%Habits%
So1ware(
(and(all(our(problems)(
(
RESET
Software is a Reflection of our Decisions
Product(
Requirements( So1ware(Task(
High%Risk%
Decision%Habits%
So1ware(
(and(all(our(problems)(
(
Technical Debt is just a Symptom of the Problem
Software is a Reflection of our Decisions
The Deadline Effect
Rushing before the deadline increases risk.
Time-Bound Releases
RISK-Bound Releases
We deleted
our automated test suite…
The automation wasn’t
solving the problems!
What are the specific risks in this release?
How can we mitigate the risks?
Handful of
manual tests
Custom
Tools
+
Release
Size
(weeks)
Time
Defect Rates
RISK-Bound Releases
Continuous Delivery
is about learning how to
effectively manage risk
We built TONS of automation.
The only real difference:
We didn’t design a single solution
without a specific problem in mind.
Our biggest problem
“We should stop rushing
before the deadline.”
“Yes. Fixed deadline.
Variable scope.”
The Forth Mistake
What’s the mistake we made?
Mistake #4:
Over-simplification and hand-waving.
How are you adapting your decision habits?
Time%
Pressure%
Compromise%
Safety%
for%
Speed%
Increase%
Number%&%
Severity%of%
Hazards%
%
More%Pain%
and%Higher%
Task%Effort%
Constant'
Urgency'
Fewer%
Problems%to%
Fix%
Stop%%
and%
Think%
Mi8gate%
the%
Risk%
Increased%
Produc8vity%
and%
Innova8on%
Safety'
Then I got into consulting…
The Software Rewrite Cycle
Start%
Over%
Unmaintainable%
So0ware%
We Start with the Best of Intentions
High Quality Code
Low Technical Debt
Easy to Maintain
Good Code Coverage
Then This Happens!
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
Our “Solution”
“We should just
quit our jobs.” “Yeah, it’s hopeless.”
What are we supposed to do?
What if we could measure our PAIN?
1. Test Data Generation
2. Merging Problems
3. Repairing Tests
1000 hours/month
The Biggest Problem:
~700 hours/month generating test data
“Better”
“Better”
What if we could get managers and developers
all pulling the same direction?
Managers
Developers
The Biggest Cause of FAILURE in our Industry:
Next Talk: Stop Getting Crushed By Business Pressure
Mistake #5:
Feeling helpless instead of taking responsibility.
Leadership is not a title, it’s a choice.
Summary
The First Mistake
Our biggest problem
“Well, we know we’ve got
a quality problem right?”
“The problem is we don’t have
enough test automation!”
What’s the mistake we made?
“What problem am I trying to solve?”
Mistake #1:
Starting with the Solution
The Second Mistake
Our biggest problem
“The problem is all the
technical debt that’s causing
us to make mistakes.”
What’s the mistake we made?
Complex(
So*ware(
PAIN
Mistake #2:
Assuming the problems are inside the code.
What pain are we experiencing when we
interact with the code?
Our biggest problem
“Let’s brainstorm a list of all
the problems!”
The Third Mistake
What’s the mistake we made?
Mistake #3:
Assuming the biggest problems will come to mind.
How do I know the right problems are on the list?
What do I feel the
most intensely about?
Daniel Kahneman
Thinking Fast and Slow
Our biggest problem
“We should stop rushing
before the deadline.”
“Yes. Fixed deadline.
Variable scope.”
The Forth Mistake
What’s the mistake we made?
Mistake #4:
Over-simplification and hand-waving.
Time%
Pressure%
Compromise%
Safety%
for%
Speed%
Increase%
Number%&%
Severity%of%
Hazards%
%
More%Pain%
and%Higher%
Task%Effort%
Constant'
Urgency'
Fewer%
Problems%to%
Fix%
Stop%%
and%
Think%
Mi8gate%
the%
Risk%
Increased%
Produc8vity%
and%
Innova8on%
Safety'
How are you adapting your decision habits?
The Fifth Mistake
“We should just
quit our jobs.” “Yeah, it’s hopeless.”
What are we supposed to do?
Mistake #5:
Feeling helpless instead of taking responsibility.
Leadership is not a title, it’s a choice.
So what should we do instead?
Input:
Decision Constraints
Target: Optimize the Rate of Idea Flow
short-term looplong-term
loop
1.
Visibility
2.
Clarity
3.
Awareness
F ocus!
Output: “Friction” in Idea Flow
Improve Quality of Decisions
Data-Driven Software Mastery
Input:
Decision Constraints
Target: Optimize the Rate of Idea Flow
short-term looplong-term
loop
1.
Visibility
2.
Clarity
3.
Awareness
F ocus!
Output: “Friction” in Idea Flow
Target - The direction of “better”
Target: Optimize the Rate of Idea Flow
Data-Driven Software Mastery
Input:
Decision Constraints
Target: Optimize the Rate of Idea Flow
short-term looplong-term
loop
1.
Visibility
2.
Clarity
3.
Awareness
F ocus!
Output: “Friction” in Idea Flow
Input - The constraints that limit our short-term choices…
Data-Driven Software Mastery
Input:
Decision Constraints
Target: Optimize the Rate of Idea Flow
short-term looplong-term
loop
1.
Visibility
2.
Clarity
3.
Awareness
F ocus!
Output: “Friction” in Idea Flow
Output - The pain signal we’re trying to improve
Data-Driven Software Mastery
Input:
Decision Constraints
Target: Optimize the Rate of Idea Flow
short-term looplong-term
loop
1.
Visibility
2.
Clarity
3.
Awareness
F ocus!
Output: “Friction” in Idea Flow
Focus on the biggest pain…
F ocus!
Data-Driven Software Mastery
Input:
Decision Constraints
Target: Optimize the Rate of Idea Flow
short-term looplong-term
loop
1.
Visibility
2.
Clarity
3.
Awareness
F ocus!
Output: “Friction” in Idea Flow
1. Visibility - Identify the specific patterns
1.
Visibility
Data-Driven Software Mastery
Input:
Decision Constraints
Target: Optimize the Rate of Idea Flow
short-term looplong-term
loop
1.
Visibility
2.
Clarity
3.
Awareness
F ocus!
Output: “Friction” in Idea Flow
2. Clarity - Understand cause and effect
2.
Clarity
Data-Driven Software Mastery
Input:
Decision Constraints
Target: Optimize the Rate of Idea Flow
short-term looplong-term
loop
1.
Visibility
2.
Clarity
3.
Awareness
F ocus!
Output: “Friction” in Idea Flow
3.
Awareness
3. Awareness - Stop and think to adjust habits
Data-Driven Software Mastery
Input:
Decision Constraints
Target: Optimize the Rate of Idea Flow
short-term looplong-term
loop
1.
Visibility
2.
Clarity
3.
Awareness
F ocus!
Output: “Friction” in Idea Flow
4. Run Experiments to Learn What Works
Data-Driven Software Mastery
If any part of the feedback loop is broken:
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?”
Retrospective: “Mastery Circle”
Circle Leader
Circle Member
Focus: What’s the problem to solve?
Observe: Ask questions about the facts
Conclude: Breakdown causes into patterns
Optimize: Discuss strategies for improvement
Learn: Run experiments to learn what works
Observation
Questions
Make a F.O.C.O.L. Point!
What’s Next?
Emergent Practice
Everything I’m showing today:
Stop Getting Crushed By Business Pressure
Next Talk:
Talk #3:
Let’s Make the PAIN Visible!
#OpenDX
An Open Standard for Measuring PAIN
(Specification for Data Collection)
Developer
Experience
Talk #4:
Learn Your Way to AWESOME.
Input:
Decision Constraints
Target: Optimize the Rate of Idea Flow
short-term looplong-term
loop
1.
Visibility
2.
Clarity
3.
Awareness
F ocus!
Output: “Friction” in Idea Flow
LEARN YOUR WAY TO AWESOME.
Free to Join Industry Peer Mentorship Network
openmastery.org
Industry Peer Mentorship Network
Companies
Community
Groups
HQ in
Austin
Open Mastery
Austin
meetup.com/Open-Mastery-Austin
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

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
TechWell
 
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
 
Bringing Science to Software Development
Bringing Science to Software DevelopmentBringing Science to Software Development
Bringing Science to Software Development
Arty Starr
 
Technical excellence - practices matter
Technical excellence - practices matterTechnical excellence - practices matter
Technical excellence - practices matter
Leland Newsom CSP-SM, SPC5, SDP
 
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
Bosnia Agile
 
What We Learned from Three Years of Sciencing the Crap Out of DevOps
What We Learned from Three Years of Sciencing the Crap Out of DevOpsWhat We Learned from Three Years of Sciencing the Crap Out of DevOps
What We Learned from Three Years of Sciencing the Crap Out of DevOps
SeniorStoryteller
 
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
Peter Varhol
 
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
gdusbabek
 
The Rationale for Continuous Delivery
The Rationale for Continuous DeliveryThe Rationale for Continuous Delivery
The Rationale for Continuous Delivery
Perforce
 
RecSysOps: Best Practices for Operating a Large-Scale Recommender System
RecSysOps: Best Practices for Operating a Large-Scale Recommender SystemRecSysOps: Best Practices for Operating a Large-Scale Recommender System
RecSysOps: Best Practices for Operating a Large-Scale Recommender System
Ehsan38
 
Dealing with Estimation, Uncertainty, Risk, and Commitment
Dealing with Estimation, Uncertainty, Risk, and CommitmentDealing with Estimation, Uncertainty, Risk, and Commitment
Dealing with Estimation, Uncertainty, Risk, and Commitment
TechWell
 
[HCMC STC Jan 2015] Choosing The Best Of The Plan-Driven And Agile Developmen...
[HCMC STC Jan 2015] Choosing The Best Of The Plan-Driven And Agile Developmen...[HCMC STC Jan 2015] Choosing The Best Of The Plan-Driven And Agile Developmen...
[HCMC STC Jan 2015] Choosing The Best Of The Plan-Driven And Agile Developmen...
Ho Chi Minh City Software Testing Club
 
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
Ian Campbell
 
Agile bodensee - Agile Testing: Bug prevention vs. bug detection
Agile bodensee - Agile Testing: Bug prevention vs. bug detectionAgile bodensee - Agile Testing: Bug prevention vs. bug detection
Agile bodensee - Agile Testing: Bug prevention vs. bug detection
Michael Palotas
 
Tools Won't Fix Your Broken DevOps
Tools Won't Fix Your Broken DevOpsTools Won't Fix Your Broken DevOps
Tools Won't Fix Your Broken DevOps
Nicole Forsgren
 
Good project from scratch - from developer's point of view
Good project from scratch - from developer's point of viewGood project from scratch - from developer's point of view
Good project from scratch - from developer's point of view
Paweł Lewtak
 
SecureWorld: Security is Dead, Rugged DevOps 1f
SecureWorld:  Security is Dead, Rugged DevOps 1fSecureWorld:  Security is Dead, Rugged DevOps 1f
SecureWorld: Security is Dead, Rugged DevOps 1f
Gene Kim
 
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
TechWell
 
Theia H4D Stanford 2018
Theia H4D Stanford 2018Theia H4D Stanford 2018
Theia H4D Stanford 2018
Stanford University
 
Am I a Brilliant Jerk?
Am I a Brilliant Jerk?Am I a Brilliant Jerk?
Am I a Brilliant Jerk?
C4Media
 

What's hot (20)

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
 
Let's Make the PAIN Visible!
Let's Make the PAIN Visible!Let's Make the PAIN Visible!
Let's Make the PAIN Visible!
 
Bringing Science to Software Development
Bringing Science to Software DevelopmentBringing Science to Software Development
Bringing Science to Software Development
 
Technical excellence - practices matter
Technical excellence - practices matterTechnical excellence - practices matter
Technical excellence - practices matter
 
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
 
What We Learned from Three Years of Sciencing the Crap Out of DevOps
What We Learned from Three Years of Sciencing the Crap Out of DevOpsWhat We Learned from Three Years of Sciencing the Crap Out of DevOps
What We Learned from Three Years of Sciencing the Crap Out of DevOps
 
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
 
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
 
The Rationale for Continuous Delivery
The Rationale for Continuous DeliveryThe Rationale for Continuous Delivery
The Rationale for Continuous Delivery
 
RecSysOps: Best Practices for Operating a Large-Scale Recommender System
RecSysOps: Best Practices for Operating a Large-Scale Recommender SystemRecSysOps: Best Practices for Operating a Large-Scale Recommender System
RecSysOps: Best Practices for Operating a Large-Scale Recommender System
 
Dealing with Estimation, Uncertainty, Risk, and Commitment
Dealing with Estimation, Uncertainty, Risk, and CommitmentDealing with Estimation, Uncertainty, Risk, and Commitment
Dealing with Estimation, Uncertainty, Risk, and Commitment
 
[HCMC STC Jan 2015] Choosing The Best Of The Plan-Driven And Agile Developmen...
[HCMC STC Jan 2015] Choosing The Best Of The Plan-Driven And Agile Developmen...[HCMC STC Jan 2015] Choosing The Best Of The Plan-Driven And Agile Developmen...
[HCMC STC Jan 2015] Choosing The Best Of The Plan-Driven And Agile Developmen...
 
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
 
Agile bodensee - Agile Testing: Bug prevention vs. bug detection
Agile bodensee - Agile Testing: Bug prevention vs. bug detectionAgile bodensee - Agile Testing: Bug prevention vs. bug detection
Agile bodensee - Agile Testing: Bug prevention vs. bug detection
 
Tools Won't Fix Your Broken DevOps
Tools Won't Fix Your Broken DevOpsTools Won't Fix Your Broken DevOps
Tools Won't Fix Your Broken DevOps
 
Good project from scratch - from developer's point of view
Good project from scratch - from developer's point of viewGood project from scratch - from developer's point of view
Good project from scratch - from developer's point of view
 
SecureWorld: Security is Dead, Rugged DevOps 1f
SecureWorld:  Security is Dead, Rugged DevOps 1fSecureWorld:  Security is Dead, Rugged DevOps 1f
SecureWorld: Security is Dead, Rugged DevOps 1f
 
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
 
Theia H4D Stanford 2018
Theia H4D Stanford 2018Theia H4D Stanford 2018
Theia H4D Stanford 2018
 
Am I a Brilliant Jerk?
Am I a Brilliant Jerk?Am I a Brilliant Jerk?
Am I a Brilliant Jerk?
 

Viewers also liked

CS5032 Lecture 5: Human Error 1
CS5032 Lecture 5: Human Error 1CS5032 Lecture 5: Human Error 1
CS5032 Lecture 5: Human Error 1
John Rooksby
 
Poka Yoka
Poka Yoka Poka Yoka
Poka Yoka
goutam kumar
 
5S, Kaizen, PokaYoke
5S, Kaizen, PokaYoke5S, Kaizen, PokaYoke
5S, Kaizen, PokaYoke
Prateek Singh Bapna
 
POKA-YOKE - A Lean Strategy to Mistake Proofing
POKA-YOKE - A Lean Strategy to Mistake ProofingPOKA-YOKE - A Lean Strategy to Mistake Proofing
POKA-YOKE - A Lean Strategy to Mistake Proofing
Timothy Wooi
 
10 Mistakes Brands & Causes Make When Creating Content
10 Mistakes Brands & Causes Make When Creating Content10 Mistakes Brands & Causes Make When Creating Content
10 Mistakes Brands & Causes Make When Creating Content
Ben Stroup
 
Poka yoke
Poka yokePoka yoke
Poka yoke
Ashish Gupta
 
Poka yoke (mistake proofing)
Poka yoke (mistake proofing)Poka yoke (mistake proofing)
Poka yoke (mistake proofing)
Animesh Khamesra
 
Poka Yoke Final Ppt
Poka Yoke  Final PptPoka Yoke  Final Ppt
Poka Yoke Final Ppt
JAGJITSINGH25
 
#Microposts16 - Comparing Social Media and Traditional Surveys around the Bos...
#Microposts16 - Comparing Social Media and Traditional Surveys around the Bos...#Microposts16 - Comparing Social Media and Traditional Surveys around the Bos...
#Microposts16 - Comparing Social Media and Traditional Surveys around the Bos...
Cody Buntain
 
BRN Symposium 03/06/06 Conclusions : The Microbiome in respiratory medicine
BRN Symposium 03/06/06 Conclusions : The Microbiome in respiratory medicine BRN Symposium 03/06/06 Conclusions : The Microbiome in respiratory medicine
BRN Symposium 03/06/06 Conclusions : The Microbiome in respiratory medicine
brnmomentum
 
Contaminación ambiental
Contaminación ambientalContaminación ambiental
Contaminación ambiental
climanticacolmadrid
 
SEARCH MASTER
SEARCH MASTERSEARCH MASTER
SEARCH MASTER
Pushpalatha Reddy
 
Medical billing and coding specialist performance appraisal
Medical billing and coding specialist performance appraisalMedical billing and coding specialist performance appraisal
Medical billing and coding specialist performance appraisal
codyfred747
 
Undang-Undang Nomor 22 Tahun 2009
Undang-Undang Nomor 22 Tahun 2009Undang-Undang Nomor 22 Tahun 2009
Undang-Undang Nomor 22 Tahun 2009
Muhammad Sirajuddin
 
RANJIT CV NEW
RANJIT CV NEW RANJIT CV NEW
RANJIT CV NEW
ranjit singh
 
Plumbing Suggestion That Will Save Your Family Some Cash
Plumbing Suggestion That Will Save Your Family Some CashPlumbing Suggestion That Will Save Your Family Some Cash
Plumbing Suggestion That Will Save Your Family Some Cash
invincibleepic880
 
Configuracion ,estilos y opciones
Configuracion ,estilos y opcionesConfiguracion ,estilos y opciones
Configuracion ,estilos y opciones
shendry jaramillo
 
The Top Attractions in Chicago
The Top Attractions in ChicagoThe Top Attractions in Chicago
The Top Attractions in Chicago
49ThingstoDo
 
Top 8 associate manager resume samples
Top 8 associate manager resume samplesTop 8 associate manager resume samples
Top 8 associate manager resume samples
jomwri
 

Viewers also liked (19)

CS5032 Lecture 5: Human Error 1
CS5032 Lecture 5: Human Error 1CS5032 Lecture 5: Human Error 1
CS5032 Lecture 5: Human Error 1
 
Poka Yoka
Poka Yoka Poka Yoka
Poka Yoka
 
5S, Kaizen, PokaYoke
5S, Kaizen, PokaYoke5S, Kaizen, PokaYoke
5S, Kaizen, PokaYoke
 
POKA-YOKE - A Lean Strategy to Mistake Proofing
POKA-YOKE - A Lean Strategy to Mistake ProofingPOKA-YOKE - A Lean Strategy to Mistake Proofing
POKA-YOKE - A Lean Strategy to Mistake Proofing
 
10 Mistakes Brands & Causes Make When Creating Content
10 Mistakes Brands & Causes Make When Creating Content10 Mistakes Brands & Causes Make When Creating Content
10 Mistakes Brands & Causes Make When Creating Content
 
Poka yoke
Poka yokePoka yoke
Poka yoke
 
Poka yoke (mistake proofing)
Poka yoke (mistake proofing)Poka yoke (mistake proofing)
Poka yoke (mistake proofing)
 
Poka Yoke Final Ppt
Poka Yoke  Final PptPoka Yoke  Final Ppt
Poka Yoke Final Ppt
 
#Microposts16 - Comparing Social Media and Traditional Surveys around the Bos...
#Microposts16 - Comparing Social Media and Traditional Surveys around the Bos...#Microposts16 - Comparing Social Media and Traditional Surveys around the Bos...
#Microposts16 - Comparing Social Media and Traditional Surveys around the Bos...
 
BRN Symposium 03/06/06 Conclusions : The Microbiome in respiratory medicine
BRN Symposium 03/06/06 Conclusions : The Microbiome in respiratory medicine BRN Symposium 03/06/06 Conclusions : The Microbiome in respiratory medicine
BRN Symposium 03/06/06 Conclusions : The Microbiome in respiratory medicine
 
Contaminación ambiental
Contaminación ambientalContaminación ambiental
Contaminación ambiental
 
SEARCH MASTER
SEARCH MASTERSEARCH MASTER
SEARCH MASTER
 
Medical billing and coding specialist performance appraisal
Medical billing and coding specialist performance appraisalMedical billing and coding specialist performance appraisal
Medical billing and coding specialist performance appraisal
 
Undang-Undang Nomor 22 Tahun 2009
Undang-Undang Nomor 22 Tahun 2009Undang-Undang Nomor 22 Tahun 2009
Undang-Undang Nomor 22 Tahun 2009
 
RANJIT CV NEW
RANJIT CV NEW RANJIT CV NEW
RANJIT CV NEW
 
Plumbing Suggestion That Will Save Your Family Some Cash
Plumbing Suggestion That Will Save Your Family Some CashPlumbing Suggestion That Will Save Your Family Some Cash
Plumbing Suggestion That Will Save Your Family Some Cash
 
Configuracion ,estilos y opciones
Configuracion ,estilos y opcionesConfiguracion ,estilos y opciones
Configuracion ,estilos y opciones
 
The Top Attractions in Chicago
The Top Attractions in ChicagoThe Top Attractions in Chicago
The Top Attractions in Chicago
 
Top 8 associate manager resume samples
Top 8 associate manager resume samplesTop 8 associate manager resume samples
Top 8 associate manager resume samples
 

Similar to Top 5 Reasons Why Improvement Efforts Fail

The Art of Better
The Art of BetterThe Art of Better
The Art of Better
Arty Starr
 
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
alessio_ferrari
 
Showing How Security Has (And Hasn't) Improved, After Ten Years Of Trying
Showing How Security Has (And Hasn't) Improved, After Ten Years Of TryingShowing How Security Has (And Hasn't) Improved, After Ten Years Of Trying
Showing How Security Has (And Hasn't) Improved, After Ten Years Of Trying
Dan Kaminsky
 
The Portal Builder Story: From Hell to Lean, from Zero to Cloud - part 2
The Portal Builder Story:  From Hell to Lean, from Zero to Cloud - part 2The Portal Builder Story:  From Hell to Lean, from Zero to Cloud - part 2
The Portal Builder Story: From Hell to Lean, from Zero to Cloud - part 2
SOFTENG
 
Software Analytics
Software AnalyticsSoftware Analytics
Software Analytics
Andy Zaidman
 
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
 
Data Scientists Are Analysts Are Also Software Engineers
Data Scientists Are Analysts Are Also Software EngineersData Scientists Are Analysts Are Also Software Engineers
Data Scientists Are Analysts Are Also Software Engineers
Domino Data Lab
 
Software Testing Foundation
Software Testing FoundationSoftware Testing Foundation
Software Testing Foundation
alessandro100
 
Foundations Of Software Testing
Foundations Of Software TestingFoundations Of Software Testing
Foundations Of Software Testing
Tony Ennis
 
Fact or Fiction? What Software Analytics Can Do For Us
Fact or Fiction? What Software Analytics Can Do For UsFact or Fiction? What Software Analytics Can Do For Us
Fact or Fiction? What Software Analytics Can Do For Us
Andy Zaidman
 
Foundations of software testing - ISTQB Certification.pdf
Foundations of software testing - ISTQB Certification.pdfFoundations of software testing - ISTQB Certification.pdf
Foundations of software testing - ISTQB Certification.pdf
Saraj Hameed Sidiqi
 
I Smell A RAT- Rapid Application Testing
I Smell A RAT- Rapid Application TestingI Smell A RAT- Rapid Application Testing
I Smell A RAT- Rapid Application Testing
Peter Presnell
 
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
antoineg
 
Metric Abuse: Frequently Misused Metrics in Oracle
Metric Abuse: Frequently Misused Metrics in OracleMetric Abuse: Frequently Misused Metrics in Oracle
Metric Abuse: Frequently Misused Metrics in Oracle
Steve Karam
 
Selective 97 things every programmer should know
Selective 97 things every programmer should knowSelective 97 things every programmer should know
Selective 97 things every programmer should know
Muhammad Ahsan
 
97 thingseveryprogrammershouldknow
97 thingseveryprogrammershouldknow97 thingseveryprogrammershouldknow
97 thingseveryprogrammershouldknow
REHAN KHAN
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous Deployment
Brian Henerey
 
How to explain DevOps to your mom
How to explain DevOps to your momHow to explain DevOps to your mom
How to explain DevOps to your mom
Andreas Grabner
 
Working Effectively with Legacy Code
Working Effectively with Legacy CodeWorking Effectively with Legacy Code
Working Effectively with Legacy Code
slicklash
 
Cracking The Technical Interview
Cracking The Technical InterviewCracking The Technical Interview
Cracking The Technical Interview
careercup
 

Similar to Top 5 Reasons Why Improvement Efforts Fail (20)

The Art of Better
The Art of BetterThe Art of Better
The Art of Better
 
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
 
Showing How Security Has (And Hasn't) Improved, After Ten Years Of Trying
Showing How Security Has (And Hasn't) Improved, After Ten Years Of TryingShowing How Security Has (And Hasn't) Improved, After Ten Years Of Trying
Showing How Security Has (And Hasn't) Improved, After Ten Years Of Trying
 
The Portal Builder Story: From Hell to Lean, from Zero to Cloud - part 2
The Portal Builder Story:  From Hell to Lean, from Zero to Cloud - part 2The Portal Builder Story:  From Hell to Lean, from Zero to Cloud - part 2
The Portal Builder Story: From Hell to Lean, from Zero to Cloud - part 2
 
Software Analytics
Software AnalyticsSoftware Analytics
Software Analytics
 
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...
 
Data Scientists Are Analysts Are Also Software Engineers
Data Scientists Are Analysts Are Also Software EngineersData Scientists Are Analysts Are Also Software Engineers
Data Scientists Are Analysts Are Also Software Engineers
 
Software Testing Foundation
Software Testing FoundationSoftware Testing Foundation
Software Testing Foundation
 
Foundations Of Software Testing
Foundations Of Software TestingFoundations Of Software Testing
Foundations Of Software Testing
 
Fact or Fiction? What Software Analytics Can Do For Us
Fact or Fiction? What Software Analytics Can Do For UsFact or Fiction? What Software Analytics Can Do For Us
Fact or Fiction? What Software Analytics Can Do For Us
 
Foundations of software testing - ISTQB Certification.pdf
Foundations of software testing - ISTQB Certification.pdfFoundations of software testing - ISTQB Certification.pdf
Foundations of software testing - ISTQB Certification.pdf
 
I Smell A RAT- Rapid Application Testing
I Smell A RAT- Rapid Application TestingI Smell A RAT- Rapid Application Testing
I Smell A RAT- Rapid Application Testing
 
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
 
Metric Abuse: Frequently Misused Metrics in Oracle
Metric Abuse: Frequently Misused Metrics in OracleMetric Abuse: Frequently Misused Metrics in Oracle
Metric Abuse: Frequently Misused Metrics in Oracle
 
Selective 97 things every programmer should know
Selective 97 things every programmer should knowSelective 97 things every programmer should know
Selective 97 things every programmer should know
 
97 thingseveryprogrammershouldknow
97 thingseveryprogrammershouldknow97 thingseveryprogrammershouldknow
97 thingseveryprogrammershouldknow
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous Deployment
 
How to explain DevOps to your mom
How to explain DevOps to your momHow to explain DevOps to your mom
How to explain DevOps to your mom
 
Working Effectively with Legacy Code
Working Effectively with Legacy CodeWorking Effectively with Legacy Code
Working Effectively with Legacy Code
 
Cracking The Technical Interview
Cracking The Technical InterviewCracking The Technical Interview
Cracking The Technical Interview
 

Recently uploaded

Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
safelyiotech
 
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
Migration From CH 1.0 to CH 2.0 and  Mule 4.6 & Java 17 Upgrade.pptxMigration From CH 1.0 to CH 2.0 and  Mule 4.6 & Java 17 Upgrade.pptx
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
ervikas4
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Cost-Effective Strategies For iOS App Development
Cost-Effective Strategies For iOS App DevelopmentCost-Effective Strategies For iOS App Development
Cost-Effective Strategies For iOS App Development
Softradix Technologies
 
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Paul Brebner
 
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
kgyxske
 
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
campbellclarkson
 
Photoshop Tutorial for Beginners (2024 Edition)
Photoshop Tutorial for Beginners (2024 Edition)Photoshop Tutorial for Beginners (2024 Edition)
Photoshop Tutorial for Beginners (2024 Edition)
alowpalsadig
 
42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert
vaishalijagtap12
 
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
The Third Creative Media
 
Ensuring Efficiency and Speed with Practical Solutions for Clinical Operations
Ensuring Efficiency and Speed with Practical Solutions for Clinical OperationsEnsuring Efficiency and Speed with Practical Solutions for Clinical Operations
Ensuring Efficiency and Speed with Practical Solutions for Clinical Operations
OnePlan Solutions
 
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptxOperational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
sandeepmenon62
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
ShulagnaSarkar2
 
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdfThe Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
kalichargn70th171
 
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
kalichargn70th171
 
Streamlining End-to-End Testing Automation
Streamlining End-to-End Testing AutomationStreamlining End-to-End Testing Automation
Streamlining End-to-End Testing Automation
Anand Bagmar
 
Going AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applicationsGoing AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applications
Alina Yurenko
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
Alina Yurenko
 

Recently uploaded (20)

Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
 
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
Migration From CH 1.0 to CH 2.0 and  Mule 4.6 & Java 17 Upgrade.pptxMigration From CH 1.0 to CH 2.0 and  Mule 4.6 & Java 17 Upgrade.pptx
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Cost-Effective Strategies For iOS App Development
Cost-Effective Strategies For iOS App DevelopmentCost-Effective Strategies For iOS App Development
Cost-Effective Strategies For iOS App Development
 
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
 
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
 
bgiolcb
bgiolcbbgiolcb
bgiolcb
 
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
 
Photoshop Tutorial for Beginners (2024 Edition)
Photoshop Tutorial for Beginners (2024 Edition)Photoshop Tutorial for Beginners (2024 Edition)
Photoshop Tutorial for Beginners (2024 Edition)
 
42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert
 
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
 
Ensuring Efficiency and Speed with Practical Solutions for Clinical Operations
Ensuring Efficiency and Speed with Practical Solutions for Clinical OperationsEnsuring Efficiency and Speed with Practical Solutions for Clinical Operations
Ensuring Efficiency and Speed with Practical Solutions for Clinical Operations
 
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptxOperational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
 
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdfThe Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
 
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
 
Streamlining End-to-End Testing Automation
Streamlining End-to-End Testing AutomationStreamlining End-to-End Testing Automation
Streamlining End-to-End Testing Automation
 
Going AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applicationsGoing AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applications
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
 

Top 5 Reasons Why Improvement Efforts Fail

Editor's Notes

  1. The really awesome thing about doing technical assessment and mentorship for a living, is for the last 5 years, I’ve been working on a research project on codifying the art of software development into a teachable craft
  2. [Read]
  3. We were trying to do all the right things. We had CI, unit testing, design reviews, code reviews. All that stuff you’re supposed to do.
  4. We were building this factory automation system that was responsible for detecting manufacturing problems then shutting down the tool responsible. I’d been on the project about 6 months, we were working through the final testing of a major release, tied a bow on it, shipped to production.
  5. Later that night we were on this conference call with IT. And I hear this guy just screaming in the background. Apparently, we had shut down every tool in the factory. So we rolled back the release and tried to figure out what happened. There was a configuration change that didn’t quite make it to production. We all felt terrible, but there wasn’t much we could do at this point. So we fixed the problem, and shipped to production... again.
  6. Back on the conference call with IT. And guess what... the same thing happened. What were we supposed to say… oops? So once again, we rolled back the release.
  7. We couldn’t reproduce the problem. We spent months trying to figure it out, and we were just completely stumped. We tried everything we could think of. Meanwhile, our development team was pretty much idle so management just told them to go ahead with the next release. Everyone was just working like nothing was wrong, but we couldn’t ship anything. We had a whole nother release in the queue before we finally figured it out. Guess what was wrong? We were scared to death to try again, but we didn’t really have a choice. So we cross our fingers, and shipped to production again.
  8. Back on the conference call with IT. We were all watching these real time activity charts and holding our breath. Finally everything seemed to be ok. I was so relieved that things would finally be back to normal again. And then about 3am, my phone rang. It was my team lead calling... he asked me about some code that I’d wrote and I knew exactly what happened. I’d made some improvements to the code that caused a memory leak. And my changes ground the system to a screeching halt. This time, it was my fault. So once again, we rolledback the release. This time the rollback failed.
  9. Fully ramped semiconductor factory. 50k wafer starts a day. Completely offline. My fault. I felt so horrible. I was in my bosses office, just sobbing.
  10. 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.
  11. 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...
  12. [read] And while that made some sense, I couldn’t help but think, there had to be more to the story...
  13. When I had to work with complex code, it was really painful. [read]
  14. 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.
  15. The amount of pain was driven by two factors...
  16. 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.
  17. 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.
  18. 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]
  19. These aren’t really problems with the code itself… [read]
  20. 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.
  21. On our project, we ended up [read] For almost a year! [read]
  22. [read] Then we started asking []
  23. [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]
  24. The pain was caused by problems building up in the code.
  25. A typical improvement effort usually starts with brainstorming a list [slow] We think about the things that bugged us recently, how we’re not following best practices, or the code that just makes us feel shameful. [] -- Then all that goes into our technical debt backlog, and we chip away at improvements for months. But just because a problem comes to mind, doesn’t mean it’s an important problem to solve When we’re brainstorming, [] we can easily miss our biggest problems then [our improvements don’t make...]. [] Don’t do this.
  26. From the outside it looks like we’re trying to drive a car without a steering wheel. We line up the car’s trajectory based on our ideals, then close our eyes and floor the gas pedal.
  27. Really wanted to help.
  28. Really wanted to help.
  29. ©2014 New Iron Group
  30. ©2014 New Iron Group
  31. ©2014 New Iron Group
  32. ©2014 New Iron Group
  33. ©2014 New Iron Group
  34. ©2014 New Iron Group
  35. ©2014 New Iron Group
  36. ©2014 New Iron Group
  37. The other thing I think we really need to question is [read] All of these things are really a means to an end. If you’ve ever spent hours and hours troubleshooting a bug in that one line of magic code, it really makes you wonder [read]. [read] What are we aiming for as an industry? So let me summarize what Idea Flow brings to the table.
  38. Since best practices are solution-focused, we’re always start with the hammer and looking for the nail. Test automation is our favorite hammer. Instead we need to be characterizing all the different types of nails,
  39. Since best practices are solution-focused, we’re always start with the hammer and looking for the nail. Test automation is our favorite hammer. Instead we need to be characterizing all the different types of nails,
  40. Really wanted to help.
  41. Really wanted to help.
  42. Find out what the substitution thing is called.
  43. Find out what the substitution thing is called.
  44. 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?
  45. When it comes to solving these really complex problems, our intuition is just wrong. It leads us astray.
  46. The pain isn’t something inside the code, pain occurs during the process of interacting with the code. The problems I focused on fundamentally changed.
  47. Avoiding Pain
  48. 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.
  49. This is from a project about 10 months old where we actively focused on reducing troubleshooting time. With our everyday problem-solving effort, we still spent about 10-20% of our time on friction.
  50. So in this first case study, there was a huge mess inherited by a really great team, it was a 12 year old project, where all the original developers had left. This is what it looks like when 90% of your time figuring out what to do, and 10% of your time actually doing stuff. The lack of familiarity has an enormous impact on how much friction we experience.
  51. So there were tons of problems, and the team wasn’t sure what to focus on, so they set a goal to raise unit test coverage by 5%. If you start adding up all the problems across the team [], these guys were spending about 700 hours per month generating test data to support whatever task they were working on. But oddly, in all the retrospective meetings, this problem didn’t even come up. It was just part of the work.
  52. This second case studies was with a massive rewrite effort. They had this big monolith application that they rewrote completely from scratch, with micro services, a continuous delivery pipeline, the whole nine years. And what really surprised me about this project, is that after only 18 months, they were already spending 40-60% of their development capacity troubleshooting problems.
  53. They had this design for the architecture, that looked good on paper, but then once they distributed the design across teams, and discovered the architecture had some flaws, they were stuck. The good ol’ Conway’s law effect, and they couldn’t seem to adapt. So I got involved with the team, just as they were getting into the thrashing stage, and starting to lose control.
  54. You could see this pattern of pain building up over time, that we always talk about, but have never been able to measure. So I don’t have quite enough data to make a chart like this, but these are some of the patterns you could see.
  55. First, learning is front-loaded while the team figures out what to do.
  56. Then there’s this rush before the deadline where validation ends up deferred.
  57. Then the pain builds, and you see the baseline friction level rising over time.
  58. Then finally chaos reigns, and the unpredictable work stops fitting in the timebox. So I’m measuring capacity hours over time, so even though all these releases are the same size, you can see how the team had to work twice as many hours to get the release out the door.
  59. Then management got resentful because nothing was actually getting better.
  60. Now I want to point out something. For all three projects, these tasks all took one to three days. Generally speaking, as the problems build, we can still break down the work into bite-sized chunks. but what we work on during that time dramatically changes. [read] even when the problems are severe. So if you thought about how much time you spend doing troubleshooting, learning and rework. What percentage of time do you think it would be? Which do you think is the biggest? What do you think the biggest causes are of troubleshooting time?
  61. 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...
  62. Really wanted to help.
  63. Really wanted to help.
  64. We’d always get a different set of bugs. What would you do?
  65. Troubleshooting Risk we’ve already talked about, it’s driven by the likelihood...
  66. 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...
  67. For the problem categories -- I use hashtags in the Idea Flow Maps, then add up the durations for each hashtag.
  68. For the problem categories -- I use hashtags in the Idea Flow Maps, then add up the durations for each hashtag.
  69. For the problem categories -- I use hashtags in the Idea Flow Maps, then add up the durations for each hashtag.
  70. [read] And while that made some sense, I couldn’t help but think, there had to be more to the story...
  71. [read] And while that made some sense, I couldn’t help but think, there had to be more to the story...
  72. We’d always get a different set of bugs. What would you do?
  73. Really wanted to help.
  74. Really wanted to help.
  75. So we’re all familiar with the haystack principle…
  76. Then I realized George was missing a key conceptual model.
  77. N
  78. 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.
  79. Used thinking checklists to codify a decision-making process… let me show you what I mean.
  80. Focus on one decision principle until you have it down.
  81. It’s not that best practices are bad, or wrong, they’re just backwards.
  82. Really wanted to help.
  83. Really wanted to help.
  84. We start off with the best of intentions…  We're going to write high quality code that’s low in technical debt, easy to maintain and of course, has good code coverage.
  85. So I started working 60-70 hour weeks for about 6 months strait. And my team started working 60 hour weeks for 6 months strait. Then the releases started falling apart. Things were just constantly going wrong.
  86. Crazy deadlines, and I tried to explain to management that we needed to go slower, but they threatened to outsource the project if we didn’t get it done. This project was my baby.
  87. When we fall into urgency mode, we start compromising safety for speed. We make decisions that don’t seem like a big deal at the time, but they create a hazardous work environment. Instead of taking a little more time to put our toys away, we end up falling down the stairs and in the hospital.
  88. First, we ignore the risks, basically ignoring tango -- a lot of times because the risk isn’t obvious.
  89. First, we ignore the risks, basically ignoring tango -- a lot of times because the risk isn’t obvious.
  90. First, we ignore the risks, basically ignoring tango -- a lot of times because the risk isn’t obvious.
  91. First, we ignore the risks, basically ignoring tango -- a lot of times because the risk isn’t obvious.
  92. First, we ignore the risks, basically ignoring tango -- a lot of times because the risk isn’t obvious.
  93. Troubleshooting Risk we’ve already talked about, it’s driven by the likelihood...
  94. When we fall into urgency mode, we start compromising safety for speed. We make decisions that don’t seem like a big deal at the time, but they create a hazardous work environment. Instead of taking a little more time to put our toys away, we end up falling down the stairs and in the hospital.
  95. Next thing you know we’re working late nights and weekends, choking down red bull to stay awake... hacking out last minute fixes and hoping that nothing else breaks. Who’s done this before? We make jokes about programmers running on caffeine and pizza... but this problem is really serious. When our project is on the line, we give up a lot -- we’re skipping our kids recitals, missing our annivery dinners, we get sick, we gain weight stress deteriorates our health and can tear apart our relationships. Just because we’re not bleeding doesn’t mean we don’t get hurt by all this. We can’t run a sustainable business by compromising the safety of the people doing the work.
  96. I watched my project get crushed.
  97. [read] What do you guys think? What are the biggest obstacles?
  98. If our feedback loop is broken, we don’t respond.
  99. Troubleshooting Risk we’ve already talked about, it’s driven by the likelihood...
  100. Learning Risk is driven by the likelihood... Things like... lots of 3rd party libraries, complex frameworks, a really large code base, or high turn-over rate -- all these things can cause extra learning work.
  101. 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.
  102. We make decisions that save a few hours that lead to side effects that cost several hours. When we try to go faster, we do things that increase the likelihood of mistakes and the cost to recover when things go wrong. We’ve been in this pattern for the last 2 years, and now we’re here.
  103. 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...
  104. We’ve been collecting lots of data and have identified our biggest problems. I think we can dramatically reduce risk with some focused effort. I'd like to propose a 3-month trial [] with one person working full-time on these problems. The team will make decisions on the improvement work, and I’ll share our progress and lessons learned with you each month. I know we can do this, but I need your help. Will you help me make this happen?
  105. Really wanted to help.
  106. From the outside it looks like we’re trying to drive a car without a steering wheel. We line up the car’s trajectory based on our ideals, then close our eyes and floor the gas pedal.
  107. [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]
  108. Iterative clarify then implement “better”
  109. Iterative clarify then implement “better”
  110. 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.
  111. And if you don’t want to take my word for it, you should read Idea Flow because Rene and Matt said so.