succeed with a developer-centric api strategy - ronnie mitra, principal api architect, layer 7 @...

87
Succeed with a Developer-centric API Strategy Ronnie Mitra Principal API Architect – Europe

Upload: ca-api-management

Post on 20-Aug-2015

708 views

Category:

Technology


0 download

TRANSCRIPT

Succeed with a Developer-centric API Strategy

Ronnie MitraPrincipal API Architect – Europe

API Management

virtual cloudon-premise

Strategy

Identify goal(s)

Define activities that support the goal

Your API is not your strategy

Your API enables your strategy

Innovation

Consumer Reach

Revenue Source

Marketing

Integration

Light Bulb designed by Jean-Philippe Cabaroc from The Noun Project

API Strategy

Identify goalDefine activities that support the goal

Priority:Lower Cost

Priority:Increased Adoption

Developer OutreachInterface DesignMarketingSupportVisibilityControlRegistrationChange Management

Lots of Dials

Good strategy involves making decisions

http://www.flickr.com/photos/nirufe/3469696707

My API Strategy

A developer-centric approach will help you make decisions.

Product Design

Interaction Design

Bill Moggridge

UsabilityHuman-Computer-Interaction

User Experience DesignGoal Oriented Design

http://www.flickr.com/photos/58754750@N08/5541472392/

A user-centric view improves product design.

A developer-centric view improves API design.

three forms of design

Functionality

Usability

Experience

Experience

Usability

Functionality

What does the API do?Where is it located?

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

sometimes experience can trump usability

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

API Interactions

Dev

Portal

API

API

Dev

Portal

is a developer-centric strategy obvious?

why is it difficult to design usable APIs?

We project our own perspective.

We project our own biases.

We make bad assumptions

We lack the time, money or incentive.

Reason #1We project our own perspective.

External Perspective Internal Perspective

Reason #2We project our own biases.

Never use SOAP?Why?

Consider keyboards…

http://www.flickr.com/photos/yvettemn/139890573/

http://www.flickr.com/photos/jonathanpberger/7126054997/

http://www.flickr.com/photos/novemberborn/286773981/

OR

It doesn’t matter that you don’t like SOAP.

What matters is what your developer base thinks!

(and what the business objective is)

Reason #3We make bad assumptions.

API publishers are also developers.

“I built a mobile app once.”may not qualify you to understand

your mobile developers

Reason #4We lack the time, money or

incentive for good design

“Best practices”, patterns and references become shortcuts

We project our own perspective.

We project our own biases.

We make bad assumptions

We lack the time, money or incentive.

overcoming the usability challenge

developer-centric design requires effort and diligence.

Mental Models

Mental Models

Design with the developer in mind.

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

Prototype

Observe

Design

Design the API

try using your API from a developer perspective

Task : Invocation Ratio

Structure

Navigation

Developer Stack Size

Time to First Call

Error Handling

Number of Decisions

Learnability

Vocabulary

+

Engagement Pleasure

Familiarity

Trust

Safety

=

API Usability

Dev

Portal

API

Gateway

API

API

good API design is user-centric

is good security user-centric?

practical API design becomes a series of tradeoffs

What keeps API owners up at night…

Brand ControlData SecurityThreat PreventionResource ProtectionAvailability

the API strategy challenge – balancing control and usability

reduce usability impact (for our user)focus on experience (sum of interactions)use just as much security as we need

API Security

Dev

Portal

API

Gateway

API

API

API Management

Dev

Portal

API

Gateway

API

API

API Management

virtual cloudon-premise

Design for your users

Establish Business Goals

Establish API Goals

Identify Target Users

Succeed with a Developer-centric API Strategy

Ronnie MitraPrincipal API Architect – Europe