SlideShare a Scribd company logo
Steph Shin
UX thinking in API design
● Cross-functional teams
● Organized problem spaces not discipline
● Platform product line
● App store billing domain
● Highly technical space
Context: UX designer at Shopify
● Serves third party app developers
● Allows app developers to charge Shopify
Merchants directly through their store account
● Originally built in REST
● Our goal was to build it in GraphQL
● Launch at Shopify Unite 2019
Context: Shopify’s Billing API
“Instead of defining the
structure of responses on
the server, the flexibility is
given to the client.”
– Petr Bela, GraphQL in the age of REST APIs
REST vs. GraphQL
Source: https://medium.com/chute-engineering/graphql-in-the-age-of-rest-apis-b10f2bf09bba
Why would I need to think
about UX for an API?
Application
Programming
Interface
“An API is first & foremost
an interface for people”
– Arnaud Lauret, The Design of Web APIs
Developers are people too.
if API = Interface
and Developer = user
then using API = UX
Start by accepting the fact
that you are NOT the user!
“[Users] are usually very different than
those who write the code, even [when]
they are developers: they have different
backgrounds, experiences with user
interfaces, mindsets, mental models,
and goals. They are not us.”
– Raluca Budiu, You Are Not the User: The
False-Consensus Effect
● Trustworthy & consistent (even if it’s unpredictable)
● Human (even if it’s highly technical)
● Discoverable (even if it’s not the main star)
● Easy & simple (even if it’s challenging & complex)
Great UX should feel...
“Good design, when it’s done
well, becomes invisible. It’s
only when it’s done poorly
that we notice it.”
– Jared Spool
● Who will be using this API?
● What problem does this solve?
● What are the use cases?
● What could get in the way of an enjoyable experience?
● How do users understand the problem space?
Helpful questions to guide the design of
great user experiences:
What does UX look like for
API’s?
Collaborate
Be open to the wealth of insights and
ideas that non-technical people bring to
the technical design process.
NOTE: Discussions can be difficult because words often
hold many different definitions. Diagrams, models or a
glossary could help ensure better alignment.
“Teams that fail,
fail to listen to each other.”
– Brent Summers, Get over yourself: Collaboration is
the secret to great products
Research precedents
Look to related or similar examples to
understand the thinking behind the
solution. Try to piece together what they
learned that led to their decisions.
NOTE: It’s not enough to simply copy. You’ll need to
understand how to apply it to your specific context.
Interview users
Talk to users directly and learn about their
current solutions, their motivations and
their mental models.
NOTE: It’s very easy to fall into biases. Be sure to work
with a researcher whenever possible to avoid influencing
interviewees with leading questions.
Example of a leading question:
“I saw you were having difficulty with the
navigation. What happened?”
Vs.
“What was easy or difficult about getting
to the content you wanted?”
⛔
��
“Leading questions rob us of
the opportunity to hear an
insight we weren’t
expecting.”
– Amy Schade, Avoid Leading Questions to Get Better
Insights from Participants
Model the concept
Map out and visualize the objects &
relationships involved. Use this to align
on the system, taxonomy and schema.
NOTE: Focus on organizing the objects and articulating
how they relate to each other and move through the
system. It’s helpful to think of journeys. Use analogies to
help you illustrate the concepts.
Test out the usability
Whether hi- or lo-definition, find a way to
present and test the core logic and
structures of the API design. This can be
done with, interviews, tree tests, surveys...
NOTE: Be as objective as possible and work with a
researcher when possible to avoid influencing your bias.
Steps to improve user experience
Collaborate
Research precedents
Interview users
Model the concept
Test out the usability
What did I learn?
Naming is hard!
Language has many layers of meaning
steeped in culture, past experiences and
individual biases. Focus on the what the
word represents rather than the specific
words and finalize the terminology later.
Oversimplification can
complicate things
Taking a complex concept and
oversimplifying it can cause problems
when scaling. Try to avoid conflating
similar but separate concepts.
Usage fees in REST
Usage fees in GraphQL
Not all feedback is equal
Find a balance between being descriptive
and prescriptive. You don’t have to act on
every feedback. Decisions should be
informed by the product vision as well as
user feedback and data.
Questions &
compliments welcome
😉

