Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

An Open Standard for Learnable APIs

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!

An Open Standard for Learnable APIs

  1. 1. CTO, New Iron Janelle Klein Learnable APIs An Open Standard for Easy to Learn and Use Hard to Learn and Use Learnability Index ©2015 New Iron Group Saturday, August 8, 15
  2. 2. RESET Why should I care? Saturday, August 8, 15
  3. 3. RESET ... The Modern API Decision-Making Process “Hmm... I need a Contact Management API.” Saturday, August 8, 15
  4. 4. RESET Contact Management API ... “Hmm... I need a Contact Management API.” The Modern API Decision-Making Process Saturday, August 8, 15
  5. 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. 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. 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. 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. 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. 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
  11. 11. RESET https://www.youtube.com/watch?v=0mUN3RppEHE Fear and Inspiration Josh Corman, DevOpsDays Austin 2015 Saturday, August 8, 15
  12. 12. Infecting We’re putting software and connectivity in everything... Fear and Inspiration Josh Corman, DevOpsDays Austin 2015 Saturday, August 8, 15
  13. 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. 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. 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. 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. 17. RESET What Can We Possibly Do? source: Domics - “What’s a Shrug?” Saturday, August 8, 15
  18. 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. 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. 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
  21. 21. The @iamthecavalry community rally call: It’s not our software, but it is our problem. Saturday, August 8, 15
  22. 22. Let’s take ownership of the supply chain problems and design the future we want. Saturday, August 8, 15
  23. 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. 24. Let’s Take Ownership of Evolution Pain Pushes (Threat of Survival) Opportunity Pulls (Path of Least Resistance) “The System” Saturday, August 8, 15
  25. 25. Learnable APIs Open Standard for What if we had... Saturday, August 8, 15
  26. 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
  27. 27. RESET Contact Management API ... “Hmm... I need a Contact Management API.” Let’s Try this Again... Saturday, August 8, 15
  28. 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. 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. 30. What information do we need to make quality supply chain decisions? What’s the strategy to get there? Saturday, August 8, 15
  31. 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. 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. 33. Technical Debt Risk of Mistakes I thought the problem was Technical Debt Saturday, August 8, 15
  34. 34. Risk of Mistakes ? Most of our mistakes were in the most well-written parts of the code. Saturday, August 8, 15
  35. 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
  36. 36. Complex( So*ware( ...pain... This is what I knew... What made development feel painful? Saturday, August 8, 15
  37. 37. Unexpected Behavior Problem Resolved Tracking Painful Interaction with the Code (Friction) Troubleshooting Progress 5 hours and 18 minutes of troubleshooting... PAINFUL Saturday, August 8, 15
  38. 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. 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. 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. 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. 42. “Idea Flow” is a metaphor for the human interaction in software development Idea Flow Map Saturday, August 8, 15
  43. 43. Confirmed Expectations Confirmation: Everything feels as it should be... Saturday, August 8, 15
  44. 44. Violated Expectations Conflict: Something is out of place... Saturday, August 8, 15
  45. 45. The Idea Flow Process looks like this: Saturday, August 8, 15
  46. 46. “Friction” occurs in the context of a Process. Pain is caused by high-friction movement. friction Saturday, August 8, 15
  47. 47. Friction occurs in Three Places: ConflictConfirm Rework' Learn' Validate( Modify' Confirming Loop! Conflict Loop! Troubleshoot' Saturday, August 8, 15
  48. 48. 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
  49. 49. 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
  50. 50. 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
  51. 51. How do we measure Idea Flow in Developer Experience? Saturday, August 8, 15
  52. 52. Idea Flow Mapping Tools (Open Source) Saturday, August 8, 15
  53. 53. Troubleshooting Progress Learning Rework Idea Flow Mapping Tools (Open Source) Saturday, August 8, 15
  54. 54. Troubleshooting Progress Learning Rework Idea Flow Mapping Tools (Open Source) Experiment via Unit Testing Experiment via Running App Saturday, August 8, 15
  55. 55. Troubleshooting Progress Learning Rework Idea Flow Mapping Tools (Open Source) Saturday, August 8, 15
  56. 56. Troubleshooting Progress Learning Rework Idea Flow Mapping Tools (Open Source) Tags: #problemtag Saturday, August 8, 15
  57. 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. 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. 59. ...Idea Flow Maps help developers diagnose software problems. Problem-Solving Machine Saturday, August 8, 15
  60. 60. = Solution Strategy The “Heart” of Software Development (the problem-solving machine) Saturday, August 8, 15
  61. 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. 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. 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. 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. 65. Depending on where the disruptions are in the process, we see a different effect in Idea Flow. Saturday, August 8, 15
  66. 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. 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. 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. 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. 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. 71. The Ten Pains of Software Development Saturday, August 8, 15
  72. 72. Add up Friction by Pain Type 100 hours 50 hours Troubleshooting Learning Rework Focused Improvements Visible Feedback Saturday, August 8, 15
  73. 73. What’s Causing the Software Rewrite Cycle? Start% Over% Unmaintainable% So0ware% Saturday, August 8, 15
  74. 74. 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
  75. 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. 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. 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. 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. 79. RESET Remember This? We’ve copied everything from Deming’s manufacturing ideas except Quality and Risk Management Practices. Saturday, August 8, 15
  80. 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. 81. How do we measure Learnability of an API? Saturday, August 8, 15
  82. 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. 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. 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. 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

×