The document discusses developer experience (DX) with application programming interfaces (APIs) and platforms. It begins by introducing DX and its relationship to user experience and development practices. It then discusses evaluating DX from the perspectives of both API users and owners. The document outlines features to consider when measuring DX, organized into eight groups, and provides examples to illustrate both good and bad DX. It argues that DX will become increasingly important as more functionality is delivered via external APIs and services.
15. INTENTO
BAD DX
it eats your time ⌛
it drains your battery 😩
it makes you unhappy 😿
it lowers down your productivity 🤯
!15
16. INTENTO
TERRIBLE DX
One need a local bank card to pay for smth
It requires a local phone number to register
One need to sign NDA to read an API spec
!16
19. INTENTO
1. If you are a platform user,
choose the right experience
2. If you are a platform owner,
provide the right experience
!19
20. INTENTO
1. CHOOSE THE RIGHT THINGS
• Compare options (measure, get some numbers)
• Predict what will slow you down in the future
• Pick the most satisfying option
• Start using it, get more insights
• Update your prediction; consider changing the option
!20
22. INTENTO
2. PROVIDE THE RIGHT EXPERIENCE
• Get into your users’ heads, analyse their problems
• Pick one of the issues, come up with a solution
• Implement, provide
• Listen to the feedback
• See if it eases the pain, analyse again
• Update implementation
!22
30. INTENTO
MORE FEATURES
•Smart watch support
•Chinese language and regions
•Cache layers for offline use
•Integrate with users’ personal profiles
•Legal constraints
!30
37. INTENTO
A QUICK EXAMPLE
• A biomed texts translator (a person)
• CAT* for translating biomed articles (a piece of [desktop] software)
• Some cloud service supporting the CAT tool
• Machine translation APIs as cloud services
• Trained models in the biomed domain trained for NMT**
• Cloud services for hosting all of it (...and even more layers)
!37
* Computer-assisted translation
** Neural Machine Translation
40. INTENTO
2. PROVIDE THE RIGHT EXPERIENCE
• Get into your users’ heads, analyse their problems
• Pick one of the issues, come up with a solution
• Implement, provide
• Listen to the feedback
• See if it eases the pain, analyse again
• Update implementation
!40
41. INTENTO
!41
INTENTO
From State of the Machine Translation by Intento (July 2018)
https://bit.ly/mt_jul2018 19 Cloud MT engines, 48 language pairs
42. INTENTO
~70 FEATURES → 8 GROUPS
• Product features
• API design
• Documentation
• Onboarding
!42
• Commercial
• Implementation
• Maintenance
• Reliability
67. INTENTO
MATCH RESULTS
• Each team role has at least one link with some DX feature
• Each DX feature is connected with some team roles
• So the DX features list is probably good enough
for measuring DX
!67
69. INTENTO
LET’S USE A TEMPLATE
• Some
• Incomplete
• Features
!69
• What
• …is this
• …for me?
70. INTENTO
1/8 MISSING PRODUCT FEATURES
• No batch input
• Missing support for some
popular formats
!70
• Need to add these features
on your own
• Complications with adding
another service to your
stack
71. INTENTO
2/8 QUESTIONABLE API DESIGN
• Non-intuitive URI format
• Ignoring standards like
REST
• Non-encrypted traffic
• No quota info available
through API requests
!71
• Spending lots of time
investigating custom
interfaces
• Potential problems with
sensitive data
• Manual checks will slow
down any automation
process
72. INTENTO
3/8 INCOMPLETE DOCUMENTATION
• Vague error messages
• Hidden features
• No API explorer *
!72
• More time for debugging
• Requires own environment
to run experiments in
* OpenAPI / swagger is super easy to add. Well, almost like that.
73. INTENTO
4/8 ENTRY BARRIER
• Weird Sign up or paywall
• Too easy or too complex
tutorials or code samples
• No official SDKs
• Unavailable direct support
or ticket system
!73
74. INTENTO
5/8 OBSCURE COMMERCIAL CONDITIONS
• No public pricing
• No billing history
• Just too expensive
!74
• Money losses on start
• Extra checks for correct
payments
• High-risk decision making
75. INTENTO
6/8 SUSPICIOUS IMPLEMENTATION
• Non-standard API spec
• Non-standard response/
request format
• Problems with unicode
support or HTTP
compression
!75
• More time to get familiar
with another part of
functionality
• Or even write your own
spec above non-standard
one
• Write own adapters for
response format, etc.
76. INTENTO
7/8 CARELESS MAINTENANCE
• No versioning
• No release notes
• No roadmap
• No news feed with updates
!76
• Hard time for supporting
unexpected changes
• Manually monitor potential
updates
• Stick to an old version due
to unclear changes in the
new one
77. INTENTO
8/8 UNRELIABILITY
• Observed outages
• Observed sporadic errors
• No SLA
!77
• Deal with urgent bugs on
your side
• Manually discover service
limits
79. INTENTO
FUTURE IS HERE
• More and more stuff is likely to be delegated
to external API services since in-house development
is expensive in many ways
• AI is fun https://aijs.rocks/
• Tensorflow.js is waiting for you
• Everyone is half-step away from using AI services
as an everyday tool on a daily basis
!79
80. INTENTO
READ IT LATER
• https://blog.inten.to/measuring-api-developer-experience-91b5c19645b0
• https://www.infoq.com/news/2015/10/api-developer-experience
• https://nordicapis.com/why-api-developer-experience-matters-more-than-
ever/
• https://hackernoon.com/the-best-practices-for-a-great-developer-
experience-dx-9036834382b0
• https://www.slideshare.net/jmusser/ten-reasons-developershateyourapi
!80