Post on 13-Apr-2017
transcript
Five Universal Principles of API Design
Ronnie Mitra
DevOps: API Management and Application Development
CA Technologies
Director of API Design
DO3T26T
@mitraman
#CAWorld
[…] there is nothing made by human beings that does not involve a design decision somewhere.Bill
Moggridge
Why do we want better APIs?
Expose More Capabilities
Develop Better Applications Faster
Acquire More Developers & Users
Universal Principles of DesignRockport Publishers Inc.
2007
Authors:
William Lidwell
Kritina Holden
Jill Butler
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
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
1. Flexibility-Usability Tradeoff
Flexibility
“How many problems will this help me solve?”
“How many ways can I use this?”
“How much stuff can this thing do?”
Usability
“How easily can I accomplish my goals?”
“How difficult is it too get started?”
“What do I need to know?”
adding functionality increases
complexity
Low Complexity
Minimum Capabilities
Maximum Capabilities
adding functionality increases
complexity
High Complexity
added complexity can increase confusion
!!!
Low Complexity
High Complexity
An API designed for applications
GET /account
GET /customer
GET /transfers
POST /transfer
An API designed for an application
dashboard
GET /dashboardMetrics
Flexibility is valuable when we are uncertain
about future user needs
Flexibility is valuable when we are uncertain
about future user needs
Data Chunking
Querying
Order of Calls
Endpoint Location
Data Model
Capabilities
APIClient
UsabilityAid
Flexible System
AndroidJavaSDK
HTTP Based API
This is not a binary tradeoff
Flexibility Usability
Every design decision places you on the spectrum
MaximumFlexibility
MaximumUsability
2. Forgiveness
Forgiveness
Help users recover from mistakes
Help users avoid making mistakes
Warn users of danger ahead
APIClient
Oh Larry…. I forgive you.
`
I’ve made a horrible mistake!
APIClient
Application Developer
Application User
Encourage exploration and learning by providing safe places
Application Developer
Client API
!
Encourage exploration and learning by providing safe places
Application Developer
Client API sandbox
Provide reversibility in the API
Client
Application UserUNDO
UNDO
Provide reversibility in the API
Application User
APIClient POST /undo
3. Immersion
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
MihalyCsikszentmihalyi
Application Developer
Client API
4. Iteration
An Iterative API Design Approach
1 Determine Goals
2 Identify Users
3 Design Interface
4 Evaluate
5 Implement
Why?
1 Determine Goals
2 Identify Users
3 Design Interface
4 Evaluate
5 Implement
revenue reach innovation
growth compliance intel
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
Ideate, Experiment, Sketch & Prototype
1 Determine Goals
2 Identify Users
3 Design Interface
4 Evaluate
5 Implement
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
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
Iterations will improve design
API implementations are difficult to change
Try to iterate before implementation
5. Satisficing
Herbert A. Simon
Searching for the best can only dissipate scarce cognitive resources; the best is the enemy of the good.
“
”
“The best design decision is not always the
optimal design decision.”
Scale
Revenue
Competition
-£ £ £
5. Satisficing
4. Iteration
3. Immersion
2. Forgiveness
1. Flexibility-Usability Tradeoff
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
46 © 2015 CA. ALL RIGHTS RESERVED.@CAWORLD #CAWORLD
Q & A
47 © 2015 CA. ALL RIGHTS RESERVED.@CAWORLD #CAWORLD
Recommended Sessions
SESSION # TITLE DATE/TIME
DO3T25TTech Talk: Hypermedia-Driven Orchestration
in Microservices11/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
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/IoTDevelopment
Mobile App Services
Theater 3
Extend Existing Architectures
API Gateway
Theater 3
49 © 2015 CA. ALL RIGHTS RESERVED.@CAWORLD #CAWORLD
For More Information
To learn more, please visit:
http://cainc.to/Nv2VOe
CA World ’15