applying design principles to api initiatives
DESCRIPTION
TRANSCRIPT
Applying Universal Design Principles to API Ini5a5ves
Apigee @apigee
Kevin Swiber @kevinswiber Alan Languirand @13protons
groups.google.com/group/api-craft
youtube.com/apigee
slideshare.net/apigee
@13protons Alan Languirand
@kevinswiber Kevin Swiber
**amazon.com
**
Development Cycle Universal Principles of Design
Successful products typically follow four stages of crea5on: requirements, design, development, and tes5ng. “
**
Development Cycle
Requirements
Design
Development
Tes5ng
**
Development Cycle
Requirements 80/20 Flexibility vs. Usability Trade-‐off
Design Consistency Layering Constraints
Development Inverted Pyramid Errors Visibility
Tes5ng Signal to Noise Ra5o Validate
App User
API Team API App World of
APIs App
Store Internal Systems
App Developer
Applica5on Developers are Kingmakers
**
Ques5ons to ask at each phase:
• What is the app developer doing?
• How can we help?
**
Development Cycle
Requirements 80/20 Flexibility vs. Usability Trade-‐off
Design Consistency Layering Constraints
Development Inverted Pyramid Errors Visibility
Tes5ng Signal to Noise Ra5o Validate
**
80/20 Rule Universal Principles of Design
A high percentage of effects in any large system are caused by a low percentage of variables. “
**
Invest in highly-‐used features
**
Fix high-‐impact bugs
**
Flexibility-‐Usability Tradeoff Universal Principles of Design
As the flexibility of a system increases, its usability decreases. “
**
Many op5ons vs. quick adop5on
**
Start with a well-‐defined use case
**
Iterate to greater flexibility
**
Development Cycle
Requirements 80/20 Flexibility vs. Usability Trade-‐off
Design Consistency Layering Constraints
Development Inverted Pyramid Errors Visibility
Tes5ng Signal to Noise Ra5o Validate
**
Point the way
**
**
Consistency Universal Principles of Design
The usability of a system is improved when similar parts are expressed in similar ways. “
**
Define pa\erns
**
**
Layering Universal Principles of Design
The process of organizing informa5on into related groupings in order to manage complexity and reinforce rela5onships in the informa5on.
“
**
**
Constraint Universal Principles of Design
A method of limi5ng the ac5ons that can be performed on a system. “
**
/statuses/public_timeline.json
Twi\er v1:
/statuses/public_timeline.xml
**
/statuses/public_timeline.json
Twi\er v1.1
**
Eliminate unnecessary choices
**
Development Cycle
Requirements 80/20 Flexibility vs. Usability Trade-‐off
Design Consistency Layering Constraints
Development Inverted Pyramid Errors Visibility
Tes5ng Signal to Noise Ra5o Validate
**
Share our domain knowledge
**
**
**
**
**
Share our API knowledge
**
**
**
**
Inverted Pyramid Universal Principles of Design
A method of informa5on presenta5on in which informa5on is presented in descending order of importance. “
**
Does alphabet soup taste good?
**
List resources by importance
**
**
**
**
Errors Universal Principles of Design
An ac5on or omission of ac5on yielding an unintended consequence. “
**
Make it easy to learn from mistakes
**
**
**
**
Visibility Universal Principles of Design
The usability of a system is improved when its status and methods of use are clearly visible. “
**
Be transparent and human
**
**
**
**
Development Cycle
Requirements 80/20 Flexibility vs. Usability Trade-‐off
Design Consistency Layering Constraints
Development Inverted Pyramid Errors Visibility
Tes5ng Signal to Noise Ra5o Validate
**
Ask for input, give data
**
**
**
**
Signal-‐to-‐Noise Ra5o Universal Principles of Design
The ra5o of relevant to irrelevant informa5on in a display. The highest possible signal-‐to-‐noise ra5o is desirable in design.
“
**
Maintain clarity.
**
Tip: Verify design principles as well as correctness.
**
Universal Principles of Design
• Educate others about our domain
• Cer5fy our partner developers
• Inspire with an app gallery
• Guide the design of apps
• List the objects in our system
• Engage developers with an API console
• Be accessible via forums, social media & email
• Receive bugs & feature requests directly from developers
• Show each developer his API data
• Respond with HTTP status codes for apps
• Respond with verbose messages for app developers
• Create social error pages with details and hints
• Favor flexibility
• Op5mize usability
• Eliminate unnecessary choices
• Invest in highly-‐used features
• Fix high-‐impact bugs
• List resources by importance
Ques5ons
groups.google.com/group/api-‐cra?
THANK YOU Ques%ons and ideas to: @kevinswiber @13protons groups.google.com/group/api-‐cra?