Your SlideShare is downloading. ×
0
Designinggreat APIs Learning fromJonathan Ive,Orwell, andthe Kano Modelby Jon Dahlmisc at Brightcove
API
API
API is an interface
Two users
What does this user want?
What does this user want?
API Design
George OrwellDieter RamsKano Model
George Orwell WritingDieter Rams Industrial DesignKano Model Product
Five guiding principles
Specific examples
Discuss
GeorgeOrwell
POST /things
USA Patriot Act
ExpandedSurveillance Act
Propaganda
While freely conceding that the Sovietregime exhibits certain features whichthe humanitarian may be inclined todeplore, we...
I am not, indeed, sure whether it is nottrue to say that the Milton who onceseemed not unlike a seventeenth-centuryShelley...
I am not, indeed, sure whether it is nottrue to say that the Milton who onceseemed not unlike a seventeenth-centuryShelley...
I am not, indeed, sure whether it is nottrue to say that the Milton who onceseemed not unlike a seventeenth-centuryShelley...
1. Never use a metaphor, simile,or other figure of speech whichyou are used to seeing in print.
2. Never use a long word where ashort one will do.
3. If it is possible to cut a wordout, always cut it out.
4. Never use the passive whereyou can use the active.
5. Never use a foreign phrase, ascientific word, or a jargon word ifyou can think of an everydayEnglish equivalent.
6. Break any of these rules soonerthan say anything outrightbarbarous.
Five guiding principles1. minimalism
Five guiding principles1. minimalism2. get out of the way
REST
Consistency
401 Unauthorized403 Forbidden
Dieter Rams
JonathanIve
Objectified (2009)
Five guiding principles1. minimalism2. get out of the way3. design for extremes
Dim strPname As StringDim dblPrice As Double
POST /api/jobs HTTP/1.1Accept: application/jsonContent-Type: application/json{"api_key" : "does not exist","color" : "gree...
HTTP/1.1 500 Internal Server Error
HTTP/1.1 401 Unauthorized
HTTP/1.1 401 Unauthorized{"errors": ["api_key not found"]}
HTTP/1.1 401 Unauthorized{"errors": ["api_key not found.","api_key may not include spaces."]}
HTTP/1.1 401 Unauthorized{"errors": ["api_key not found. Please log in to https://example.com/account/api to retrieve your...
POST /api/user HTTP/1.1Accept: application/jsonContent-Type: application/json{"api_key" : "A23B92F281CC""strength" : 18}
HTTP/1.1 400 Bad Request
HTTP/1.1 400 Bad Request{"errors": ["JSON is not valid. Syntax error,unexpected TSTRING, expecting }at line 2"]}
HTTP/1.1 200 OK
HTTP/1.1 503 Service Unavailable
HTTP/1.1 408 Request Timeout
https://api.example.com/v1
913ebf20417e434390d56ccd81e54d1c
Five guiding principles1. minimalism2. get out of the way3. design for extremes4. be predictable
How do youcharge moneywith Stripe?
What is the URL?What are the params?
curl https://api.stripe.com/v1/charges -u my_api_key: -d amount=20 -d currency=usd -d customer=12093155
KanoModel
NoriakiKano
NoriakiKano
Basic needs(must have)
Performance needs(one-dimensional)
Indifferent(don’t care)
Delighters(attractive, exciting)
Support
Focus ondelight andperformance
Five guiding principles1. minimalism2. get out of the way3. design for extremes4. be predictable
Five guiding principles1. minimalism2. get out of the way3. design for extremes4. be predictable5. excite users
What do you think?
Thanks!by Jon Dahlmisc at Brightcove
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Upcoming SlideShare
Loading in...5
×

Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model

1,169

Published on

APIs are interfaces, just like UIs. But while a website or a mobile app is designed to be used by a consumer, an API has two very specific audiences in mind: other systems, and the programmers who build them.
A well-designed API can make or break an application. So how do developers build great APIs? What design principles should be followed? We will discuss these questions based on the work of thinkers in the areas of industrial design, writing, and a product development theory.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,169
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model"

  1. 1. Designinggreat APIs Learning fromJonathan Ive,Orwell, andthe Kano Modelby Jon Dahlmisc at Brightcove
  2. 2. API
  3. 3. API
  4. 4. API is an interface
  5. 5. Two users
  6. 6. What does this user want?
  7. 7. What does this user want?
  8. 8. API Design
  9. 9. George OrwellDieter RamsKano Model
  10. 10. George Orwell WritingDieter Rams Industrial DesignKano Model Product
  11. 11. Five guiding principles
  12. 12. Specific examples
  13. 13. Discuss
  14. 14. GeorgeOrwell
  15. 15. POST /things
  16. 16. USA Patriot Act
  17. 17. ExpandedSurveillance Act
  18. 18. Propaganda
  19. 19. While freely conceding that the Sovietregime exhibits certain features whichthe humanitarian may be inclined todeplore, we must, I think, agree that acertain curtailment of the right to politicalopposition is an unavoidableconcomitant of transitional periods, andthat the rigors which the Russian peoplehave been called upon to undergo havebeen amply justified in the sphere ofconcrete achievement.
  20. 20. I am not, indeed, sure whether it is nottrue to say that the Milton who onceseemed not unlike a seventeenth-centuryShelley had not become, out of anexperience ever more bitter in each year,more alien to the founder of that Jesuitsect which nothing could induce him totolerate.Harold Laski, Essay in Freedom of Expression
  21. 21. I am not, indeed, sure whether it is nottrue to say that the Milton who onceseemed not unlike a seventeenth-centuryShelley had not become, out of anexperience ever more bitter in each year,more alien to the founder of that Jesuitsect which nothing could induce him totolerate.
  22. 22. I am not, indeed, sure whether it is nottrue to say that the Milton who onceseemed not unlike a seventeenth-centuryShelley had not become, out of anexperience ever more bitter in each year,more alien to the founder of that Jesuitsect which nothing could induce him totolerate.
  23. 23. 1. Never use a metaphor, simile,or other figure of speech whichyou are used to seeing in print.
  24. 24. 2. Never use a long word where ashort one will do.
  25. 25. 3. If it is possible to cut a wordout, always cut it out.
  26. 26. 4. Never use the passive whereyou can use the active.
  27. 27. 5. Never use a foreign phrase, ascientific word, or a jargon word ifyou can think of an everydayEnglish equivalent.
  28. 28. 6. Break any of these rules soonerthan say anything outrightbarbarous.
  29. 29. Five guiding principles1. minimalism
  30. 30. Five guiding principles1. minimalism2. get out of the way
  31. 31. REST
  32. 32. Consistency
  33. 33. 401 Unauthorized403 Forbidden
  34. 34. Dieter Rams
  35. 35. JonathanIve
  36. 36. Objectified (2009)
  37. 37. Five guiding principles1. minimalism2. get out of the way3. design for extremes
  38. 38. Dim strPname As StringDim dblPrice As Double
  39. 39. POST /api/jobs HTTP/1.1Accept: application/jsonContent-Type: application/json{"api_key" : "does not exist","color" : "green"}
  40. 40. HTTP/1.1 500 Internal Server Error
  41. 41. HTTP/1.1 401 Unauthorized
  42. 42. HTTP/1.1 401 Unauthorized{"errors": ["api_key not found"]}
  43. 43. HTTP/1.1 401 Unauthorized{"errors": ["api_key not found.","api_key may not include spaces."]}
  44. 44. HTTP/1.1 401 Unauthorized{"errors": ["api_key not found. Please log in to https://example.com/account/api to retrieve your APIkey.","api_key may not include spaces."]}
  45. 45. POST /api/user HTTP/1.1Accept: application/jsonContent-Type: application/json{"api_key" : "A23B92F281CC""strength" : 18}
  46. 46. HTTP/1.1 400 Bad Request
  47. 47. HTTP/1.1 400 Bad Request{"errors": ["JSON is not valid. Syntax error,unexpected TSTRING, expecting }at line 2"]}
  48. 48. HTTP/1.1 200 OK
  49. 49. HTTP/1.1 503 Service Unavailable
  50. 50. HTTP/1.1 408 Request Timeout
  51. 51. https://api.example.com/v1
  52. 52. 913ebf20417e434390d56ccd81e54d1c
  53. 53. Five guiding principles1. minimalism2. get out of the way3. design for extremes4. be predictable
  54. 54. How do youcharge moneywith Stripe?
  55. 55. What is the URL?What are the params?
  56. 56. curl https://api.stripe.com/v1/charges -u my_api_key: -d amount=20 -d currency=usd -d customer=12093155
  57. 57. KanoModel
  58. 58. NoriakiKano
  59. 59. NoriakiKano
  60. 60. Basic needs(must have)
  61. 61. Performance needs(one-dimensional)
  62. 62. Indifferent(don’t care)
  63. 63. Delighters(attractive, exciting)
  64. 64. Support
  65. 65. Focus ondelight andperformance
  66. 66. Five guiding principles1. minimalism2. get out of the way3. design for extremes4. be predictable
  67. 67. Five guiding principles1. minimalism2. get out of the way3. design for extremes4. be predictable5. excite users
  68. 68. What do you think?
  69. 69. Thanks!by Jon Dahlmisc at Brightcove
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×