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.
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
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/
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.
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