Upload
ca-api-management
View
844
Download
1
Tags:
Embed Size (px)
Citation preview
Developers are People Too!Ronnie Mitra@[email protected]
Developers are People Too
User Experience
We continually have experiences as we use products in our day to day lives. Theese experiences can be both positive or negative and they shape the way we percieve the products that we that we use.
User Experience or UX based design invovles creating experiences that are positive for the user. We can apply this idea to the world of APIs and gain a positive outcome.
Of course in our world developers are our users, so we can be more specific and describe…
slide 12 of 142
Developers are People Too
Developer Experience!
slide 13 of 142
Developers are People Too
Ronnie Mitra
I work for Layer 7
- A CA technologies company
- I am an API Architect in Layer 7’s API Academy
- I was born in Toronto, Canada (remove this line)
I now live in London, England
slide 2 of 142
Just kidding.
Was that uncomfortable?Why?
Aesthetics
Interaction
Structure
a poor experience overall
regardless of the content
An API Scenario….
I want to add weather forecast data to my mobile app. An API
should help!
http://www.southparkstudios.co.uk/avatar
I’m having trouble finding an API that does what I want.
http://www.southparkstudios.co.uk/avatar
the registration process is a nightmare!
http://www.southparkstudios.co.uk/avatar
What is XML-RPC? I don’t even have an XML parser!
http://www.southparkstudios.co.uk/avatar
http://www.southparkstudios.co.uk/avatar
Why is everything in fahrenheit!?
small annoyances add up to create a poor experience
designing an API is easy effective API design is difficult
effective == meeting our design and business goals
Priority:Lower Cost
Priority:Increased Adoption
http://www.flickr.com/photos/nirufe/3469696707
My API
Style?XML? JSON?Representations?Resources?Security?Streaming?
A user experience based approach can help
Functionality
Usability
Experience
Experience
Usability
Functionality
What does the API do?Where is it located?
How reliable is the implementation?
The stereotypical SOA approach
Functionality focusedEverything is a service
Service catalogMake people use it
Experience
Functionality
Usability
How do I use the API?How easy is it for me to accomplish my own goals?
How much of my time do I need to commit?
The API Revolution
Developer focusedDeployed in competitive markets
Don’t forget:Usefulness > Usability
Functionality
Usability
Experience
How does using the API make me feel?
Developer Experience (DX):
1. the sum of interactions between the developer and an API owner
Developer Experience (DX):
1. the sum of interactions between the developer and an API owner
2. the emotive impact of API usage on the developer
Understanding API Interactions
API
functionality
Portal
API
usability
API
experience
Portal
API
API
who are our users?
Josh
I blog, I tweet, I code and I swear.
Age: 25Occupation: Web/Mobile Developer
Technical Profile: 7 years experience, hackathon champion, JavaScript and objective-c expert. Hates XML.
http://www.southparkstudios.com/avatar
why are we always building APIs for Josh?
Tony
I’m never leaving this company.
Age: 45Occupation: Enterprise Developer
Technical Profile: 27 years industry experience, skilled in Java, VB, COBOL. Knows the backend system better than you do.
You can’t design for usability if you don’t know who is using your API
Human Computer Interaction
source: Brad A. Myers. "A Brief History of Human Computer Interaction Technology." ACM interactions. Vol. 5, no. 2, March, 1998. pp. 44-54.
Where is our Fitts’ Law?
Are we just feeling around in the dark?
We have lots of usability and UX guidance
We have API usability theory and guidance
Steven Clarke:Describing and Measuring API Usability with the
Cognitive Dimensions
Abstraction levelLearning style
Working frameworkWork-step unit
Progressive evaluationPremature commitment
PenetrabilityAPI elaboration
API viscosityConsistency
Role expressivenessDomain correspondence
Usability Aspects of a Web API (a work in progress)
Task : Invocation RatioStructure
NavigationDeveloper Stack Size
Time to First CallError Handling
Number of DecisionsLearnabilityVocabulary
Task:Invocation Ratio
How many calls does it take for the developer to accomplish their desired task?
Structure
How deep is the required data located?
What is the signal to noise ratio?
Navigation
How difficult is it to move from one result to another?
How difficult is it to locate a required datum?
Developer Stack Size
how many new components are needed?
Time to First Call
How quickly can a new user make their first API call?
Errors
Where are they?
How difficult are they to fix?
What is the nature of the error? (unpredicted result, invalid input, out of sequence, etc…)
Vocabulary
How many new concepts, terms, labels or keywords must be learned before an API can be successfully invoked.
Experience Aspects of an API (a work in progress)
Engagement
Pleasure
Familiarity
Trust
Safety
Task : Invocation Ratio
Structure
Navigation
Developer Stack Size
Time to First Call
Error Handling
Number of Decisions
Learnability
Vocabulary
+
Engagement Pleasure
Familiarity
Trust
Safety
=
Design the API
Establish Business Goals
Identify Design Goals and System Constraints
Identify Target Users
Define Interactions
Prototype
Observe
Design
Design the API
DX is not a feature
understanding your audience is the key to understanding their experience
design APIs for people not machines
API Management
virtual cloudon-premise
Layer 7 Demonstration
Tomorrow10:50
Katrinebergssalen
Want to see our products in action?
Developers are People Too!Ronnie Mitra@[email protected]