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.

Five Universal Principles of API Design

1,620 views

Published on

Designing a good Web API is an exercise in decision-making and cost-benefit analysis. The best API designers are the ones who can design highly usable interfaces by considering the right choices and understanding the tradeoffs. During this presentation, Ronnie Mitra, Director of API Design, API Academy, will cover five principles of API design that will help shape your decision making process and become a great designer: The flexibility-usability tradeoff, 80/20 rule, feedback-loop, signal-to-noise ratio and hierarchy of needs. Seating is limited and available first come-first served.

For more information, please visit http://cainc.to/Nv2VOe

Published in: Technology

Five Universal Principles of API Design

  1. 1. Five Universal Principles of API Design Ronnie Mitra DevOps: API Management and Application Development CA Technologies Director of API Design DO3T26T @mitraman #CAWorld
  2. 2. […] there is nothing made by human beings that does not involve a design decision somewhere.Bill Moggridge
  3. 3. Why do we want better APIs? Expose More Capabilities Develop Better Applications Faster Acquire More Developers & Users
  4. 4. Universal Principles of Design Rockport Publishers Inc. 2007 Authors: William Lidwell Kritina Holden Jill Butler
  5. 5. 80/20 Rule Accessibility Advance Organizer Aesthetic-Usability Effect Affordance Alignment Anthropomorphic Form Archetypes Area Alignment Attractiveness Bias Baby-Face Bias Biophilia Effect Cathedral Effect Chunking Classical Conditioning Closure Cognitive Dissonance Color Common Fate Comparison Confirmation Consistency Constancy Constraint Contour Bias Control Convergence Cost-Benefit Defensible Space Depth of Processing Design by Committee Desire Line Development Cycle Entry Point Errors Expectation Effect Exposure Effect Face-ism Ratio Factor of Safety Feedback Loop Fibonacci Sequence Figure-Ground Relationship Fitts’ Law Five Hat Racks Flexibility-Usability Tradeoff Forgiveness Form Follows Function Framing Freeze-Flight-Fight-Forfeit Garbage In-Garbage Out Golden Ratio Good Continuation Gutenberg Diagram Hick’s Law Hierarchy Hierarchy of Needs Highlighting Horror Vacui Hunter-Nurturer Fixations Iconic Representation Immersion Inattentional Blindness Interference Effects Inverted Pyramid Iteration Law of Pragnanz Layering Legibility Life Cycle Mapping Mental Model Mimicry Mnemonic Device Modularity Most Advanced Yet- Acceptable Most Average Facial- Appearance Effect Normal Distribution Not Invented Here Nudge Ockham’s Razor Operant Conditioning Orientation Sensitivity Performance Load Performance Versus Preference Personas Picture Superiority Effect Priming Progressive Disclosure Propositional Density Prospect-Refuge Prototyping Proximity Readability Recognition Over Recall Red Effect Redundancy Rosetta Stone Rule of Thirds Satisficing Savanna Preference Scaling Fallacy Scarcity Self-Similarity Serial Position Effects Shaping Signal-to-Noise Ratio Similarity Stickiness Storytelling Structural Forms Symmetry Threat Detection Three-Dimensional Projection Top-Down Lighting Bias Uncanny Valley Uncertainty Principle Uniform Connectedness Veblen Effect Visibility Visuospatial Resonance Von Restorff Effect Wabi-Sabi Waist-to-Hip Ratio Wayfinding Weakest Link
  6. 6. 80/20 Rule Accessibility Advance Organizer Aesthetic-Usability Effect Affordance Alignment Anthropomorphic Form Archetypes Area Alignment Attractiveness Bias Baby-Face Bias Biophilia Effect Cathedral Effect Chunking Classical Conditioning Closure Cognitive Dissonance Color Common Fate Comparison Confirmation Consistency Constancy Constraint Contour Bias Control Convergence Cost-Benefit Defensible Space Depth of Processing Design by Committee Desire Line Development Cycle Entry Point Errors Expectation Effect Exposure Effect Face-ism Ratio Factor of Safety Feedback Loop Fibonacci Sequence Figure-Ground Relationship Fitts’ Law Five Hat Racks Form Follows Function Framing Freeze-Flight-Fight-Forfeit Garbage In-Garbage Out Golden Ratio Good Continuation Gutenberg Diagram Hick’s Law Hierarchy Hierarchy of Needs Highlighting Horror Vacui Hunter-Nurturer Fixations Iconic Representation Inattentional Blindness Interference Effects Inverted Pyramid Law of Pragnanz Layering Legibility Life Cycle Mapping Mental Model Mimicry Mnemonic Device Modularity Most Advanced Yet Acceptable Most Average Facial- Appearance Effect Normal Distribution Not Invented Here Nudge Ockham’s Razor Operant Conditioning Orientation Sensitivity Performance Load Performance Versus Preference Personas Picture Superiority Effect Priming Progressive Disclosure Propositional Density Prospect-Refuge Prototyping Proximity Readability Recognition Over Recall Red Effect Redundancy Rosetta Stone Rule of Thirds Savanna Preference Scaling Fallacy Scarcity Self-Similarity Serial Position Effects Shaping ignal-to-Noise Ratio Similarity Stickiness Storytelling Structural Forms Symmetry Threat Detection Three-Dimensional Projection Top-Down Lighting Bias Uncanny Valley Uncertainty Principle Uniform Connectedness Veblen Effect Visibility Visuospatial Resonance Von Restorff Effect Wabi-Sabi Waist-to-Hip Ratio Wayfinding Weakest Link Flexibility-Usability Tradeoff Forgiveness Immersion Satisficing Iteration
  7. 7. 1. Flexibility-Usability Tradeoff
  8. 8. Flexibility “How many problems will this help me solve?” “How many ways can I use this?” “How much stuff can this thing do?”
  9. 9. Usability “How easily can I accomplish my goals?” “How difficult is it too get started?” “What do I need to know?”
  10. 10. adding functionality increases complexity Low Complexity Minimum Capabilities
  11. 11. Maximum Capabilities adding functionality increases complexity High Complexity
  12. 12. added complexity can increase confusion !!! Low Complexity High Complexity
  13. 13. An API designed for applications GET /account GET /customer GET /transfers POST /transfer
  14. 14. An API designed for an application dashboard GET /dashboardMetrics
  15. 15. Flexibility is valuable when we are uncertain about future user needs
  16. 16. Flexibility is valuable when we are uncertain about future user needs Data Chunking Querying Order of Calls Endpoint Location Data Model Capabilities APIClient
  17. 17. Usability Aid Flexible System
  18. 18. Android Java SDK HTTP Based API
  19. 19. This is not a binary tradeoff Flexibility Usability
  20. 20. Every design decision places you on the spectrum Maximum Flexibility Maximum Usability
  21. 21. 2. Forgiveness
  22. 22. Forgiveness Help users recover from mistakes Help users avoid making mistakes Warn users of danger ahead
  23. 23. APIClient Oh Larry…. I forgive you. ` I’ve made a horrible mistake!
  24. 24. APIClient Application Developer Application User
  25. 25. Encourage exploration and learning by providing safe places Application Developer Client API !
  26. 26. Encourage exploration and learning by providing safe places Application Developer Client API sandbox
  27. 27. Provide reversibility in the API Client Application User UNDO
  28. 28. UNDO Provide reversibility in the API Application User APIClient POST /undo
  29. 29. 3. Immersion
  30. 30. The best moments usually occur when a person’s body or mind is stretched to its limits in a voluntary effort to accomplish something difficult and worthwhile Mihaly Csikszentmihalyi
  31. 31. Application Developer Client API
  32. 32. 4. Iteration
  33. 33. An Iterative API Design Approach 1 Determine Goals 2 Identify Users 3 Design Interface 4 Evaluate 5 Implement
  34. 34. Why? 1 Determine Goals 2 Identify Users 3 Design Interface 4 Evaluate 5 Implement revenue reach innovation growth compliance intel
  35. 35. platform language organization distance knowledge risk profile investment 1 Determine Goals 2 Identify Users 3 Design Interface 4 Evaluate 5 Implement For Whom? Expertise Goals Familiarity
  36. 36. Ideate, Experiment, Sketch & Prototype 1 Determine Goals 2 Identify Users 3 Design Interface 4 Evaluate 5 Implement
  37. 37. Test Assumptions 1 Determine Goals 2 Identify Users 3 Design Interface 4 Evaluate 5 Implement Lab Evaluation Peer Evaluation User Observation Write Client Code Participatory Design
  38. 38. Design Doesn’t Stop 1 Determine Goals 2 Identify Users 3 Design Interface 4 Evaluate 5 Implement Analyze Real Usage Identify Usability Bugs Improve Functionality Iterate and Evolve
  39. 39. Iterations will improve design API implementations are difficult to change Try to iterate before implementation
  40. 40. 5. Satisficing
  41. 41. Herbert A. Simon Searching for the best can only dissipate scarce cognitive resources; the best is the enemy of the good. “ ”
  42. 42. “The best design decision is not always the optimal design decision.” Scale Revenue Competition -£ £ £
  43. 43. 5. Satisficing 4. Iteration 3. Immersion 2. Forgiveness 1. Flexibility-Usability Tradeoff
  44. 44. 80/20 Rule Accessibility Advance Organizer Aesthetic-Usability Effect Affordance Alignment Anthropomorphic Form Archetypes Area Alignment Attractiveness Bias Baby-Face Bias Biophilia Effect Cathedral Effect Chunking Classical Conditioning Closure Cognitive Dissonance Color Common Fate Comparison Confirmation Consistency Constancy Constraint Contour Bias Control Convergence Cost-Benefit Defensible Space Depth of Processing Design by Committee Desire Line Development Cycle Entry Point Errors Expectation Effect Exposure Effect Face-ism Ratio Factor of Safety Feedback Loop Fibonacci Sequence Figure-Ground Relationship Fitts’ Law Five Hat Racks Flexibility-Usability Tradeoff Forgiveness Form Follows Function Framing Freeze-Flight-Fight-Forfeit Garbage In-Garbage Out Golden Ratio Good Continuation Gutenberg Diagram Hick’s Law Hierarchy Hierarchy of Needs Highlighting Horror Vacui Hunter-Nurturer Fixations Iconic Representation Immersion Inattentional Blindness Interference Effects Inverted Pyramid Iteration Law of Pragnanz Layering Legibility Life Cycle Mapping Mental Model Mimicry Mnemonic Device Modularity Most Advanced Yet- Acceptable Most Average Facial- Appearance Effect Normal Distribution Not Invented Here Nudge Ockham’s Razor Operant Conditioning Orientation Sensitivity Performance Load Performance Versus Preference Personas Picture Superiority Effect Priming Progressive Disclosure Propositional Density Prospect-Refuge Prototyping Proximity Readability Recognition Over Recall Red Effect Redundancy Rosetta Stone Rule of Thirds Satisficing Savanna Preference Scaling Fallacy Scarcity Self-Similarity Serial Position Effects Shaping Signal-to-Noise Ratio Similarity Stickiness Storytelling Structural Forms Symmetry Threat Detection Three-Dimensional Projection Top-Down Lighting Bias Uncanny Valley Uncertainty Principle Uniform Connectedness Veblen Effect Visibility Visuospatial Resonance Von Restorff Effect Wabi-Sabi Waist-to-Hip Ratio Wayfinding Weakest Link
  45. 45. 46 © 2015 CA. ALL RIGHTS RESERVED.@CAWORLD #CAWORLD Q & A
  46. 46. 47 © 2015 CA. ALL RIGHTS RESERVED.@CAWORLD #CAWORLD Recommended Sessions SESSION # TITLE DATE/TIME DO3T25T Tech Talk: Hypermedia-Driven Orchestration in Microservices 11/18/2015 at 2:00 pm DO3X96S Tech Primer: Implementing Adaptable Microservices; A Methodology for Loosely- Coupled Components 11/18/2015 at 3:00 pm DO3X95S Tech Primer: Accelerating the Mobile App Development Process – How to Simplify Building Context Aware and Reactive Mobile Apps 11/18/2015 at 4:30 pm
  47. 47. 48 © 2015 CA. ALL RIGHTS RESERVED.@CAWORLD #CAWORLD Must See Demos Unlock the Value of APIs API Developer Portal Theater 3 Simplify API Design & Creation Live API Creator Theater 3 Accelerate Mobile/IoT Development Mobile App Services Theater 3 Extend Existing Architectures API Gateway Theater 3
  48. 48. 49 © 2015 CA. ALL RIGHTS RESERVED.@CAWORLD #CAWORLD For More Information To learn more, please visit: http://cainc.to/Nv2VOe CA World ’15

×