69
Applying Universal Design Principles to API Ini5a5ves Apigee @apigee Kevin Swiber @kevinswiber Alan Languirand @13protons

Applying Design Principles to API Initiatives

  • Upload
    apigee

  • View
    4.367

  • Download
    1

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Applying Design Principles to API Initiatives

 Applying  Universal  Design  Principles  to  API  Ini5a5ves    

Apigee @apigee

Kevin Swiber @kevinswiber Alan Languirand @13protons

Page 2: Applying Design Principles to API Initiatives

groups.google.com/group/api-craft

Page 3: Applying Design Principles to API Initiatives

youtube.com/apigee

Page 4: Applying Design Principles to API Initiatives

slideshare.net/apigee

Page 5: Applying Design Principles to API Initiatives

@13protons  Alan  Languirand  

@kevinswiber  Kevin  Swiber  

Page 6: Applying Design Principles to API Initiatives

**amazon.com  

Page 7: Applying Design Principles to API Initiatives

**

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

**

Development  Cycle  

Requirements    

Design    

Development    

Tes5ng    

Page 9: Applying Design Principles to API Initiatives

**

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

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

**

Ques5ons  to  ask  at  each  phase:  

•   What  is  the  app  developer  doing?  

•   How  can  we  help?  

Page 12: Applying Design Principles to API Initiatives

**

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

**

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

**

Invest  in  highly-­‐used  features  

Page 15: Applying Design Principles to API Initiatives

**

Fix  high-­‐impact  bugs  

Page 16: Applying Design Principles to API Initiatives

**

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

**

Many  op5ons  vs.  quick  adop5on  

Page 18: Applying Design Principles to API Initiatives

**

Start  with  a  well-­‐defined  use  case  

Page 19: Applying Design Principles to API Initiatives

**

Iterate  to  greater  flexibility  

Page 20: Applying Design Principles to API Initiatives

**

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

**

Point  the  way  

Page 22: Applying Design Principles to API Initiatives

**

Page 23: Applying Design Principles to API Initiatives

**

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

**

Define  pa\erns  

Page 25: Applying Design Principles to API Initiatives

**

Page 26: Applying Design Principles to API Initiatives

**

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

**

Page 28: Applying Design Principles to API Initiatives

**

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

**

/statuses/public_timeline.json

Twi\er  v1:  

/statuses/public_timeline.xml

Page 30: Applying Design Principles to API Initiatives

**

/statuses/public_timeline.json

Twi\er  v1.1  

Page 31: Applying Design Principles to API Initiatives

**

Eliminate  unnecessary  choices  

Page 32: Applying Design Principles to API Initiatives

**

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

**

Share  our  domain  knowledge  

Page 34: Applying Design Principles to API Initiatives

**

Page 35: Applying Design Principles to API Initiatives

**

Page 36: Applying Design Principles to API Initiatives

**

Page 37: Applying Design Principles to API Initiatives

**

Page 38: Applying Design Principles to API Initiatives

**

Share  our  API  knowledge  

Page 39: Applying Design Principles to API Initiatives

**

Page 40: Applying Design Principles to API Initiatives

**

Page 41: Applying Design Principles to API Initiatives

**

Page 42: Applying Design Principles to API Initiatives

**

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

**

Does  alphabet  soup  taste  good?  

Page 44: Applying Design Principles to API Initiatives

**

List  resources  by  importance  

Page 45: Applying Design Principles to API Initiatives

**

Page 46: Applying Design Principles to API Initiatives

**

Page 47: Applying Design Principles to API Initiatives

**

Page 48: Applying Design Principles to API Initiatives

**

Errors  Universal  Principles  of  Design  

An  ac5on  or  omission  of  ac5on  yielding  an  unintended  consequence.  “

Page 49: Applying Design Principles to API Initiatives

**

Make  it  easy  to  learn  from  mistakes  

Page 50: Applying Design Principles to API Initiatives

**

Page 51: Applying Design Principles to API Initiatives

**

Page 52: Applying Design Principles to API Initiatives

**

Page 53: Applying Design Principles to API Initiatives

**

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

**

Be  transparent  and  human  

Page 55: Applying Design Principles to API Initiatives

**

Page 56: Applying Design Principles to API Initiatives

**

Page 57: Applying Design Principles to API Initiatives

**

Page 58: Applying Design Principles to API Initiatives

**

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

**

Ask  for  input,  give  data  

Page 60: Applying Design Principles to API Initiatives

**

Page 61: Applying Design Principles to API Initiatives

**

Page 62: Applying Design Principles to API Initiatives

**

Page 63: Applying Design Principles to API Initiatives

**

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

**

Maintain  clarity.  

Page 65: Applying Design Principles to API Initiatives

**

Tip:  Verify  design  principles  as  well  as  correctness.  

Page 66: Applying Design Principles to API Initiatives

**

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

Ques5ons  

Page 68: Applying Design Principles to API Initiatives

groups.google.com/group/api-­‐cra?  

Page 69: Applying Design Principles to API Initiatives

THANK  YOU    Ques%ons  and  ideas  to:  @kevinswiber  @13protons    groups.google.com/group/api-­‐cra?