Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra
Applying Design Principles to API Initiatives
-
Upload
apigee -
Category
Technology
-
view
4.366 -
download
1
description
Transcript of Applying Design Principles to API Initiatives
![Page 1: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/1.jpg)
Applying Universal Design Principles to API Ini5a5ves
Apigee @apigee
Kevin Swiber @kevinswiber Alan Languirand @13protons
![Page 2: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/2.jpg)
groups.google.com/group/api-craft
![Page 3: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/3.jpg)
youtube.com/apigee
![Page 4: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/4.jpg)
slideshare.net/apigee
![Page 5: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/5.jpg)
@13protons Alan Languirand
@kevinswiber Kevin Swiber
![Page 6: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/6.jpg)
**amazon.com
![Page 7: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/7.jpg)
**
Development Cycle Universal Principles of Design
Successful products typically follow four stages of crea5on: requirements, design, development, and tes5ng. “
![Page 8: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/8.jpg)
**
Development Cycle
Requirements
Design
Development
Tes5ng
![Page 9: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/9.jpg)
**
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
![Page 10: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/10.jpg)
App User
API Team API App World of
APIs App
Store Internal Systems
App Developer
Applica5on Developers are Kingmakers
![Page 11: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/11.jpg)
**
Ques5ons to ask at each phase:
• What is the app developer doing?
• How can we help?
![Page 12: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/12.jpg)
**
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
![Page 13: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/13.jpg)
**
80/20 Rule Universal Principles of Design
A high percentage of effects in any large system are caused by a low percentage of variables. “
![Page 14: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/14.jpg)
**
Invest in highly-‐used features
![Page 15: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/15.jpg)
**
Fix high-‐impact bugs
![Page 16: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/16.jpg)
**
Flexibility-‐Usability Tradeoff Universal Principles of Design
As the flexibility of a system increases, its usability decreases. “
![Page 17: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/17.jpg)
**
Many op5ons vs. quick adop5on
![Page 18: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/18.jpg)
**
Start with a well-‐defined use case
![Page 19: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/19.jpg)
**
Iterate to greater flexibility
![Page 20: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/20.jpg)
**
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
![Page 21: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/21.jpg)
**
Point the way
![Page 22: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/22.jpg)
**
![Page 23: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/23.jpg)
**
Consistency Universal Principles of Design
The usability of a system is improved when similar parts are expressed in similar ways. “
![Page 24: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/24.jpg)
**
Define pa\erns
![Page 25: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/25.jpg)
**
![Page 26: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/26.jpg)
**
Layering Universal Principles of Design
The process of organizing informa5on into related groupings in order to manage complexity and reinforce rela5onships in the informa5on.
“
![Page 27: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/27.jpg)
**
![Page 28: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/28.jpg)
**
Constraint Universal Principles of Design
A method of limi5ng the ac5ons that can be performed on a system. “
![Page 29: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/29.jpg)
**
/statuses/public_timeline.json
Twi\er v1:
/statuses/public_timeline.xml
![Page 30: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/30.jpg)
**
/statuses/public_timeline.json
Twi\er v1.1
![Page 31: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/31.jpg)
**
Eliminate unnecessary choices
![Page 32: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/32.jpg)
**
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
![Page 33: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/33.jpg)
**
Share our domain knowledge
![Page 34: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/34.jpg)
**
![Page 35: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/35.jpg)
**
![Page 36: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/36.jpg)
**
![Page 37: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/37.jpg)
**
![Page 38: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/38.jpg)
**
Share our API knowledge
![Page 39: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/39.jpg)
**
![Page 40: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/40.jpg)
**
![Page 41: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/41.jpg)
**
![Page 42: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/42.jpg)
**
Inverted Pyramid Universal Principles of Design
A method of informa5on presenta5on in which informa5on is presented in descending order of importance. “
![Page 43: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/43.jpg)
**
Does alphabet soup taste good?
![Page 44: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/44.jpg)
**
List resources by importance
![Page 45: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/45.jpg)
**
![Page 46: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/46.jpg)
**
![Page 47: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/47.jpg)
**
![Page 48: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/48.jpg)
**
Errors Universal Principles of Design
An ac5on or omission of ac5on yielding an unintended consequence. “
![Page 49: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/49.jpg)
**
Make it easy to learn from mistakes
![Page 50: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/50.jpg)
**
![Page 51: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/51.jpg)
**
![Page 52: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/52.jpg)
**
![Page 53: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/53.jpg)
**
Visibility Universal Principles of Design
The usability of a system is improved when its status and methods of use are clearly visible. “
![Page 54: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/54.jpg)
**
Be transparent and human
![Page 55: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/55.jpg)
**
![Page 56: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/56.jpg)
**
![Page 57: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/57.jpg)
**
![Page 58: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/58.jpg)
**
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
![Page 59: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/59.jpg)
**
Ask for input, give data
![Page 60: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/60.jpg)
**
![Page 61: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/61.jpg)
**
![Page 62: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/62.jpg)
**
![Page 63: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/63.jpg)
**
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.
“
![Page 64: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/64.jpg)
**
Maintain clarity.
![Page 65: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/65.jpg)
**
Tip: Verify design principles as well as correctness.
![Page 66: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/66.jpg)
**
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
![Page 67: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/67.jpg)
Ques5ons
![Page 68: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/68.jpg)
groups.google.com/group/api-‐cra?
![Page 69: Applying Design Principles to API Initiatives](https://reader033.fdocuments.in/reader033/viewer/2022051514/5493a236b47959384d8b4880/html5/thumbnails/69.jpg)
THANK YOU Ques%ons and ideas to: @kevinswiber @13protons groups.google.com/group/api-‐cra?