Developers are People Too! Building a DX-Based API Strategy Ronnie Mitra, Principal API Architect,...

Preview:

Citation preview

Developers are People Too!Ronnie Mitra@mitramanrmitra@layer7tech.com

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@mitramanrmitra@layer7tech.com