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

112
Designing great APIs Learning from Jonathan Ive, Orwell, and the Kano Model by Jon Dahl misc at Brightcove

description

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.

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

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

Designing great APIs

Learning fromJonathan Ive,Orwell, and the Kano Model

by Jon Dahl misc at Brightcove

Page 2: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Page 3: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Page 4: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Page 5: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model

API

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

API

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

API is an interface

Page 8: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Page 9: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Page 10: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model

Two users

Page 11: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Page 12: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Page 13: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model

What does this user want?

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

What does this user want?

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

API Design

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

George OrwellDieter RamsKano Model

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

George Orwell WritingDieter Rams Industrial DesignKano Model Product

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

Five guiding principles

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

Specific examples

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

Discuss

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

GeorgeOrwell

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

POST /things

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

USA Patriot Act

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

Expanded Surveillance Act

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

Propaganda

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

While freely conceding that the Soviet regime exhibits certain features which the humanitarian may be inclined to deplore, we must, I think, agree that a certain curtailment of the right to political opposition is an unavoidable concomitant of transitional periods, and that the rigors which the Russian people have been called upon to undergo have been amply justified in the sphere of concrete achievement.

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

I am not, indeed, sure whether it is not true to say that the Milton who once seemed not unlike a seventeenth-century Shelley had not become, out of an experience ever more bitter in each year, more alien to the founder of that Jesuit sect which nothing could induce him to tolerate.

Harold Laski, Essay in Freedom of Expression

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

I am not, indeed, sure whether it is not true to say that the Milton who once seemed not unlike a seventeenth-century Shelley had not become, out of an experience ever more bitter in each year, more alien to the founder of that Jesuit sect which nothing could induce him to tolerate.

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

I am not, indeed, sure whether it is not true to say that the Milton who once seemed not unlike a seventeenth-century Shelley had not become, out of an experience ever more bitter in each year, more alien to the founder of that Jesuit sect which nothing could induce him to tolerate.

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

1. Never use a metaphor, simile, or other figure of speech which you are used to seeing in print.

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

2. Never use a long word where a short one will do.

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

3. If it is possible to cut a word out, always cut it out.

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

4. Never use the passive where you can use the active.

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

5. Never use a foreign phrase, a scientific word, or a jargon word if you can think of an everyday English equivalent.

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

6. Break any of these rules sooner than say anything outright barbarous.

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

Five guiding principles1. minimalism

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

Five guiding principles1. minimalism2. get out of the way

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

REST

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

Consistency

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

401 Unauthorized403 Forbidden

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

Dieter Rams

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

Jonathan Ive

Page 46: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Page 47: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Page 48: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Page 49: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Page 50: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Page 51: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model

Objectified (2009)

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

Five guiding principles1. minimalism2. get out of the way3. design for extremes

Page 54: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Page 55: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Page 56: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Page 57: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Page 58: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Page 59: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Page 60: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model

Dim strPname As StringDim dblPrice As Double

Page 61: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Page 62: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Page 63: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model

POST /api/jobs HTTP/1.1Accept: application/jsonContent-Type: application/json

{ "api_key" : "does not exist", "color" : "green"}

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

HTTP/1.1 500 Internal Server Error

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

HTTP/1.1 401 Unauthorized

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

HTTP/1.1 401 Unauthorized

{ "errors": [ "api_key not found" ]}

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

HTTP/1.1 401 Unauthorized

{ "errors": [ "api_key not found.", "api_key may not include spaces." ]}

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

HTTP/1.1 401 Unauthorized

{ "errors": [ "api_key not found. Please log in to https://example.com/account/api to retrieve your API key.", "api_key may not include spaces." ]}

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

POST /api/user HTTP/1.1Accept: application/jsonContent-Type: application/json

{ "api_key" : "A23B92F281CC" "strength" : 18}

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

HTTP/1.1 400 Bad Request

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

HTTP/1.1 400 Bad Request

{ "errors": [ "JSON is not valid. Syntax error, unexpected TSTRING, expecting '}' at line 2" ]}

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

HTTP/1.1 200 OK

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

HTTP/1.1 503 Service Unavailable

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

HTTP/1.1 408 Request Timeout

Page 76: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Page 77: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Page 78: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Page 80: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model

913ebf20417e434390d56ccd81e54d1c

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

Five guiding principles1. minimalism2. get out of the way3. design for extremes4. be predictable

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

How do you charge money with Stripe?

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

What is the URL?What are the params?

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

curl https://api.stripe.com/v1/charges \ -u my_api_key: \ -d amount=20 \ -d currency=usd \ -d customer=12093155

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

KanoModel

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

NoriakiKano

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

NoriakiKano

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

Basic needs (must have)

Page 91: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Page 92: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Page 93: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Page 94: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model

Performance needs(one-dimensional)

Page 95: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Page 96: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Page 97: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model

Indifferent(don’t care)

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

Delighters(attractive, exciting)

Page 100: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Page 101: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Page 102: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Page 103: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Page 104: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Page 105: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model
Page 106: Designing Great APIs: Learning from Jony Ive, Orwell, and the Kano Model

Support

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

Focus on delight andperformance

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

Five guiding principles1. minimalism2. get out of the way3. design for extremes4. be predictable

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

Five guiding principles1. minimalism2. get out of the way3. design for extremes4. be predictable5. excite users

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

What do you think?

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

Thanks!

by Jon Dahl misc at Brightcove