More Related Content

What's hot

Mobile Application Workshop - So You Want To Build a Mobile App?
Mobile Application Workshop - So You Want To Build a Mobile App?Mobile Application Workshop - So You Want To Build a Mobile App?
Mobile Application Workshop - So You Want To Build a Mobile App?Aaron Saunders
 
Voxxed days 2015-hakansaglam-codereview
Voxxed days 2015-hakansaglam-codereviewVoxxed days 2015-hakansaglam-codereview
Voxxed days 2015-hakansaglam-codereviewHakan Saglam
 
IoT App Development Company India, Hire IoT Developers
IoT App Development Company India, Hire IoT DevelopersIoT App Development Company India, Hire IoT Developers
IoT App Development Company India, Hire IoT DevelopersIndianAppDevelopers
 
apidays LIVE Singapore - How we Build APIs and Workflows at Slack by Bear Dou...
apidays LIVE Singapore - How we Build APIs and Workflows at Slack by Bear Dou...apidays LIVE Singapore - How we Build APIs and Workflows at Slack by Bear Dou...
apidays LIVE Singapore - How we Build APIs and Workflows at Slack by Bear Dou...apidays
 
Mistakes to-avoid-api-product
Mistakes to-avoid-api-productMistakes to-avoid-api-product
Mistakes to-avoid-api-productRahul Dighe
 
Industry Experts on How to Build Really Good Mobile Application
Industry Experts on How to Build Really Good Mobile ApplicationIndustry Experts on How to Build Really Good Mobile Application
Industry Experts on How to Build Really Good Mobile ApplicationIndianAppDevelopers
 
How much does it cost to build a mobile app?
How much does it cost to build a mobile app?How much does it cost to build a mobile app?
How much does it cost to build a mobile app?Jurgis Kirsakmens
 
Write what counts. Count What Counts.
Write what counts. Count What Counts.Write what counts. Count What Counts.
Write what counts. Count What Counts.Pronovix
 
Hacks, Workarounds, and Creative Solutions: How Unsupported Use Cases Reveal ...
Hacks, Workarounds, and Creative Solutions: How Unsupported Use Cases Reveal ...Hacks, Workarounds, and Creative Solutions: How Unsupported Use Cases Reveal ...
Hacks, Workarounds, and Creative Solutions: How Unsupported Use Cases Reveal ...Nordic APIs
 
Uncovering the unknowns of appium and beyond
Uncovering the unknowns of appium and beyondUncovering the unknowns of appium and beyond
Uncovering the unknowns of appium and beyondPerfecto by Perforce
 
Busting myths about business apps, low code style
Busting myths about business apps, low code styleBusting myths about business apps, low code style
Busting myths about business apps, low code styleZoho Creator
 
Low Code Meets the Enterprise - Low Code AppDev with Oracle APEX
Low Code Meets the Enterprise - Low Code AppDev with Oracle APEXLow Code Meets the Enterprise - Low Code AppDev with Oracle APEX
Low Code Meets the Enterprise - Low Code AppDev with Oracle APEXjoelkallman
 
8 Steps to Creating a Mobile App
8 Steps to Creating a Mobile App 8 Steps to Creating a Mobile App
8 Steps to Creating a Mobile App Cheryl Lawson
 
SBP Integrate Smartsheet with Appsheet
SBP Integrate Smartsheet with AppsheetSBP Integrate Smartsheet with Appsheet
SBP Integrate Smartsheet with AppsheetGwen Rymill
 
Who's using your API?
Who's using your API?Who's using your API?
Who's using your API?Bruno Pedro
 
Flatworld Edge Brochure
Flatworld Edge BrochureFlatworld Edge Brochure
Flatworld Edge BrochureFlatworld Edge
 
