Developer Experience v2.1
Developer Experience v2.1
Nordic APIs
© 2022 Nordic APIs
Contents
Supported by Curity . . . . . . . . . . . . . . . . . . . . . i
9. Platform Consistency . . . . . . . . . . . . . . . . . . . 94
Be Consistent: Final Thoughts . . . . . . . . . . . . . . . 95
Supported by Curity
Nordic APIs was founded by Curity CEO Travis Spencer and has
continued to be supported by the company. Curity helps Nordic
APIs organize two strategic annual events, the Austin API Summit
in Texas and the Platform Summit in Stockholm.
Curity is a leading provider of API-driven identity management
that simplifies complexity and secures digital services for large
global enterprises. The Curity Identity Server is highly scalable, and
handles the complexities of the leading identity standards, making
them easier to use, customize, and deploy.
Through proven experience, IAM and API expertise, Curity builds
innovative solutions that provide secure authentication across
multiple digital services. Curity is trusted by large organizations
in many highly regulated industries, including financial services,
healthcare, telecom, retail, gaming, energy, and government
services across many countries.
Check out Curity’s library of learning resources on a variety of
topics, like API Security, OAuth, and Financial-grade APIs.
Follow us on Twitter and LinkedIn, and find out more on curity.io.
Preface: What Is
Developer Experience?
by Bill Doerrfeld
Developer-Facing Tools
Developer experience can encompass various developer-facing
tools, such as web APIs, cloud-based platforms, or open-source
projects. Some of these developer-facing tools and products
include:
It’s not just public SaaS that can benefit from DX — it’s in a
company’s best interest to ensure their internal tools have quality
developer experience too. Investing in DX can increase developer
satisfaction and reduce burnout, improving employee retention.
Popular public APIs continue to set the bar for developer experience
expectations. And although the particular focus of this eBook will
be on API user experience, these tenants could certainly be applied
to improve the developer experience of many other flavors of
software services.
The title of this post states that API onboarding is broken. That’s
not always entirely true, but API onboarding often does lag behind
some of the well-established funnels that exist in the SaaS space.
And, with APIs now being respected more as freestanding products,
there’s no excuse for that.
Fortunately, it appears that tools and systems are on the way (or
here already) to help API developers take their onboarding to the
next level.
Everything You Need To
Know About API
Discovery
by J Simpson
This leads to the question — how can you stand out in such a
crowded marketplace? What makes your API different from the
rest in the API directory? And if you’re a programmer, how are
you supposed to find the right API for your specific needs?
API discovery.
The ability to be found is one thing that determines if an API soars
or sinks like a stone. This means that API discovery is vital for your
API’s success.
We’ve put together a thorough guide to API discovery to help you
learn how to make your API stand out, get found, adopted, and
spread!
Document Properly
Incorporate SEO
Sandboxes also help developers learn how to use the service — this
is great for folks who prefer to learn through practice. For these
reasons, you should keep things as close to the real thing as possible;
a sluggish sandbox, for example, might deter some folks.
Maintaining a sandbox indeed has costs associated with it, although
you can grab a free trial from a service like Sandbox. However,
those costs could ultimately be an investment in your product.
For example, sandbox logs might help you identify pain points or
potential areas for growth.
Authentication
Authentication is one of the first things a user encounters when
using an API. Think of authentication as a key that will unlock
your API for your users. Almost every API features some sort of
authentication schema, and nearly every one is different.
To start, your API documentation needs to let users know how to
access your API. You can take a look at Auth0’s authentication docu-
mentation for an example of what thorough, concise authentication
documentation looks like.
Best Practices For Creating Useful API Documentation 25
API Resources
Users need to know what your API can do. List every endpoint with
standard commands and responses. Listing all of the commands and
responses helps you think like your end-users and create thorough,
understandable documentation for each response. Think of it like
diagramming your program and then creating documentation for
each step.
For example, check out the API documentation for WordPress.
WordPress offers a complete and thorough list of all available API
endpoints. Each command has its own page, with comprehensive
documentation of all of its context, queries, and error codes. Each
page has example code, as well, to offer some guidance on how to
get started with that particular feature.
Error Messages
Terms Of Use
Terms of Use are the legal agreement between you and your users.
In the Terms of Use section of your API documentation, you
should include API limits, constraints, branding guidelines, and
what usage is acceptable.
Changelog
Avoid Jargon
Remember, you have very little control over who’s going to be
consuming your API. There will be users of all different experience
levels using your API and reading your API documentation. You
want advanced and inexperienced users alike to be able to find both
your API and its documentation useful and welcoming.
Best Practices For Creating Useful API Documentation 29
You want users to be able to get up and running with your API as
quickly as possible, so they can see how useful it is. A quick guide
on how to get started using your API is the easiest way to make
this happen.
Best Practices For Creating Useful API Documentation 31
The fastest and easiest way to get a new user up and running with
your API is to include some sample code in your documentation.
The user simply needs to replace the API key in the sample code
with their own key and they’re off and running.
Sample code also gives developers a chance to see finished code
implementing your API that they can reverse engineer and pattern
their own programs after. You might consider having documenta-
tion for each individual section and then have sample code at the
end showing all of the functions at work.
Benefits
Examples
Ensure that your API sandbox is isolated from the rest of your plat-
form. A sandbox should allow developers to simulate the behavior
of your API; it shouldn’t, however, enable direct interaction with
your platform in the same way a production API would. If you’re
not careful with your sandbox, it might affect production systems,
expose real data, or contribute to billing confusion, so it’s best to
build your sandbox from the ground-up in an isolated environment.
4. Remember Authorization
If resources permit, take the time to review how your API sandbox
is used periodically. For one, looking at the sandbox’s logs may help
you to identify unexpected use patterns that you can go on to sup-
port. More importantly, looking at any frequently occurring errors
can highlight common pain points, especially in the onboarding
experience, which will improve retention when fixed.
8 Developer Experience
Anti-Patterns to Avoid
What does a negative developer experience look like? We recently
posed this question on Twitter and LinkedIn. The results were eye-
opening, highlighting some common problems that may cause a
developer to be wary of the service or abandon it altogether.
All developers stand to benefit by learning from others’ mistakes.
And these problems aren’t only relevant to public APIs, either. They
could arise within external, partner, or internal facing platforms. So
without further ado, here are eight examples of negative developer
experiences to watch out for, to help you build the best developer-
centric products imaginable.
2. Documentation in Non-Standardized
Formats
3. Lack Of Examples
4. Manual Integration
5. Lack Of Consistency
When you’re using an API, you really want to know what you’re
going to get — surprises are only fun on birthdays and holidays.
Specifically, API developers want to know that the service will work
every time in the way they expect.
API strategist Hirok Choudhury talked about this in response to our
LinkedIn post. According to Choudhury, poor developer experience
often arises when there’s a “lack of predictability, consistency
and simplicity while trying to discover and eventually subscribe
to an API.” Frequent revisions are another cause for concern for
Choudhury, which would also impact an API’s consistency.
For API developers, the message seems clear — it’s a good idea
to get your API as stable as possible before making it available to
the public. If you do need to make changes, use smart versioning
practices that prevent disruptions to your existing users.
What Does a Bad Developer Experience Look Like? 43
Monitor Time To First Call to ensure users can get started quickly
with your service.
We’ve all been there: you’re sorting through your smartphone and
find an app that you don’t even remember downloading. You open
it up, and, sure enough, you never finished creating an account.
With a couple of taps, you banish the app in question from your
phone forever.
You might not know it but, if you’re an API developer, the same
thing is probably happening to your product right now; some
people are signing up to your API and either never using it or letting
weeks, perhaps months, pass before they actually try it out.
We can refer to the time between the signup process and making
Why Time To First Call Is A Vital API Metric 46
an initial API call as Time To First Call, or TTFC. In this post, we’ll
be looking at why TTFC is such an important metric to track. We’ll
also see if there’s anything you can do to improve it. (Spoiler alert:
there is.)
You probably already have a rough idea in your head of how long
a typical customer takes to place their first call. And it’s always
interesting to see how that number lines up with reality.
Bear in mind that making a first call is very different from someone
becoming an active user. Reducing the former won’t necessarily
increase the latter, BUT it will likely increase your funnel’s number
of potential users. Or, at the very least, an optimized TTFC will
speed up the rate at which they make their way into it.
Why Time To First Call Is A Vital API Metric 48
Extensive Documentation
At the risk of becoming a broken record, we’re back at it again,
talking about the importance of great API documentation. The
Why Time To First Call Is A Vital API Metric 49
Joyce Lin article linked above mentions two case studies that cover
Vonage and Symbl.ai’s efforts to let users explore their APIs before
making calls.
Writing for Nordic APIs, Derric Gilling previously called Time
To First Hello World a north star metric for measuring developer
relations. Acting on the points above should reduce TTFC, though
it may not do so immediately, and that’s extremely valuable.
A lower TTFC is generally associated with a better developer
experience, which usually equates to better user retention, more
customers (and revenue), and a more robust API offering as a
whole.
product is developer-focused.
Rather than fight against this “build it myself” tendency, follow its
momentum. Your marketing can speak to the ideas already swirling
in developer minds. Take them down the path to build, run, and
maintain a service like yours. You aren’t promoting your API with
this marketing, at least not directly. Instead, you’re demonstrating
your authority as a company that knows how to solve these
problems.
I call this approach the Developer Content Mind Trick. It works in
all types of content, but especially shines as a deep, foundational
guide.
Developer Marketing for API Companies 55
4 Main Responsibilities of a
Developer Experience Team
At ShipEngine, our Developer Experience team exists to ensure
an exceptional experience for the developers and customers using
our API products. By focusing on these four primary areas of
responsibility, we’ve been able to design better features, champion
the interests of developers, translate feedback, and advise other
internal departments on how to better empathize with and design
for developers.
The four primary areas are:
1. API Design
2. Quality Assurance
With APIs, you always want to aim for quality through consistency!
To ensure an API product and developer tooling meet a high
standard of quality, the DX team must become responsible for
employing automated tests, linters, and processes that verify com-
pliance with designs, schemas, and style guides. Quality assurance
also involves the propagation of a culture of quality throughout the
design, product, and engineering teams. Types of Deliverables:
- Contract testing
- Specification testing
- Style guide compliance testing
- Verifying accuracy and clarity of docs and tooling
3. Developer Tooling
You want to give developers a chance to test out your API before
investing in full integration. So, providing a robust library of
developer tools is a great way to show not tell them how great you
are. Developers want and need schemas, code samples, reference
implementations, SDKs, and a variety of other resources to help
guide them through the build-out. Types of Deliverables:
- Code samples
- Demos / reference implementations
- SDKs and libraries
- Specifications, definitions, and schemas
- Internal tooling and automation
- Integrations with developer tools and services
4. Developer Relations
And finally, the role we (and users) are most familiar with. All
communications and interactions with developer customers, such
Why Your API Needs a Dedicated Developer Experience Team 64
Experts from our community share their top tips for improving
developer experience.
Developer Experience (DX) for developers is akin to User Experi-
ence (UX) for end-users. The API products that streamline DX tend
to increase interest and retain a following. But it’s not only public-
facing services; internal and partner APIs benefit from a focus on
DX as well.
Developer portals can achieve quality DX by adopting discover-
ability, quicker onboarding, and accurate documentation. But good
DX is ingrained into a well-designed API that follows best style
practices too. Developer advocates are necessary to address issues
Tips on Creating Outstanding Developer Experiences 66
and collect feedback to refine feature sets and create tutorials. This
is only a primer to the many facets of DX.
In this article, we dig into how to create outstanding developer
experiences for our APIs. To that end, we interviewed three ex-
perts in the field: James Messinger, Developer Experience Director,
ShipEngine, Derric Gilling, CEO, Moseif, and Srushtika Neelakan-
tam, Developer Advocate, Ably Realtime, to discover what they are
doing at their respective groups to enhance services for developer
users.
DX For Onboarding
The hallmark of DX is meeting your user’s needs, at whatever
stage they are at. During initial use, these needs fluctuate based
on the developer’s knowledge. But a general rule of thumb is to get
developers to “Hello World” as soon as possible.
According to James, a developer portal should adapt to the con-
sumer at any stage of their journey, but should especially consider
the initial onboarding experience.
“For brand-new users, the portal should provide a guided onboard-
ing experience, with a ready-to-use sandbox environment, API
keys, getting started guides, and step-by-step tutorials,” said James.
Derric echoes this statement, encouraging API owners to “create
an awesome onboarding flow” that makes it as easy as possible
to start pinging the API. He recommends that API owners focus
on the minimal number of steps required to deploy your solution.
He encourages code snippets, copy/paste abilities, and “successfully
received” messages for asynchronous processing.
Small DX enhancements can keep developers active and engaged.
But it’s also essential to consider the rate of information disclosure.
If your full configuration is complex, involving multiple integration
Tips on Creating Outstanding Developer Experiences 67
points, these can be surfaced later using what Derric calls gradual
onboarding.
Srushtika adds that well-structured documentation and video tu-
torials can highlight use cases. She emphasizes self-service capa-
bilities like a sandbox for debugging can improve the onboarding
process tremendously.
“Self-service developer tooling and onboarding guides are incredi-
bly appreciated by the developer customers,” says Srushtika.
“Developer support is one of the best ways to learn where there are
obstacles getting started with your platform. For small companies,
even the CEO should have their hand in support,” says Derric.
KPIs to Improve DX
What sort of metrics should developer programs be considering? If
you are taking all these points to heart, you will hopefully notice
Tips on Creating Outstanding Developer Experiences 71
more onboards, sign-ups, and more API key registrations – all the
hallmarks of success. Or are they?
Derric notices that some KPIs used to measure developer expe-
rience are purely vanity metrics. Pageviews and sign-ups don’t
necessarily correlate to an active platform or end developer success.
In his words, “these metrics only measure acquisition, and do not
account for what happens after sign up.”
Instead, Derric recommends API providers align all teams on
two north star metrics which are more intimately tied to actual
production use:
Here are some tips to help refine the audience for your API.
So, you’ve built your API. Or maybe you’re not quite there yet?
Whatever stage in the process you’re at, it’s never too early to start
thinking about who will actually use your API.
Of course, that’s easier said than done. But it’s an essential step of
the process because, if you fail to do it, you won’t know how to
market it. A one size fits all approach may fail to resonate with
your ideal users, and your API will struggle to grow as a result.
The key to avoiding this is finding an audience that falls in love
with your product. Again, easier said than done. However, finding
a market that can’t get enough of your API and wants to talk about
it to their fellow developers can make your life much easier.
How To Find An Audience For Your API? 75
does your API actually do?” The more resources you can point
interested developers to, like use cases and blog posts, the better.
Some good news is that you don’t have to do all of this on your
own — consider listing your API in marketplaces, like RapidAPI,
or directories, like ProgrammableWeb. If you describe and tag
your API(s) effectively, these represent a ready-made audience of
developers who are hungry for great APIs.
Likewise, sites like ProductHunt, HackerNews, and even relevant
subreddits on Reddit all represent good spots to highlight APIs that
have enough wow factor to score upvotes. In other words, it helps
if your API has some extraordinary use cases!
But, however important external buy-in might be, you also need
internal buy-in…
quality product that serves a specific need. Getting input from all
over the business is one of the best ways to build this product/needs-
focused mindset.
Henry Ford is often misquoted as saying that “if I’d asked my cus-
tomers what they wanted, they’d have said faster horses.” There’s
some truth to the fact that being too customer-led can be a bad
thing, but obtaining feedback can shed light on issues you might
never even have considered.
When you’re finding an audience and marketing an API to them,
this (actual) quote by Ford is worth taking to heart:
“If there is any one secret of success, it lies in the ability to get the
other person’s point of view and see things from that person’s angle
as well as from your own.”
Pointers for Building
Developer-Friendly API
Products
by Thomas Bush
product. Instead, stick to the approach that works, and accept that
creating or updating an API will take a little longer than others
might like.
Clarity
For a public API, one of the development goals should be that
the API is easily understood. While this understanding is typically
gained through ample documentation or other educational efforts,
endpoint naming is often overlooked as a profound opportunity to
express purpose and intent. How endpoints are named and how
descriptive they are can significantly impact how the average user
understands what they’re interfacing with.
Imagine you are developing an API that remotely serves the
weather to a user. When considering a collection of endpoints,
imagine two extremes. On one side, we have an obscure version:
1 https://weatherapi.nordicapis.com/aqi10
2 https://weatherapi.nordicapis.com/tmplcl
3 https://weatherapi.nordicapis.com/usrlclctyid
1 https://weatherapi.nordicapis.com/airqualityindex
2 https://weatherapi.nordicapis.com/localtemperature
3 https://weatherapi.nordicapis.com/setusercity
Casing
Additionally, if a casing style is used, it should be consistent across
all endpoints. CamelCase (in which each new word is capitalized,
e.g., AirQualityIndex or airQualityIndex), Snake Case (where
underscores replace spaces, e.g., Air_Quality_Index), and other
approaches are acceptable. Still, it should be considered a best
practice to keep this style consistent. For example, if one endpoint
is AirQualityIndex, you should not also have an instance of set_-
User-City. Small variances like this, over the breadth of a service,
can ultimately result in higher complexity and less understanding.
Accuracy
Related to endpoint clarity is the relative accuracy of each endpoint.
It’s not enough to ensure that the endpoint is named consistently;
you must also ensure that it does what it says it does.
Incompatibilities often arise after multiple revisions and varia-
tions on the core codebase, especially if it is old or depends on
other libraries. For instance, let’s expand the imagined weather
9 Areas of Consistency for Great Developer Experience 87
3. Error Handling
One point of clarity that is often missed is in error handling. Too
often, error handling is dealt with by serving general error codes
with no additional information. How many times has a service
returned an error that simply says “sorry, this resource is not
found”? For the end-user, this experience is not only ineffective;
it’s frustrating.
Errors should be handled consistently, given a specific form and
function. One of the best resources for standardizing error handling
is using standard HTTP status codes. This is a great solution, as
each type of error code is delineated and understandable simply by
knowing what category these codes fall in. The standard codes are
noted below:
4. Documentation
Documentation should never be considered an afterthought —
consistency is extremely important for quality documentation. So
what does this mean in practice?
First, ensure that your documentation is accurate. At a basic level,
documentation must reflect the actual functions, endpoints, and
facets of the API in great detail. Documentation should always
match production —it is this consistency that lends itself to accu-
racy, and thus to good documentation.
Secondly, navigation is a vital, often overlooked aspect. It’s not
just enough to have accurate documentation — developers must
be able to navigate it. One way to increase consistency here is to
think of your documentation from a scientific point of view. Break
everything first down by topics, then by functions, variations, and
finally examples. The specific structure doesn’t need to be exact —
what is most important is that if you adopt a format, stick with it.
Finally, content should be efficient. Consider the average developer
consumer — do they have time to read for an hour to understand
one function? Of course not – they depend on brevity, examples,
and efficacy. Be brief, concise, and accurate.
9 Areas of Consistency for Great Developer Experience 90
7. Security
Security is another area where consistency is incredibly important.
Having consistent endpoints with consistent security standards and
baseline monitoring and response methods is incredibly important.
Every small failure of consistency here can compound and open
more vulnerabilities that you may not even know exist.
One common security issue is allowing different access points for
different user classes. While this most often happens within the
context of an exposed “test server,” this can also happen with test
endpoints for new functions. When those endpoints are created and
left open once their usefulness has expired, this only creates a risk
of ingress.
Additionally, any security choice made throughout the API should
apply to the API in totality. Things like rate limiting are great to
prevent denial of service attacks, but if those limits don’t apply
to elevated credentials, then you’re creating a massive flaw in
your security. In such a system, the second an elevated credential
9 Areas of Consistency for Great Developer Experience 93
9. Platform Consistency
One final point of consistency is the unification of the API ex-
perience from the perspective of documentation and specification.
When developing an API, unless the specification is used to create
the documentation outright, there is a possibility that the output is
going to differ from the input. While this is typically minor and
can be fixed by an attentive developer, the reality is that these
differences often propagate through multiple versions, resulting
in documentation that must go through an overhaul to be even
remotely usable and valuable.
It’s also possible that if the specification is used to create the output
API, but this process is done at the start of a series of developments,
that the end output will still be mismatched. The worst part of this
scenario is that the output is different without apparent cause; it is
more likely that this scenario plays out without it being obvious to
the developers than the former scenario.
At all times, developers should strive to ensure that their public docs
and statements in specification match the actual deployed instances
and that the ethos and processes are reflected adequately. This
includes ensuring that the numerous diverse outputs which inform
the user match the inputs, but it also includes matching the stated
goal and purpose of the API are reflected in the actual functions. It’s
not ok for an API to state that its purpose is to do something, and
once the user enters the API, it’s unclear exactly how (or even if) it
does this – that is the worst possible scenario for user experience.
9 Areas of Consistency for Great Developer Experience 95
Create With Us