An industry-level strategy for addressing the runaway complexity costs and safety risks in the software supply chain and a strategy to get from A to B.
After seeing Josh Corman's rather frightening presentation on the trajectory of our industry, and realizing that nobody could solve these problems alone -- I decided to take the initiative.
I put together a rough strategy that could potentially be game-changing, but I need help from the community to figure out how to make it work. If you're up for trying to conquer some of the biggest challenges of our age, please don't hesitate to reach out!
5. RESET
Contact Management API
...
Our API directory now includes 63 CRM APIs. The newest is thePingGiant API. The most
popular, in terms of mashups, is theSalesforce API. We list 44 Salesforce mashups. Below
you'll find some more stats from the directory, including the entire list of CRM APIs.
source: http://programmableweb.com
“Hmm... I need a Contact Management API.”
The Modern API Decision-Making Process
Saturday, August 8, 15
6. RESET
Contact Management API
...
Our API directory now includes 63 CRM APIs. The newest is thePingGiant API. The most
popular, in terms of mashups, is theSalesforce API. We list 44 Salesforce mashups. Below
you'll find some more stats from the directory, including the entire list of CRM APIs.
source: http://programmableweb.com
“Hmm... I need a Contact Management API.”
The Modern API Decision-Making Process
“Ugh...this is taking too long.”
Saturday, August 8, 15
7. RESET
Contact Management API
...
Our API directory now includes 63 CRM APIs. The newest is thePingGiant API. The most
popular, in terms of mashups, is theSalesforce API. We list 44 Salesforce mashups. Below
you'll find some more stats from the directory, including the entire list of CRM APIs.
source: http://programmableweb.com
“Hmm... I need a Contact Management API.”
“Hey George, what API do you use for Contact Management?”
The Modern API Decision-Making Process
“Ugh...this is taking too long.”
Saturday, August 8, 15
8. RESET
Contact Management API
...
Our API directory now includes 63 CRM APIs. The newest is thePingGiant API. The most
popular, in terms of mashups, is theSalesforce API. We list 44 Salesforce mashups. Below
you'll find some more stats from the directory, including the entire list of CRM APIs.
source: http://programmableweb.com
“Hmm... I need a Contact Management API.”
“Hey George, what API do you use for Contact Management?”
“We made our own Salesforce mashup.
I’ll send you a link.”
The Modern API Decision-Making Process
“Ugh...this is taking too long.”
Saturday, August 8, 15
9. RESET
Contact Management API
...
Our API directory now includes 63 CRM APIs. The newest is thePingGiant API. The most
popular, in terms of mashups, is theSalesforce API. We list 44 Salesforce mashups. Below
you'll find some more stats from the directory, including the entire list of CRM APIs.
source: http://programmableweb.com
“Hmm... I need a Contact Management API.”
“Hey George, what API do you use for Contact Management?”
“We made our own Salesforce mashup.
I’ll send you a link.”
“Thanks, George. I’ll use that one I guess.”
The Modern API Decision-Making Process
“Ugh...this is taking too long.”
Saturday, August 8, 15
10. RESET
Okay... but this is just a minor annoyance.
source: Domics - “What’s a Shrug?”
The real pain happens later...
Saturday, August 8, 15
12. Infecting
We’re putting software and connectivity in everything...
Fear and Inspiration
Josh Corman, DevOpsDays Austin 2015
Saturday, August 8, 15
13. The security implications are frightening...
Fear and Inspiration
Josh Corman, DevOpsDays Austin 2015
100 million lines of code running a car!
Saturday, August 8, 15
14. RESET
90% of our software is assembled from existing parts...
Fear and Inspiration
Josh Corman, DevOpsDays Austin 2015
The Complexity and Risk is in the Supply Chain
Saturday, August 8, 15
15. The Talent Shortage
Higher Demand for Software
Software Development knowledge is mostly tacit knowledge
that’s learned through mentorship (not school)
Broken Education System+
More Incompetent Devs building software
Saturday, August 8, 15
16. Bad Software is like Environment Pollution
Breaking
Point
Cost
&
Risk
Complexity
Cumulative Complexity in the SW Supply Chain
(i.e. shared dumping ground of crappy software)
The risk to public safety is on all of us.
Saturday, August 8, 15
17. RESET
What Can We Possibly Do?
source: Domics - “What’s a Shrug?”
Saturday, August 8, 15
18. RESET
Fear and Inspiration
Josh Corman, DevOpsDays Austin 2015
The Difference? Modern Building Codes
Haiti Quake: 7.0 with 230,000 deaths
Chile Quake: 8.8 with 279 deaths
Saturday, August 8, 15
19. RESET
Fear and Inspiration
Josh Corman, DevOpsDays Austin 2015
We’ve copied everything from Deming’s manufacturing ideas
except Quality and Risk Management Practices.
Saturday, August 8, 15
20. RESET
To conquer the challenges of quality and risk
We have to manage quality in the Supply Chain
Fear and Inspiration
Josh Corman, DevOpsDays Austin 2015
Saturday, August 8, 15
22. Let’s take ownership of the supply chain problems
and design the future we want.
Saturday, August 8, 15
23. RESET
Deliberate Design of Human Systems
There is always cost. There are always consequences.
Open != Good
Private Competition
Survival of the Fittest
Self-Optimizing
Creativity
Innovation
Open Standards
Define the Competition
Optimize the Whole
Public Debate
Empathy
Interactions
cause
system effects
Saturday, August 8, 15
24. Let’s Take Ownership of Evolution
Pain Pushes
(Threat of Survival)
Opportunity Pulls
(Path of Least Resistance)
“The System”
Saturday, August 8, 15
26. Mistakes are primarily
caused by a lack of understanding.
Easy to Learn and Use Hard to Learn and Use
Learnability Index
Learnability measures the cost of understanding.
Learnability measures the risk of mistakes.
Saturday, August 8, 15
28. RESET
Contact Management API
...
“Hmm... I need a Contact Management API.”
Let’s Try this Again...
Quality decisions create selection pressures for quality in the market
Saturday, August 8, 15
29. RESET
Contact Management API
...
“Hmm... I need a Contact Management API.”
Let’s Try this Again...
Quality decisions create selection pressures for quality in the market
Cost of Ownership Analysis
Saturday, August 8, 15
30. What information do we need
to make quality supply chain decisions?
What’s the strategy to get there?
Saturday, August 8, 15
31. RESET
...
I’ve been working on a related challenge
for the last ~8 years.
Software Rewrite Cycle
How to Break
the
Start%
Over%
Unmaintainable%
So0ware%
Saturday, August 8, 15
32. RESET
My software project...
We tried to do all the “right” things
...and brought down production 3x in a row.
Saturday, August 8, 15
33. Technical Debt Risk of Mistakes
I thought the problem was
Technical Debt
Saturday, August 8, 15
34. Risk of Mistakes
?
Most of our mistakes were in the
most well-written parts of the code.
Saturday, August 8, 15
35. 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...
Saturday, August 8, 15
38. The Amount of PAIN was Driven By...
Likeliness(of((
Unexpected(
Behavior(
Cost(to(Troubleshoot(and(Repair(
High(Frequency(
Low(Impact(
Low(Frequency(
Low(Impact(
Low(Frequency(
High(Impact(
PAIN(
Saturday, August 8, 15
39. What Causes Unexpected
Behavior (likeliness)?
What Makes Troubleshooting
Time-Consuming (impact)?
What causes PAIN?
Bad Input Assumptions
Stale Memory Mistakes
Semantic Mistakes
Similarity Mistakes
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 Generation
Using Debugger
Most of the pain was caused by human factors.
Saturday, August 8, 15
40. What Causes Unexpected
Behavior (likeliness)?
What Makes Troubleshooting
Time-Consuming (impact)?
What causes PAIN?
Bad Input Assumptions
Stale Memory Mistakes
Semantic Mistakes
Similarity Mistakes
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 Generation
Using Debugger
Most of the pain was caused by human factors.
Saturday, August 8, 15
41. What Causes Unexpected
Behavior (likeliness)?
What Makes Troubleshooting
Time-Consuming (impact)?
What causes PAIN?
Bad Input Assumptions
Stale Memory Mistakes
Semantic Mistakes
Similarity Mistakes
Tedious Change Mistakes
Copy-Edit Mistakes
Transposition Mistakes
Failed Refactor Mistakes
False Alarm
Most of the pain was caused by human factors.
Non-Deterministic Behavior
Ambiguous Clues
Lots of Code Changes
Noisy Output
Cryptic Output
Long Execution Time
Environment Cleanup
Test Data Generation
Using Debugger
Saturday, August 8, 15
42. “Idea Flow” is a metaphor for the
human interaction in software development
Idea Flow Map
Saturday, August 8, 15
57. Input:
Task + Constraints
Target: Optimal Idea Flow
Output: Actual Friction
1.
Visibility
2.
Clarity
3.
Awareness
Idea Flow Learning Framework
1. Visibility - Make the Pain Visible
2. Clarity - Understand the Causes of Pain
3. Awareness - Improve Decision Habits
(data-driven learning)
Saturday, August 8, 15
58. We can learn to read the
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...
Saturday, August 8, 15
59. ...Idea Flow Maps help developers diagnose software problems.
Problem-Solving
Machine
Saturday, August 8, 15
60. = Solution Strategy
The “Heart” of Software Development
(the problem-solving machine)
Saturday, August 8, 15
61. = Solution Strategy
The “Heart” of Software Development
(the problem-solving machine)
Evaluate alternatives and
decide on a general strategy
Saturday, August 8, 15
62. = Solution Strategy
The “Heart” of Software Development
(the problem-solving machine)
Scan through the code and
build a conceptual model of
how it works
Saturday, August 8, 15
63. = Solution Strategy
The “Heart” of Software Development
(the problem-solving machine)
Feedback loop phase involves writing a
little code, validating that it works, then
refining the details of the strategy.
Saturday, August 8, 15
64. = Solution Strategy
The “Heart” of Software Development
(the problem-solving machine)
If we discover our strategy isn’t going to
work, we have to go back to the
drawing board to find an alternative.
Saturday, August 8, 15
65. Depending on where the disruptions are in the process,
we see a different effect in Idea Flow.
Saturday, August 8, 15
66. "How did you evaluate the possible options and choose a strategy?"
"What was wrong with the different strategies you tried?"
"What was the discovery that made you choose a different direction?"
Problems with Evaluating Alternatives
Saturday, August 8, 15
67. "Were you working with something that you were unfamiliar with?"
"Did you run into code that was noisy, ambiguous, or misleading?"
"What do you think made it difficult to learn?"
Problems with Modeling
Saturday, August 8, 15
68. "Did your task involve changes to complex code or business rules?"
"Were there a lot of details that you had to keep in your head?"
"What was causing the complexity in the validation cycles?"
Problems with Refining
Saturday, August 8, 15
69. "What experiments did you run to troubleshoot the problem?"
"How many times did you run the experiment?"
"How long did it take to get through each experiment cycle?"
Problems with the Validation Cycle
Saturday, August 8, 15
70. "Was there something in the code that made these changes especially mistake-prone?"
"How familiar were you with the language and tools you were working with?"
"Were you tired or distracted when you did the work?"
Problems with Execution
Saturday, August 8, 15
71. The Ten Pains of Software Development
Saturday, August 8, 15
72. Add up Friction by Pain Type
100 hours
50 hours
Troubleshooting
Learning
Rework
Focused Improvements Visible Feedback
Saturday, August 8, 15
75. Case Study 1:
Healthy project about 10 months old
Troubleshooting
Progress
Learning
Rework10-20% friction
Effects of Escalating Risk
Saturday, August 8, 15
76. Case Study 2:
Thrashing project about 18 months old
Troubleshooting
Progress
Learning
Rework40-60% friction
0:00 28:15
12:230:00
Effects of Escalating Risk
Saturday, August 8, 15
77. Case Study 3:
Post-meltdown project about 12 years old
Troubleshooting
Progress
Learning
Rework60-90% friction
7:070:00
0:00 19:52
Effects of Escalating Risk
Saturday, August 8, 15
78. Case Study 1
Case Study 2
Case Study 3
1 day
2 days
1 day
3 days
1 day
3 days
We can’t see these effects by measuring velocity or task lead-time.
Effects of Escalating Risk
Saturday, August 8, 15
79. RESET
Remember This?
We’ve copied everything from Deming’s manufacturing ideas
except Quality and Risk Management Practices.
Saturday, August 8, 15
80. Idea Flow Learning Framework
is a software control system!
Input:
Task + Constraints
Target: Optimal Idea Flow
Output: Actual Friction
1.
Visibility
2.
Clarity
3.
Awareness
My background...
Statistical Process Control (SPC) and Supply Chain in Manufacturing
Saturday, August 8, 15
81. How do we measure
Learnability of an API?
Saturday, August 8, 15
82. “Learnability” is the average friction across
a specific set of Developer Use Case Experiments
Easy to Learn and Use Hard to Learn and Use
Learnability Index
Open Standard for All APIs and Libraries
Saturday, August 8, 15
83. RESET
Contact Management API
...
“How do we get here?”
The Conversation Starts with a Vision
Cost of Ownership Analysis
(Even if it’s a half-baked vision)
Saturday, August 8, 15
84. Proposal for a Road Map
Open Mastery (Launching Fall 2015)
Developer peer learning network focused on using
data-driven learning to codify open decision models
and standards for industry-wide problems.
Community Backlog
1. Personal Mastery (Codify Idea Flow-based Software Control decision-making)
2. Open Software Mastery Certification
3. Team Mastery (Software Mentorship, Knowledge Integration, Improvement Strategy)
4. Open Software Mentorship Certification
5. Supply Chain Mastery (Cost of Ownership Analysis, Component Decision Hub)
6. Open API DX Certification
Saturday, August 8, 15
85. Think about it,
Blog about it,
Tweet about it!
@janellekz
#ideaflow!
Free e-book if you sign up
by Aug 30th!
@janellekz
janelle@newiron.com
Twitter:
Email:
Saturday, August 8, 15