Low code vs. No code: Which is better for web and app development?
Low code vs. No code: Which is better for web and app development?Low code vs. No code: Which is better for web and app development?
Low code vs. No code: Which is better for web and app development?Devathon
 
Make Your API Irresistible
Make Your API IrresistibleMake Your API Irresistible
Make Your API Irresistibleduvander
 
Dev Learn Handout - Session 604
Dev Learn Handout - Session 604Dev Learn Handout - Session 604
Dev Learn Handout - Session 604Chad Udell
 

What's hot (20)

Mobile Application Workshop - So You Want To Build a Mobile App?
Mobile Application Workshop - So You Want To Build a Mobile App?Mobile Application Workshop - So You Want To Build a Mobile App?
Mobile Application Workshop - So You Want To Build a Mobile App?
 
Voxxed days 2015-hakansaglam-codereview
Voxxed days 2015-hakansaglam-codereviewVoxxed days 2015-hakansaglam-codereview
Voxxed days 2015-hakansaglam-codereview
 
IoT App Development Company India, Hire IoT Developers
IoT App Development Company India, Hire IoT DevelopersIoT App Development Company India, Hire IoT Developers
IoT App Development Company India, Hire IoT Developers
 
apidays LIVE Singapore - How we Build APIs and Workflows at Slack by Bear Dou...
apidays LIVE Singapore - How we Build APIs and Workflows at Slack by Bear Dou...apidays LIVE Singapore - How we Build APIs and Workflows at Slack by Bear Dou...
apidays LIVE Singapore - How we Build APIs and Workflows at Slack by Bear Dou...
 
Mistakes to-avoid-api-product
Mistakes to-avoid-api-productMistakes to-avoid-api-product
Mistakes to-avoid-api-product
 
Industry Experts on How to Build Really Good Mobile Application
Industry Experts on How to Build Really Good Mobile ApplicationIndustry Experts on How to Build Really Good Mobile Application
Industry Experts on How to Build Really Good Mobile Application
 
How much does it cost to build a mobile app?
How much does it cost to build a mobile app?How much does it cost to build a mobile app?
How much does it cost to build a mobile app?
 
Write what counts. Count What Counts.
Write what counts. Count What Counts.Write what counts. Count What Counts.
Write what counts. Count What Counts.
 
Hacks, Workarounds, and Creative Solutions: How Unsupported Use Cases Reveal ...
Hacks, Workarounds, and Creative Solutions: How Unsupported Use Cases Reveal ...Hacks, Workarounds, and Creative Solutions: How Unsupported Use Cases Reveal ...
Hacks, Workarounds, and Creative Solutions: How Unsupported Use Cases Reveal ...
 
Uncovering the unknowns of appium and beyond
Uncovering the unknowns of appium and beyondUncovering the unknowns of appium and beyond
Uncovering the unknowns of appium and beyond
 
Busting myths about business apps, low code style
Busting myths about business apps, low code styleBusting myths about business apps, low code style
Busting myths about business apps, low code style
 
Low Code Meets the Enterprise - Low Code AppDev with Oracle APEX
Low Code Meets the Enterprise - Low Code AppDev with Oracle APEXLow Code Meets the Enterprise - Low Code AppDev with Oracle APEX
Low Code Meets the Enterprise - Low Code AppDev with Oracle APEX
 
8 Steps to Creating a Mobile App
8 Steps to Creating a Mobile App 8 Steps to Creating a Mobile App
8 Steps to Creating a Mobile App
 
SBP Integrate Smartsheet with Appsheet
SBP Integrate Smartsheet with AppsheetSBP Integrate Smartsheet with Appsheet
SBP Integrate Smartsheet with Appsheet
 
Who's using your API?
Who's using your API?Who's using your API?
Who's using your API?
 
Flatworld Edge Brochure
Flatworld Edge BrochureFlatworld Edge Brochure
Flatworld Edge Brochure
 
