View
465
Download
0
Category
Tags:
Preview:
Citation preview
CTO, New IronJanelle Klein
Learnable APIs
An Open Standard for
Easy to Learn and Use Hard to Learn and Use
Learnability Index
©2015 New Iron GroupSaturday, August 8, 15
RESET
...
The Modern API Decision-Making Process
“Hmm... I need a Contact Management API.”
Saturday, August 8, 15
RESET
Contact Management API
...
“Hmm... I need a Contact Management API.”
The Modern API Decision-Making Process
Saturday, August 8, 15
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
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
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
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
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
RESET
Okay... but this is just a minor annoyance.
source: Domics - “What’s a Shrug?”
The real pain happens later...
Saturday, August 8, 15
RESET
https://www.youtube.com/watch?v=0mUN3RppEHE
Fear and InspirationJosh Corman, DevOpsDays Austin 2015
Saturday, August 8, 15
Infecting
We’re putting software and connectivity in everything...
Fear and InspirationJosh Corman, DevOpsDays Austin 2015
Saturday, August 8, 15
The security implications are frightening...
Fear and InspirationJosh Corman, DevOpsDays Austin 2015
100 million lines of code running a car!
Saturday, August 8, 15
RESET
90% of our software is assembled from existing parts...
Fear and InspirationJosh Corman, DevOpsDays Austin 2015
The Complexity and Risk is in the Supply Chain
Saturday, August 8, 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
Bad Software is like Environment Pollution
BreakingPoint
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
RESET
Fear and InspirationJosh 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
RESET
Fear and InspirationJosh Corman, DevOpsDays Austin 2015
We’ve copied everything from Deming’s manufacturing ideas except Quality and Risk Management Practices.
Saturday, August 8, 15
RESET
To conquer the challenges of quality and risk
We have to manage quality in the Supply Chain
Fear and InspirationJosh Corman, DevOpsDays Austin 2015
Saturday, August 8, 15
The @iamthecavalry community rally call:
It’s not our software, but it is our problem.
Saturday, August 8, 15
Let’s take ownership of the supply chain problemsand design the future we want.
Saturday, August 8, 15
RESET
Deliberate Design of Human Systems
There is always cost. There are always consequences. Open != Good
Private Competition
Survival of the Fittest Self-Optimizing
CreativityInnovation
Open Standards
Define the CompetitionOptimize the Whole
Public DebateEmpathy
Interactionscause
system effects
Saturday, August 8, 15
Let’s Take Ownership of Evolution
Pain Pushes
(Threat of Survival)
Opportunity Pulls
(Path of Least Resistance)
“The System”
Saturday, August 8, 15
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
RESET
Contact Management API
...
“Hmm... I need a Contact Management API.”
Let’s Try this Again...
Saturday, August 8, 15
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 marketSaturday, August 8, 15
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
What information do we need to make quality supply chain decisions?
What’s the strategy to get there?
Saturday, August 8, 15
RESET
...
I’ve been working on a related challengefor the last ~8 years.
Software Rewrite Cycle
How to Break the
Start%Over%
Unmaintainable%So0ware%
Saturday, August 8, 15
RESET
My software project...
We tried to do all the “right” things
...and brought down production 3x in a row.
Saturday, August 8, 15
Risk of Mistakes?
Most of our mistakes were in the most well-written parts of the code.
Saturday, August 8, 15
We made significantly more mistakesin code that we didn’t write ourselves.
LowerFamiliarity
MoreMistakes=
There had to be more to the story...
Saturday, August 8, 15
Complex(So*ware(
...pain...
This is what I knew...
What made development feel painful?
Saturday, August 8, 15
UnexpectedBehavior
ProblemResolved
Tracking Painful Interaction with the Code (Friction)
Troubleshooting
Progress
5 hours and 18 minutes of troubleshooting...
PAINFUL
Saturday, August 8, 15
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
What Causes UnexpectedBehavior (likeliness)?
What Makes TroubleshootingTime-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
What Causes UnexpectedBehavior (likeliness)?
What Makes TroubleshootingTime-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
What Causes UnexpectedBehavior (likeliness)?
What Makes TroubleshootingTime-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
“Idea Flow” is a metaphor for the human interaction in software development
Idea Flow Map
Saturday, August 8, 15
“Friction” occurs in the context of a Process.
Pain is caused by high-friction movement.
friction
Saturday, August 8, 15
Friction occurs in Three Places:
Conflict Confirm
Rework'
Learn'
Validate(
Modify'
Confirming Loop! Conflict Loop!
Troubleshoot'
Saturday, August 8, 15
Troubleshooting Pain
Likelihood)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
Learning Pain
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)
Saturday, August 8, 15
Rework Pain
Likelihood)of))making)a))
Bad)Assump4on)
Cost)to)Correct)Decisions)
High)Uncertainty)Low)Delay)
Low)Uncertainty)Low)Delay)
Low)Uncertainty)High)Delay)
PAIN)
Saturday, August 8, 15
Troubleshooting
Progress
Learning
Rework
Idea Flow Mapping Tools(Open Source)
Saturday, August 8, 15
Troubleshooting
Progress
Learning
Rework
Idea Flow Mapping Tools(Open Source)
Experiment via Unit Testing
Experiment via Running App
Saturday, August 8, 15
Troubleshooting
Progress
Learning
Rework
Idea Flow Mapping Tools(Open Source)
Saturday, August 8, 15
Troubleshooting
Progress
Learning
Rework
Idea Flow Mapping Tools(Open Source)
Tags: #problemtag
Saturday, August 8, 15
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 Visible2. Clarity - Understand the Causes of Pain3. Awareness - Improve Decision Habits
(data-driven learning)
Saturday, August 8, 15
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
...Idea Flow Maps help developers diagnose software problems.
Problem-SolvingMachine
Saturday, August 8, 15
= Solution Strategy
The “Heart” of Software Development(the problem-solving machine)
Saturday, August 8, 15
= Solution Strategy
The “Heart” of Software Development(the problem-solving machine)
Evaluate alternatives and decide on a general strategy
Saturday, August 8, 15
= 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
= 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
= Solution Strategy
The “Heart” of Software Development(the problem-solving machine)
If we discover our strategy isn’t going towork, we have to go back to the drawing board to find an alternative.
Saturday, August 8, 15
Depending on where the disruptions are in the process,we see a different effect in Idea Flow.
Saturday, August 8, 15
"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
"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
"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
"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
"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
Add up Friction by Pain Type
100 hours
50 hours
Troubleshooting
Learning
Rework
Focused Improvements Visible Feedback
Saturday, August 8, 15
What’s Causing the Software Rewrite Cycle?
Start%Over%
Unmaintainable%So0ware%
Saturday, August 8, 15
Cycle of Escalating Risk
Constant'Urgency'
Time'Pressure'
Ignore'Risk'
Increase'Likeliness'
&'Magnitude'of'Pain'
More'Frequent'Bugs'and'Higher'
Task'Effort'
Saturday, August 8, 15
Case Study 1: Healthy project about 10 months old
Troubleshooting
Progress
Learning
Rework10-20% friction
Effects of Escalating Risk
Saturday, August 8, 15
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
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
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
RESET
Remember This?
We’ve copied everything from Deming’s manufacturing ideas except Quality and Risk Management Practices.
Saturday, August 8, 15
Idea Flow Learning Frameworkis 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
“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
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
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 Backlog1. 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
Think about it,Blog about it,Tweet about it!
@janellekz #ideaflow!
Free e-book if you sign up by Aug 30th!
@janellekzjanelle@newiron.com
Twitter:Email:
Saturday, August 8, 15
Recommended