Low code vs. No code: Which is better for web and app development?
Low code vs. No code: Which is better for web and app development?Low code vs. No code: Which is better for web and app development?
Low code vs. No code: Which is better for web and app development?
 
Make Your API Irresistible
Make Your API IrresistibleMake Your API Irresistible
Make Your API Irresistible
 
Rules For Modern Web App Development
Rules For Modern Web App DevelopmentRules For Modern Web App Development
Rules For Modern Web App Development
 
Dev Learn Handout - Session 604
Dev Learn Handout - Session 604Dev Learn Handout - Session 604
Dev Learn Handout - Session 604
 

Similar to How to Embed UX Thinking in Your Next API

How to embed UX thinking in API design
How to embed UX thinking in API designHow to embed UX thinking in API design
How to embed UX thinking in API designstephshin
 
Universal Design Principles and Methods
Universal Design Principles and MethodsUniversal Design Principles and Methods
Universal Design Principles and Methodsmbrosset
 
Design process interaction design basics
Design process interaction design basicsDesign process interaction design basics
Design process interaction design basicsPreeti Mishra
 
The UX Toolbelt for Developers
The UX Toolbelt for DevelopersThe UX Toolbelt for Developers
The UX Toolbelt for DevelopersSarah Dutkiewicz
 
Requirements Engineering for the Humanities
Requirements Engineering for the HumanitiesRequirements Engineering for the Humanities
Requirements Engineering for the HumanitiesShawn Day
 
The UX Toolbelt for Developers
The UX Toolbelt for DevelopersThe UX Toolbelt for Developers
The UX Toolbelt for DevelopersSarah Dutkiewicz
 
DIY Usability
DIY UsabilityDIY Usability
DIY UsabilityJan Moons
 
Design Process | Tool 02: Scenario - Tool 03: Wireframe
Design Process | Tool 02: Scenario - Tool 03: WireframeDesign Process | Tool 02: Scenario - Tool 03: Wireframe
Design Process | Tool 02: Scenario - Tool 03: WireframeGessica Puri
 
World Usability Day 2014 - UX Toolbelt for Developers
World Usability Day 2014 - UX Toolbelt for DevelopersWorld Usability Day 2014 - UX Toolbelt for Developers
World Usability Day 2014 - UX Toolbelt for DevelopersSarah Dutkiewicz
 
EPFL - PxS, week 8 - conceptual design
EPFL - PxS, week 8 - conceptual designEPFL - PxS, week 8 - conceptual design
EPFL - PxS, week 8 - conceptual designhendrikknoche
 
User Experience & Design…Designing for others…UED
User Experience & Design…Designing for others…UEDUser Experience & Design…Designing for others…UED
User Experience & Design…Designing for others…UEDPreeti Chopra
 
Understanding User Experience Workshop - Interlink Conference 2012
Understanding User Experience Workshop - Interlink Conference 2012Understanding User Experience Workshop - Interlink Conference 2012
Understanding User Experience Workshop - Interlink Conference 2012Lynne Polischuik
 
Jonah Osawa - UX Portfolio
Jonah Osawa - UX PortfolioJonah Osawa - UX Portfolio
Jonah Osawa - UX PortfolioJonah Osawa
 
User Experience Design: an Overview
User Experience Design: an OverviewUser Experience Design: an Overview
User Experience Design: an OverviewJulie Grundy
 
Speaking the Language of Meta-Principles: Consistency, Hierarchy, and Persona...
Speaking the Language of Meta-Principles: Consistency, Hierarchy, and Persona...Speaking the Language of Meta-Principles: Consistency, Hierarchy, and Persona...
Speaking the Language of Meta-Principles: Consistency, Hierarchy, and Persona...Tania Schlatter
 

Similar to How to Embed UX Thinking in Your Next API (20)

How to embed UX thinking in API design
How to embed UX thinking in API designHow to embed UX thinking in API design
How to embed UX thinking in API design
 
Universal Design Principles and Methods
Universal Design Principles and MethodsUniversal Design Principles and Methods
Universal Design Principles and Methods
 
Design process interaction design basics
Design process interaction design basicsDesign process interaction design basics
Design process interaction design basics
 
The UX Toolbelt for Developers
The UX Toolbelt for DevelopersThe UX Toolbelt for Developers
The UX Toolbelt for Developers
 
Requirements Engineering for the Humanities
Requirements Engineering for the HumanitiesRequirements Engineering for the Humanities
Requirements Engineering for the Humanities
 
The UX Toolbelt for Developers
The UX Toolbelt for DevelopersThe UX Toolbelt for Developers
The UX Toolbelt for Developers
 
DIY Usability
DIY UsabilityDIY Usability
DIY Usability
 
Design Process | Tool 02: Scenario - Tool 03: Wireframe
Design Process | Tool 02: Scenario - Tool 03: WireframeDesign Process | Tool 02: Scenario - Tool 03: Wireframe
Design Process | Tool 02: Scenario - Tool 03: Wireframe
 
World Usability Day 2014 - UX Toolbelt for Developers
World Usability Day 2014 - UX Toolbelt for DevelopersWorld Usability Day 2014 - UX Toolbelt for Developers
World Usability Day 2014 - UX Toolbelt for Developers
 
EPFL - PxS, week 8 - conceptual design
EPFL - PxS, week 8 - conceptual designEPFL - PxS, week 8 - conceptual design
EPFL - PxS, week 8 - conceptual design
 
Tania Schlatter – Visual Usability
Tania Schlatter – Visual UsabilityTania Schlatter – Visual Usability
Tania Schlatter – Visual Usability
 
User Stories
User StoriesUser Stories
User Stories
 
User Stories
User StoriesUser Stories
User Stories
 
User Experience & Design…Designing for others…UED
User Experience & Design…Designing for others…UEDUser Experience & Design…Designing for others…UED
User Experience & Design…Designing for others…UED
 
Understanding User Experience Workshop - Interlink Conference 2012
Understanding User Experience Workshop - Interlink Conference 2012Understanding User Experience Workshop - Interlink Conference 2012
Understanding User Experience Workshop - Interlink Conference 2012
 
Jonah Osawa - UX Portfolio
Jonah Osawa - UX PortfolioJonah Osawa - UX Portfolio
Jonah Osawa - UX Portfolio
 
User Experience Design: an Overview
User Experience Design: an OverviewUser Experience Design: an Overview
User Experience Design: an Overview
 
Speaking the Language of Meta-Principles: Consistency, Hierarchy, and Persona...
Speaking the Language of Meta-Principles: Consistency, Hierarchy, and Persona...Speaking the Language of Meta-Principles: Consistency, Hierarchy, and Persona...
Speaking the Language of Meta-Principles: Consistency, Hierarchy, and Persona...
 
UX Masterclass Presentation
UX Masterclass PresentationUX Masterclass Presentation
UX Masterclass Presentation
 
Design process
Design processDesign process
Design process
 

More from Pronovix

By the time they're reading the docs, it's already too late
By the time they're reading the docs, it's already too lateBy the time they're reading the docs, it's already too late
By the time they're reading the docs, it's already too latePronovix
 
Optimizing Dev Portals with Analytics and Feedback
Optimizing Dev Portals with Analytics and FeedbackOptimizing Dev Portals with Analytics and Feedback
Optimizing Dev Portals with Analytics and FeedbackPronovix
 
Success metrics when launching your first developer portal
Success metrics when launching your first developer portalSuccess metrics when launching your first developer portal
Success metrics when launching your first developer portalPronovix
 
Documentation, APIs & AI
Documentation, APIs & AIDocumentation, APIs & AI
Documentation, APIs & AIPronovix
 
Making sense of analytics for documentation pages
Making sense of analytics for documentation pagesMaking sense of analytics for documentation pages
Making sense of analytics for documentation pagesPronovix
 
Feedback cycles and their role in improving overall developer experiences
Feedback cycles and their role in improving overall developer experiencesFeedback cycles and their role in improving overall developer experiences
Feedback cycles and their role in improving overall developer experiencesPronovix
 
GraphQL Isn't An Excuse To Stop Writing Docs
GraphQL Isn't An Excuse To Stop Writing DocsGraphQL Isn't An Excuse To Stop Writing Docs
GraphQL Isn't An Excuse To Stop Writing DocsPronovix
 
API Documentation For Web3
API Documentation For Web3API Documentation For Web3
API Documentation For Web3Pronovix
 
Why your API doesn’t solve my problem: A use case-driven API design
Why your API doesn’t solve my problem: A use case-driven API designWhy your API doesn’t solve my problem: A use case-driven API design
Why your API doesn’t solve my problem: A use case-driven API designPronovix
 
unREST among the docs
unREST among the docsunREST among the docs
unREST among the docsPronovix
 
Developing a best-in-class deprecation policy for your APIs
Developing a best-in-class deprecation policy for your APIsDeveloping a best-in-class deprecation policy for your APIs
Developing a best-in-class deprecation policy for your APIsPronovix
 
Annotate, Automate & Educate: Driving generated OpenAPI docs to benefit everyone
Annotate, Automate & Educate: Driving generated OpenAPI docs to benefit everyoneAnnotate, Automate & Educate: Driving generated OpenAPI docs to benefit everyone
Annotate, Automate & Educate: Driving generated OpenAPI docs to benefit everyonePronovix
 
What do developers do when it comes to understanding and using APIs?
What do developers do when it comes to understanding and using APIs?What do developers do when it comes to understanding and using APIs?
What do developers do when it comes to understanding and using APIs?Pronovix
 
Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations
Inclusive, Accessible Tech: Bias-Free Language in Code and ConfigurationsInclusive, Accessible Tech: Bias-Free Language in Code and Configurations
Inclusive, Accessible Tech: Bias-Free Language in Code and ConfigurationsPronovix
 
Creating API documentation for international communities
Creating API documentation for international communitiesCreating API documentation for international communities
Creating API documentation for international communitiesPronovix
 
One Developer Portal to Document Them All
One Developer Portal to Document Them AllOne Developer Portal to Document Them All
One Developer Portal to Document Them AllPronovix
 
Docs-as-Code: Evolving the API Documentation Experience
Docs-as-Code: Evolving the API Documentation ExperienceDocs-as-Code: Evolving the API Documentation Experience
Docs-as-Code: Evolving the API Documentation ExperiencePronovix
 
Developer journey - make it easy for devs to love your product
Developer journey - make it easy for devs to love your productDeveloper journey - make it easy for devs to love your product
Developer journey - make it easy for devs to love your productPronovix
 
Complexity is not complicatedness
Complexity is not complicatednessComplexity is not complicatedness
Complexity is not complicatednessPronovix
 
How cognitive biases and ranking can foster an ineffective architecture and d...
How cognitive biases and ranking can foster an ineffective architecture and d...How cognitive biases and ranking can foster an ineffective architecture and d...
How cognitive biases and ranking can foster an ineffective architecture and d...Pronovix
 

More from Pronovix (20)

By the time they're reading the docs, it's already too late
By the time they're reading the docs, it's already too lateBy the time they're reading the docs, it's already too late
By the time they're reading the docs, it's already too late
 
Optimizing Dev Portals with Analytics and Feedback
Optimizing Dev Portals with Analytics and FeedbackOptimizing Dev Portals with Analytics and Feedback
Optimizing Dev Portals with Analytics and Feedback
 
Success metrics when launching your first developer portal
Success metrics when launching your first developer portalSuccess metrics when launching your first developer portal
Success metrics when launching your first developer portal
 
Documentation, APIs & AI
Documentation, APIs & AIDocumentation, APIs & AI
Documentation, APIs & AI
 
Making sense of analytics for documentation pages
Making sense of analytics for documentation pagesMaking sense of analytics for documentation pages
Making sense of analytics for documentation pages
 
Feedback cycles and their role in improving overall developer experiences
Feedback cycles and their role in improving overall developer experiencesFeedback cycles and their role in improving overall developer experiences
Feedback cycles and their role in improving overall developer experiences
 
GraphQL Isn't An Excuse To Stop Writing Docs
GraphQL Isn't An Excuse To Stop Writing DocsGraphQL Isn't An Excuse To Stop Writing Docs
GraphQL Isn't An Excuse To Stop Writing Docs
 
API Documentation For Web3
API Documentation For Web3API Documentation For Web3
API Documentation For Web3
 
Why your API doesn’t solve my problem: A use case-driven API design
Why your API doesn’t solve my problem: A use case-driven API designWhy your API doesn’t solve my problem: A use case-driven API design
Why your API doesn’t solve my problem: A use case-driven API design
 
unREST among the docs
unREST among the docsunREST among the docs
unREST among the docs
 
Developing a best-in-class deprecation policy for your APIs
Developing a best-in-class deprecation policy for your APIsDeveloping a best-in-class deprecation policy for your APIs
Developing a best-in-class deprecation policy for your APIs
 
Annotate, Automate & Educate: Driving generated OpenAPI docs to benefit everyone
Annotate, Automate & Educate: Driving generated OpenAPI docs to benefit everyoneAnnotate, Automate & Educate: Driving generated OpenAPI docs to benefit everyone
Annotate, Automate & Educate: Driving generated OpenAPI docs to benefit everyone
 
What do developers do when it comes to understanding and using APIs?
What do developers do when it comes to understanding and using APIs?What do developers do when it comes to understanding and using APIs?
What do developers do when it comes to understanding and using APIs?
 
Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations
Inclusive, Accessible Tech: Bias-Free Language in Code and ConfigurationsInclusive, Accessible Tech: Bias-Free Language in Code and Configurations
Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations
 
Creating API documentation for international communities
Creating API documentation for international communitiesCreating API documentation for international communities
Creating API documentation for international communities
 
One Developer Portal to Document Them All
One Developer Portal to Document Them AllOne Developer Portal to Document Them All
One Developer Portal to Document Them All
 
Docs-as-Code: Evolving the API Documentation Experience
Docs-as-Code: Evolving the API Documentation ExperienceDocs-as-Code: Evolving the API Documentation Experience
Docs-as-Code: Evolving the API Documentation Experience
 
Developer journey - make it easy for devs to love your product
Developer journey - make it easy for devs to love your productDeveloper journey - make it easy for devs to love your product
Developer journey - make it easy for devs to love your product
 
Complexity is not complicatedness
Complexity is not complicatednessComplexity is not complicatedness
Complexity is not complicatedness
 
How cognitive biases and ranking can foster an ineffective architecture and d...
How cognitive biases and ranking can foster an ineffective architecture and d...How cognitive biases and ranking can foster an ineffective architecture and d...
How cognitive biases and ranking can foster an ineffective architecture and d...
 

Recently uploaded

From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...Product School
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekCzechDreamin
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Thierry Lestable
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backElena Simperl
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeCzechDreamin
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutesconfluent
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Product School
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupCatarinaPereira64715
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀DianaGray10
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...Product School
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Product School
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...CzechDreamin
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoTAnalytics
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIES VE
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsExpeed Software
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Julian Hyde
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...CzechDreamin
 

Recently uploaded (20)

From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT Professionals
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 

How to Embed UX Thinking in Your Next API

  • 1. Steph Shin UX thinking in API design
  • 2. ● Cross-functional teams ● Organized problem spaces not discipline ● Platform product line ● App store billing domain ● Highly technical space Context: UX designer at Shopify
  • 3. ● Serves third party app developers ● Allows app developers to charge Shopify Merchants directly through their store account ● Originally built in REST ● Our goal was to build it in GraphQL ● Launch at Shopify Unite 2019 Context: Shopify’s Billing API
  • 4.
  • 5. “Instead of defining the structure of responses on the server, the flexibility is given to the client.” – Petr Bela, GraphQL in the age of REST APIs
  • 6. REST vs. GraphQL Source: https://medium.com/chute-engineering/graphql-in-the-age-of-rest-apis-b10f2bf09bba
  • 7. Why would I need to think about UX for an API?
  • 9.
  • 10. “An API is first & foremost an interface for people” – Arnaud Lauret, The Design of Web APIs
  • 12. if API = Interface and Developer = user then using API = UX
  • 13. Start by accepting the fact that you are NOT the user!
  • 14. “[Users] are usually very different than those who write the code, even [when] they are developers: they have different backgrounds, experiences with user interfaces, mindsets, mental models, and goals. They are not us.” – Raluca Budiu, You Are Not the User: The False-Consensus Effect
  • 15. ● Trustworthy & consistent (even if it’s unpredictable) ● Human (even if it’s highly technical) ● Discoverable (even if it’s not the main star) ● Easy & simple (even if it’s challenging & complex) Great UX should feel...
  • 16. “Good design, when it’s done well, becomes invisible. It’s only when it’s done poorly that we notice it.” – Jared Spool
  • 17. ● Who will be using this API? ● What problem does this solve? ● What are the use cases? ● What could get in the way of an enjoyable experience? ● How do users understand the problem space? Helpful questions to guide the design of great user experiences:
  • 18. What does UX look like for API’s?
  • 19. Collaborate Be open to the wealth of insights and ideas that non-technical people bring to the technical design process. NOTE: Discussions can be difficult because words often hold many different definitions. Diagrams, models or a glossary could help ensure better alignment.
  • 20. “Teams that fail, fail to listen to each other.” – Brent Summers, Get over yourself: Collaboration is the secret to great products
  • 21. Research precedents Look to related or similar examples to understand the thinking behind the solution. Try to piece together what they learned that led to their decisions. NOTE: It’s not enough to simply copy. You’ll need to understand how to apply it to your specific context.
  • 22.
  • 23. Interview users Talk to users directly and learn about their current solutions, their motivations and their mental models. NOTE: It’s very easy to fall into biases. Be sure to work with a researcher whenever possible to avoid influencing interviewees with leading questions.
  • 24. Example of a leading question: “I saw you were having difficulty with the navigation. What happened?” Vs. “What was easy or difficult about getting to the content you wanted?” ⛔ ��
  • 25. “Leading questions rob us of the opportunity to hear an insight we weren’t expecting.” – Amy Schade, Avoid Leading Questions to Get Better Insights from Participants
  • 26. Model the concept Map out and visualize the objects & relationships involved. Use this to align on the system, taxonomy and schema. NOTE: Focus on organizing the objects and articulating how they relate to each other and move through the system. It’s helpful to think of journeys. Use analogies to help you illustrate the concepts.
  • 27.
  • 28.
  • 29. Test out the usability Whether hi- or lo-definition, find a way to present and test the core logic and structures of the API design. This can be done with, interviews, tree tests, surveys... NOTE: Be as objective as possible and work with a researcher when possible to avoid influencing your bias.
  • 30.
  • 31.
  • 32.
  • 33. Steps to improve user experience Collaborate Research precedents Interview users Model the concept Test out the usability
  • 34. What did I learn?
  • 35. Naming is hard! Language has many layers of meaning steeped in culture, past experiences and individual biases. Focus on the what the word represents rather than the specific words and finalize the terminology later.
  • 36. Oversimplification can complicate things Taking a complex concept and oversimplifying it can cause problems when scaling. Try to avoid conflating similar but separate concepts.
  • 38. Usage fees in GraphQL
  • 39. Not all feedback is equal Find a balance between being descriptive and prescriptive. You don’t have to act on every feedback. Decisions should be informed by the product vision as well as user feedback and data.