SlideShare uma empresa Scribd logo
1 de 61
Applying UX design principles and methods to
the design of APIs
APPAPI
API
API
APPAPI
API
API
API APP
API
You are not your API user
?API
8% of Android Apps
misused TLS
Source: Fahl. Rethinking SSL development in an appified world. Proceeding of the ACM SIGSAC, 2013
Usability
easy to use
Learnability
Efficiency
Memorability
Satisfaction
Tolerance to
human error
Usability
User Mental
Model
System
Model
User Mental
Model
System
Model
Affordance
Feedback
Journey
Errors
Errors
Affordance
Feedback
Affordance
Standards
~ 1seg
Hi!
Feedback
System Status
Undo
&
Cancel
Errors
Constraints
Defaults
Steps
Uniformity
User Mental
Model
System
Model
Affordance
Feedback
API
public class Configuration {
@Inject
private SomeResource resource;
public Configuration() {}
/* … */
}
config = new Configuration();
GET /resources/1/delete
try {
/*…*/
} catch (Exception e) {
// Do Nothing
}
DELETE /repos/owner/repo/issues/2
404 Not Found
{
"message": "Not Found",
“documentation_url":
"https://developer.github.com/v3"
}
DELETE /repos/owner/repo/issues/2
405 Not Allowed
{
"message": "Not Allowed",
“documentation_url":
"https://developer.github.com/v3"
}
new Date(100, 0, 1)
Sat Jan 01 00:00:00 PST 2000
Java
new Date("2017-04-20")
Wed Apr 19 2017 17:00:00 GMT-0700 (PDT)
new Date("2017-4-20")
Thu Apr 20 2017 00:00:00 GMT-0700 (PDT)
JavaScript
Date.parse
JavaScript Designers
Legacy: Support new Date(aDate.toString()) (ECMAScript 1st)
Updated Requirement: Support ISO-8601 spec (ECMAScript 5.1)
2017-4-20 == 2017-04-20
JavaScript Developer
Journey
API
APP
APP APP
APP
API
API
API
APIAPI
APP
APP APP
APP
API
API
API
APIAPI
45% unused
19% rarely used
16% sometimes
20% used frequently
Source: Report from Standish Group, 2002
Persona Obstacles Goal
Release 2
Release 3
Release 1
GET
https://anypoint.mulesoft.com/accounts/api/organizations/{organizationId}/entitlements
[
{
"id": 3723,
"org_id": "f0c9b011-980e-4928-9430-e60e3a97c043",
"name": "createEnvironments",
"values": true,
"created_at": "2015-04-20T18:50:44.311Z",
"updated_at": "2016-09-28T23:30:52.455Z"
}…
GET https://anypoint.mulesoft.com/armui/api/v1/applications
{
"data": [
{
"id": "test-ffmq",
"target": {
"type": "CLOUDHUB"
},
"artifact": {
"lastUpdateTime": 1487378523911,
types:
Diagram:
properties:
name: string
shapes?: Shape[]
RAML Type Definition
API
?
Expert
Evaluations
Usability
Test
Jakob Nielsen
Standards
Visibility of System Status
Match expectations
Recognition over recall
Diagnose Problems
Error Prevention
Affordance
Feedback
Errors
Domain correspondence
No. of steps
Consistency
Recognition over recall
Progressive Feedback
Abstraction
Learning
Extension
API
I want to….
API
I want to….
All contents © MuleSoft Inc.
Summary
63
• Usability principles
–Affordance
–Feedback
–Tolerance to errors
• Stories
• Evaluation methods
Thank you!

Mais conteúdo relacionado

Mais procurados

MuleSoft Anypoint Platform and Three Tier Architecture
MuleSoft Anypoint  Platform and Three Tier ArchitectureMuleSoft Anypoint  Platform and Three Tier Architecture
MuleSoft Anypoint Platform and Three Tier ArchitectureHarish Kumar
 
Connecting the New Enterprise | MuleSoft
Connecting the New Enterprise | MuleSoftConnecting the New Enterprise | MuleSoft
Connecting the New Enterprise | MuleSoftMuleSoft
 
CloudHub and other Cloud Deployment Options
CloudHub and other Cloud Deployment OptionsCloudHub and other Cloud Deployment Options
CloudHub and other Cloud Deployment OptionsMuleSoft
 
Best Practices for API Security
Best Practices for API SecurityBest Practices for API Security
Best Practices for API SecurityMuleSoft
 
.Net architecture with mule soft
.Net architecture with mule soft.Net architecture with mule soft
.Net architecture with mule softD.Rajesh Kumar
 
Secure by design: Scaling security across the enterprise
Secure by design: Scaling security across the enterpriseSecure by design: Scaling security across the enterprise
Secure by design: Scaling security across the enterpriseMuleSoft
 
Microservices with mule
Microservices with muleMicroservices with mule
Microservices with muleGovind Mulinti
 
API Security using Mulesoft
API Security using MulesoftAPI Security using Mulesoft
API Security using MulesoftPritam Prakash
 
Apply Rate Limiting Policy
Apply Rate Limiting Policy Apply Rate Limiting Policy
Apply Rate Limiting Policy Vince Soliza
 
Sydney mule soft meetup 30 april 2020
Sydney mule soft meetup   30 april 2020Sydney mule soft meetup   30 april 2020
Sydney mule soft meetup 30 april 2020Royston Lobo
 
MuleSoft Surat Virtual Meetup#24 - MuleSoft and Salesforce Integration and De...
MuleSoft Surat Virtual Meetup#24 - MuleSoft and Salesforce Integration and De...MuleSoft Surat Virtual Meetup#24 - MuleSoft and Salesforce Integration and De...
MuleSoft Surat Virtual Meetup#24 - MuleSoft and Salesforce Integration and De...Jitendra Bafna
 
API Security and OAuth for the Enterprise
API Security and OAuth for the EnterpriseAPI Security and OAuth for the Enterprise
API Security and OAuth for the EnterpriseCA API Management
 
Create and Manage APIs with API Connect, Swagger and Bluemix
Create and Manage APIs with API Connect, Swagger and BluemixCreate and Manage APIs with API Connect, Swagger and Bluemix
Create and Manage APIs with API Connect, Swagger and BluemixDev_Events
 
Anypoint platform for API's glossary
Anypoint platform for API's glossaryAnypoint platform for API's glossary
Anypoint platform for API's glossaryAchyuta Lakshmi
 
MuleSoft Madrid Meetup #3 slides 2nd July 2020
MuleSoft Madrid Meetup #3 slides 2nd July 2020MuleSoft Madrid Meetup #3 slides 2nd July 2020
MuleSoft Madrid Meetup #3 slides 2nd July 2020Ieva Navickaite
 
Creating an OData-Enabled API
Creating an OData-Enabled APICreating an OData-Enabled API
Creating an OData-Enabled APIRoyston Lobo
 
Hybrid Cloud Integration is Coming: Are You Ready? | MuleSoft
Hybrid Cloud Integration is Coming: Are You Ready? | MuleSoftHybrid Cloud Integration is Coming: Are You Ready? | MuleSoft
Hybrid Cloud Integration is Coming: Are You Ready? | MuleSoftMuleSoft
 

Mais procurados (20)

MuleSoft Anypoint Platform and Three Tier Architecture
MuleSoft Anypoint  Platform and Three Tier ArchitectureMuleSoft Anypoint  Platform and Three Tier Architecture
MuleSoft Anypoint Platform and Three Tier Architecture
 
Connecting the New Enterprise | MuleSoft
Connecting the New Enterprise | MuleSoftConnecting the New Enterprise | MuleSoft
Connecting the New Enterprise | MuleSoft
 
CloudHub and other Cloud Deployment Options
CloudHub and other Cloud Deployment OptionsCloudHub and other Cloud Deployment Options
CloudHub and other Cloud Deployment Options
 
Best Practices for API Security
Best Practices for API SecurityBest Practices for API Security
Best Practices for API Security
 
.Net architecture with mule soft
.Net architecture with mule soft.Net architecture with mule soft
.Net architecture with mule soft
 
Secure by design: Scaling security across the enterprise
Secure by design: Scaling security across the enterpriseSecure by design: Scaling security across the enterprise
Secure by design: Scaling security across the enterprise
 
Microservices with mule
Microservices with muleMicroservices with mule
Microservices with mule
 
API Security using Mulesoft
API Security using MulesoftAPI Security using Mulesoft
API Security using Mulesoft
 
Mulesoft
MulesoftMulesoft
Mulesoft
 
Apply Rate Limiting Policy
Apply Rate Limiting Policy Apply Rate Limiting Policy
Apply Rate Limiting Policy
 
Sydney mule soft meetup 30 april 2020
Sydney mule soft meetup   30 april 2020Sydney mule soft meetup   30 april 2020
Sydney mule soft meetup 30 april 2020
 
MuleSoft Surat Virtual Meetup#24 - MuleSoft and Salesforce Integration and De...
MuleSoft Surat Virtual Meetup#24 - MuleSoft and Salesforce Integration and De...MuleSoft Surat Virtual Meetup#24 - MuleSoft and Salesforce Integration and De...
MuleSoft Surat Virtual Meetup#24 - MuleSoft and Salesforce Integration and De...
 
API Security and OAuth for the Enterprise
API Security and OAuth for the EnterpriseAPI Security and OAuth for the Enterprise
API Security and OAuth for the Enterprise
 
Create and Manage APIs with API Connect, Swagger and Bluemix
Create and Manage APIs with API Connect, Swagger and BluemixCreate and Manage APIs with API Connect, Swagger and Bluemix
Create and Manage APIs with API Connect, Swagger and Bluemix
 
Anypoint platform for API's glossary
Anypoint platform for API's glossaryAnypoint platform for API's glossary
Anypoint platform for API's glossary
 
MuleSoft Madrid Meetup #3 slides 2nd July 2020
MuleSoft Madrid Meetup #3 slides 2nd July 2020MuleSoft Madrid Meetup #3 slides 2nd July 2020
MuleSoft Madrid Meetup #3 slides 2nd July 2020
 
API Security Lifecycle
API Security LifecycleAPI Security Lifecycle
API Security Lifecycle
 
Creating an OData-Enabled API
Creating an OData-Enabled APICreating an OData-Enabled API
Creating an OData-Enabled API
 
Hybrid Cloud Integration is Coming: Are You Ready? | MuleSoft
Hybrid Cloud Integration is Coming: Are You Ready? | MuleSoftHybrid Cloud Integration is Coming: Are You Ready? | MuleSoft
Hybrid Cloud Integration is Coming: Are You Ready? | MuleSoft
 
How to Achieve Agile API Security
How to Achieve Agile API SecurityHow to Achieve Agile API Security
How to Achieve Agile API Security
 

Semelhante a Applying UX principles and methods to APIs

Designing and Implementing a Multiuser Apps Platform
Designing and Implementing a Multiuser Apps PlatformDesigning and Implementing a Multiuser Apps Platform
Designing and Implementing a Multiuser Apps PlatformApigee | Google Cloud
 
Design Pattern Mastery - Momentum Dev Con 19 Apr 2018
Design Pattern Mastery - Momentum Dev Con 19 Apr 2018Design Pattern Mastery - Momentum Dev Con 19 Apr 2018
Design Pattern Mastery - Momentum Dev Con 19 Apr 2018Steven Smith
 
API Services: Harness the Power of Enterprise Infrastructure
API Services: Harness the Power of Enterprise InfrastructureAPI Services: Harness the Power of Enterprise Infrastructure
API Services: Harness the Power of Enterprise InfrastructureApigee | Google Cloud
 
IITI Hub BTP Report
IITI Hub BTP ReportIITI Hub BTP Report
IITI Hub BTP Reportharshit4003
 
Best Practices for Cross-Platform Native Applications
Best Practices for Cross-Platform Native ApplicationsBest Practices for Cross-Platform Native Applications
Best Practices for Cross-Platform Native ApplicationsKevin Whinnery
 
Google App Engine for PHP
Google App Engine for PHP Google App Engine for PHP
Google App Engine for PHP Eric Johnson
 
Building Large Scale PHP Web Applications with Laravel 4
Building Large Scale PHP Web Applications with Laravel 4Building Large Scale PHP Web Applications with Laravel 4
Building Large Scale PHP Web Applications with Laravel 4Darwin Biler
 
IMMERSE'16 Introduction to adobe experience manager back end
IMMERSE'16 Introduction to adobe experience manager back endIMMERSE'16 Introduction to adobe experience manager back end
IMMERSE'16 Introduction to adobe experience manager back endAdobeMarketingCloud
 
JOSA TechTalks - RESTful API Concepts and Best Practices
JOSA TechTalks - RESTful API Concepts and Best PracticesJOSA TechTalks - RESTful API Concepts and Best Practices
JOSA TechTalks - RESTful API Concepts and Best PracticesJordan Open Source Association
 
Hack-Proof Your Drupal App
Hack-Proof Your Drupal AppHack-Proof Your Drupal App
Hack-Proof Your Drupal AppErich Beyrent
 
Java Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and MobileJava Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and MobileElias Nogueira
 
Architect's Guide to Building an API Program
Architect's Guide to Building an API ProgramArchitect's Guide to Building an API Program
Architect's Guide to Building an API Programclatimer
 
[drupalday2017] - REST in pieces
[drupalday2017] - REST in pieces[drupalday2017] - REST in pieces
[drupalday2017] - REST in piecesDrupalDay
 

Semelhante a Applying UX principles and methods to APIs (20)

OpenSocial
OpenSocialOpenSocial
OpenSocial
 
Designing and Implementing a Multiuser Apps Platform
Designing and Implementing a Multiuser Apps PlatformDesigning and Implementing a Multiuser Apps Platform
Designing and Implementing a Multiuser Apps Platform
 
Api desgin
Api desginApi desgin
Api desgin
 
Design Pattern Mastery - Momentum Dev Con 19 Apr 2018
Design Pattern Mastery - Momentum Dev Con 19 Apr 2018Design Pattern Mastery - Momentum Dev Con 19 Apr 2018
Design Pattern Mastery - Momentum Dev Con 19 Apr 2018
 
API Services: Harness the Power of Enterprise Infrastructure
API Services: Harness the Power of Enterprise InfrastructureAPI Services: Harness the Power of Enterprise Infrastructure
API Services: Harness the Power of Enterprise Infrastructure
 
IITI Hub BTP Report
IITI Hub BTP ReportIITI Hub BTP Report
IITI Hub BTP Report
 
Best Practices for Cross-Platform Native Applications
Best Practices for Cross-Platform Native ApplicationsBest Practices for Cross-Platform Native Applications
Best Practices for Cross-Platform Native Applications
 
Google App Engine for PHP
Google App Engine for PHP Google App Engine for PHP
Google App Engine for PHP
 
Building Large Scale PHP Web Applications with Laravel 4
Building Large Scale PHP Web Applications with Laravel 4Building Large Scale PHP Web Applications with Laravel 4
Building Large Scale PHP Web Applications with Laravel 4
 
Api best practices
Api best practicesApi best practices
Api best practices
 
Opensocial
OpensocialOpensocial
Opensocial
 
IMMERSE'16 Introduction to adobe experience manager back end
IMMERSE'16 Introduction to adobe experience manager back endIMMERSE'16 Introduction to adobe experience manager back end
IMMERSE'16 Introduction to adobe experience manager back end
 
JOSA TechTalks - RESTful API Concepts and Best Practices
JOSA TechTalks - RESTful API Concepts and Best PracticesJOSA TechTalks - RESTful API Concepts and Best Practices
JOSA TechTalks - RESTful API Concepts and Best Practices
 
Hack-Proof Your Drupal App
Hack-Proof Your Drupal AppHack-Proof Your Drupal App
Hack-Proof Your Drupal App
 
Java Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and MobileJava Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and Mobile
 
API presentation
API presentationAPI presentation
API presentation
 
Architect's Guide to Building an API Program
Architect's Guide to Building an API ProgramArchitect's Guide to Building an API Program
Architect's Guide to Building an API Program
 
[drupalday2017] - REST in pieces
[drupalday2017] - REST in pieces[drupalday2017] - REST in pieces
[drupalday2017] - REST in pieces
 
REST in pieces
REST in piecesREST in pieces
REST in pieces
 
Evolve18 | Abhishek Dwevidi & Varun Mitra | Intro to Backend Development in AEM
Evolve18 | Abhishek Dwevidi & Varun Mitra | Intro to Backend Development in AEMEvolve18 | Abhishek Dwevidi & Varun Mitra | Intro to Backend Development in AEM
Evolve18 | Abhishek Dwevidi & Varun Mitra | Intro to Backend Development in AEM
 

Mais de MuleSoft

The CIO's Guide to Digital Transformation
The CIO's Guide to Digital TransformationThe CIO's Guide to Digital Transformation
The CIO's Guide to Digital TransformationMuleSoft
 
Gluecon 2017: Metadata is the Glue
Gluecon 2017: Metadata is the GlueGluecon 2017: Metadata is the Glue
Gluecon 2017: Metadata is the GlueMuleSoft
 
Gluecon 2017: API Modelling Framework - A Toolbox for Interacting With API S...
Gluecon 2017: API Modelling Framework -  A Toolbox for Interacting With API S...Gluecon 2017: API Modelling Framework -  A Toolbox for Interacting With API S...
Gluecon 2017: API Modelling Framework - A Toolbox for Interacting With API S...MuleSoft
 
How to Get Unstuck
How to Get Unstuck How to Get Unstuck
How to Get Unstuck MuleSoft
 
How API Enablement Drives Legacy Modernization
How API Enablement Drives Legacy ModernizationHow API Enablement Drives Legacy Modernization
How API Enablement Drives Legacy ModernizationMuleSoft
 
Gathering Operational Intelligence in Complex Environments at Splunk
Gathering Operational Intelligence in Complex Environments at SplunkGathering Operational Intelligence in Complex Environments at Splunk
Gathering Operational Intelligence in Complex Environments at SplunkMuleSoft
 
Governing and Sharing your Integration Assets
Governing and Sharing your Integration AssetsGoverning and Sharing your Integration Assets
Governing and Sharing your Integration AssetsMuleSoft
 
MuleSoft's Approach to Driving Customer Outcomes
MuleSoft's Approach to Driving Customer Outcomes MuleSoft's Approach to Driving Customer Outcomes
MuleSoft's Approach to Driving Customer Outcomes MuleSoft
 
Designing and building Mule applications
Designing and building Mule applicationsDesigning and building Mule applications
Designing and building Mule applicationsMuleSoft
 
Object Store
Object StoreObject Store
Object StoreMuleSoft
 
Introducing Anypoint Exchange 2.0
Introducing Anypoint Exchange 2.0Introducing Anypoint Exchange 2.0
Introducing Anypoint Exchange 2.0MuleSoft
 
Troubleshooting Anypoint Platform
Troubleshooting Anypoint PlatformTroubleshooting Anypoint Platform
Troubleshooting Anypoint PlatformMuleSoft
 
Relevancy in a Rapidly Changing World (Yvonne Wassenaar)
Relevancy in a Rapidly Changing World (Yvonne Wassenaar)Relevancy in a Rapidly Changing World (Yvonne Wassenaar)
Relevancy in a Rapidly Changing World (Yvonne Wassenaar)MuleSoft
 
Leveraging APIs and the Cloud to Transform Veteran Care (Steve Rushing)
Leveraging APIs and the Cloud to Transform Veteran Care (Steve Rushing)Leveraging APIs and the Cloud to Transform Veteran Care (Steve Rushing)
Leveraging APIs and the Cloud to Transform Veteran Care (Steve Rushing)MuleSoft
 
Role of Technology in the Evolution of P&C Insurance (Marcus Ryu)
Role of Technology in the Evolution of P&C Insurance (Marcus Ryu)Role of Technology in the Evolution of P&C Insurance (Marcus Ryu)
Role of Technology in the Evolution of P&C Insurance (Marcus Ryu)MuleSoft
 
Industry Stories: How Application Networks are Delivering Agility (Ross Mason)
Industry Stories: How Application Networks are Delivering Agility (Ross Mason)Industry Stories: How Application Networks are Delivering Agility (Ross Mason)
Industry Stories: How Application Networks are Delivering Agility (Ross Mason)MuleSoft
 
Agility in the Age of Services and Hyperspecialization (Greg Schott)
Agility in the Age of Services and Hyperspecialization (Greg Schott)Agility in the Age of Services and Hyperspecialization (Greg Schott)
Agility in the Age of Services and Hyperspecialization (Greg Schott)MuleSoft
 
Know What You Don’t Know - ModusBox Presents the Metrics Dashboard
Know What You Don’t Know - ModusBox Presents the Metrics DashboardKnow What You Don’t Know - ModusBox Presents the Metrics Dashboard
Know What You Don’t Know - ModusBox Presents the Metrics DashboardMuleSoft
 
PetSmart’s eCommerce Modernization: Using APIs To Drive Agility & Omnichannel...
PetSmart’s eCommerce Modernization: Using APIs To Drive Agility & Omnichannel...PetSmart’s eCommerce Modernization: Using APIs To Drive Agility & Omnichannel...
PetSmart’s eCommerce Modernization: Using APIs To Drive Agility & Omnichannel...MuleSoft
 
Building the Digital Foundation for a $28Bn Enterprise using MuleSoft’s Anypo...
Building the Digital Foundation for a $28Bn Enterprise using MuleSoft’s Anypo...Building the Digital Foundation for a $28Bn Enterprise using MuleSoft’s Anypo...
Building the Digital Foundation for a $28Bn Enterprise using MuleSoft’s Anypo...MuleSoft
 

Mais de MuleSoft (20)

The CIO's Guide to Digital Transformation
The CIO's Guide to Digital TransformationThe CIO's Guide to Digital Transformation
The CIO's Guide to Digital Transformation
 
Gluecon 2017: Metadata is the Glue
Gluecon 2017: Metadata is the GlueGluecon 2017: Metadata is the Glue
Gluecon 2017: Metadata is the Glue
 
Gluecon 2017: API Modelling Framework - A Toolbox for Interacting With API S...
Gluecon 2017: API Modelling Framework -  A Toolbox for Interacting With API S...Gluecon 2017: API Modelling Framework -  A Toolbox for Interacting With API S...
Gluecon 2017: API Modelling Framework - A Toolbox for Interacting With API S...
 
How to Get Unstuck
How to Get Unstuck How to Get Unstuck
How to Get Unstuck
 
How API Enablement Drives Legacy Modernization
How API Enablement Drives Legacy ModernizationHow API Enablement Drives Legacy Modernization
How API Enablement Drives Legacy Modernization
 
Gathering Operational Intelligence in Complex Environments at Splunk
Gathering Operational Intelligence in Complex Environments at SplunkGathering Operational Intelligence in Complex Environments at Splunk
Gathering Operational Intelligence in Complex Environments at Splunk
 
Governing and Sharing your Integration Assets
Governing and Sharing your Integration AssetsGoverning and Sharing your Integration Assets
Governing and Sharing your Integration Assets
 
MuleSoft's Approach to Driving Customer Outcomes
MuleSoft's Approach to Driving Customer Outcomes MuleSoft's Approach to Driving Customer Outcomes
MuleSoft's Approach to Driving Customer Outcomes
 
Designing and building Mule applications
Designing and building Mule applicationsDesigning and building Mule applications
Designing and building Mule applications
 
Object Store
Object StoreObject Store
Object Store
 
Introducing Anypoint Exchange 2.0
Introducing Anypoint Exchange 2.0Introducing Anypoint Exchange 2.0
Introducing Anypoint Exchange 2.0
 
Troubleshooting Anypoint Platform
Troubleshooting Anypoint PlatformTroubleshooting Anypoint Platform
Troubleshooting Anypoint Platform
 
Relevancy in a Rapidly Changing World (Yvonne Wassenaar)
Relevancy in a Rapidly Changing World (Yvonne Wassenaar)Relevancy in a Rapidly Changing World (Yvonne Wassenaar)
Relevancy in a Rapidly Changing World (Yvonne Wassenaar)
 
Leveraging APIs and the Cloud to Transform Veteran Care (Steve Rushing)
Leveraging APIs and the Cloud to Transform Veteran Care (Steve Rushing)Leveraging APIs and the Cloud to Transform Veteran Care (Steve Rushing)
Leveraging APIs and the Cloud to Transform Veteran Care (Steve Rushing)
 
Role of Technology in the Evolution of P&C Insurance (Marcus Ryu)
Role of Technology in the Evolution of P&C Insurance (Marcus Ryu)Role of Technology in the Evolution of P&C Insurance (Marcus Ryu)
Role of Technology in the Evolution of P&C Insurance (Marcus Ryu)
 
Industry Stories: How Application Networks are Delivering Agility (Ross Mason)
Industry Stories: How Application Networks are Delivering Agility (Ross Mason)Industry Stories: How Application Networks are Delivering Agility (Ross Mason)
Industry Stories: How Application Networks are Delivering Agility (Ross Mason)
 
Agility in the Age of Services and Hyperspecialization (Greg Schott)
Agility in the Age of Services and Hyperspecialization (Greg Schott)Agility in the Age of Services and Hyperspecialization (Greg Schott)
Agility in the Age of Services and Hyperspecialization (Greg Schott)
 
Know What You Don’t Know - ModusBox Presents the Metrics Dashboard
Know What You Don’t Know - ModusBox Presents the Metrics DashboardKnow What You Don’t Know - ModusBox Presents the Metrics Dashboard
Know What You Don’t Know - ModusBox Presents the Metrics Dashboard
 
PetSmart’s eCommerce Modernization: Using APIs To Drive Agility & Omnichannel...
PetSmart’s eCommerce Modernization: Using APIs To Drive Agility & Omnichannel...PetSmart’s eCommerce Modernization: Using APIs To Drive Agility & Omnichannel...
PetSmart’s eCommerce Modernization: Using APIs To Drive Agility & Omnichannel...
 
Building the Digital Foundation for a $28Bn Enterprise using MuleSoft’s Anypo...
Building the Digital Foundation for a $28Bn Enterprise using MuleSoft’s Anypo...Building the Digital Foundation for a $28Bn Enterprise using MuleSoft’s Anypo...
Building the Digital Foundation for a $28Bn Enterprise using MuleSoft’s Anypo...
 

Último

A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfYashikaSharma391629
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
How To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROHow To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROmotivationalword821
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 

Último (20)

A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
How To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROHow To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTRO
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 

Applying UX principles and methods to APIs

Notas do Editor

  1. Hello, everybody, my name is Diego Fernández. I’m part of the user experience team at MuleSoft.
  2. Today, you can ask to your phone to give you directions. An application like Google Now or Siri will send the audio to a service to interpret your voice. It will connect to other services to give you directions, ratings from social networks, traffic information, and even make a car reservation.
  3. If you tell me this story when I had 12 years old, I’ll think that is science fiction. But is not. Many people in this room are in charge of making that fiction a reality. Directly or indirectly you create the services that enhance our lives. As service designers, we care about the quality. The services need to be secure, scale, and evolve.
  4. When it comes to usability, we tend to think only on the front end.
  5. There is no need to think much on the service usability because services are designed for developers by developers. So, they know exactly what is needed.
  6. The API creators run with an advantage, they don’t experience the process of learning the API. In other words: you are not your API user. And why is this important?
  7. Bad API usability can lead to bugs. 8% of Android had misused TLS and are vulnerable to man in the middle attacks. The main cause: API usability, so many developers by-passed the default implementations because it was hard to try things on development.
  8. Usability is about how easy to use are the interfaces We can decompose it further into quality attributes.
  9. Learnability, Efficiency, Memorability, Errors, and Satisfaction. Are highly correlated.
  10. To design an usable interface, it’s useful to think in the user interaction as it were a conversation.
  11. The user has an idea of how the system works, which is based on his goals, past knowledge and expectations. That is called the user mental model. While the system exposes its own model, which is the reflection of what the system designers wanted to do.
  12. To have this conversation the user needs to understand what are the things that he can interact with. The components on the screen communicates that information, sometimes with text, or sometimes with their form. The later is called affordance. When the user interacts, the system has to give some feedback. And the user learns from their actions.
  13. Those interactions doesn’t happen on isolation, their are part of a larger journey of the user with the system. Making that journey explicit is useful for improving the usability, because it helps to understand what is the past context of the user and where he wants to go.
  14. While interacting with the application the user may make mistakes, like choosing the wrong path to do things.
  15. … or it may have small slips. In both cases an usable system should have tolerance to human error. Usually the phrase “Tolerance to human errors” it’s abbreviated to just Errors
  16. So we have 3 basic concepts: affordance, feedback, and tolerance to errors. I'll use the term affordance in a loosely way, perhaps contributing to the misuse of it.
  17. Technically an affordance is the possibility of an action in an object or environment. In this picture, a possible action for the door handle is to push it. The shape of the handle makes pushing easier, even when the sign says "Pull". In cases like this there is a dissonance, and we tend to ignore the sign. Besides the technical definition of the word affordance, in UX design usually is used to describe the information that the objects transmits to us. And designers will use expressions like: “the handle affords pushing” (even if is not a 100% correct use of the term). The concept of affordance was made mainstream by Donald Norman, in his book The Design Of Everyday things. And many people calls this example “Norman Doors”
  18. On digital systems, we don’t have a physical shape. However, the design on the screen also communicates information. Just by looking or moving the mouse pointer we’ll know which things are clickable or not.
  19. That information is also cultural. For example, today many phone UIs uses a flat design. That design removed many clues, things don’t look like a button anymore. And there are actions that are totally hidden. From the usability point of view, that is not good. However, once that people get use to it, they will see the signs of where to go in the system.
  20. Meaning that there is a relationship between the affordances and standards. For example, some objects will communicate the right affordances in a mobile UI, but maybe not in a desktop UI.
  21. In a conversation when we say something, we can tolerate certain response delay. Why a maximum that is around a second. The same happens in a user interface
  22. Any delay greater than a second, should show a progress feedback to the user.
  23. also feedback comes from shorter interactions, when the user clicks something interactive on the screen or pushes a button, there has to be some feedback. Otherwise the user will not kwon that things are working
  24. the concept of feedback is tightly associated with the display of the system status. The goal is not only to react to user interactions, but to give the user a good picture of what is the state of the system.
  25. There are different strategies to handle human errors. Like allowing the user to undo or cancel a mistake. Using constraints, can prevent the user from making a mistake. A good example of constraint on physical devices are the power adapters for direct current, like the ones used on laptops. As user it doesn’t matter how you plug the power, the design doesn’t allow you put plug it on the wrong way. Using proper defaults can prevent errors too. And when a task has many steps, the chances to make mistakes increase. Also when the UI follows common patterns, the chances to make mistakes are reduced.
  26. Principles like affordance or feedback can be applied to an API too. For example, using the term API in a broad sense we can see an Java code example…
  27. we have a Java framework, that is going to be reused in our team. And we use dependency injection with private fields, what is the usability problem here?
  28. … when a framework user wants to use an object instance it may fail, because the object was not correctly created. That breaks my expectation of the default constructor, basically the default constructor is an affordance that tells me what I can do with the class. I can a long JavaDoc indicating how to instantiate the class, but…
  29. is like with the door example, users probably will not read the sign first
  30. With HTTP APIs happens something similar. Having path to delete resources, was a common solution to some browser limitations in the past. However, it communicates mixed signals: a GET verb is not intended to mutate data.
  31. the line on top, is the usual what to select by ID on a OData based API. while the one on the bottom is one of the usual patterns follow by many HTTP APIs Which one is better? It depends on the standards that our API follows. The important concept is to communicate the right signals to the developers that are discovering how to use the API. And keep a uniform pattern.
  32. every developer knows that doing something like this is bad, because you might be doing troubleshooting more difficult. From the usability point of view an APIs that mutes error that could affect the system state, is not giving a good feedback to the user.
  33. Sometimes the feedback can be misleading. This is a real example from the GitHub API. By the way, I like the GitHub API, is pretty nice and simple to use, but it has some usability annoyances too. For example issues in GitHub cannot be deleted. That breaks many user expectations, about what they can do with issues. When you try to delete an issue, the system will respond with 404. Which is unexpected, as a developer probably you’ll keep wondering if the issue path was incorrect. So the system is failing to provide me a good feedback about what is going on.
  34. a better response is to indicate that the method is not allowed, and even better is to provide a link to the right place in the documentation
  35. when it comes to error prevention, and usability issues the Date class in Java and JavaScript are great examples of what not to do. For example, the receives a year, month and day. But the values are used in a totally un-expected way. The year 2000 is represented with one hundred, months start from zero, and days from 1. JavaScript receives a String, but the behavior changes, sometimes it uses the current time, sometimes it doesn’t. Why?
  36. The first version of JavaScript didn’t took into account ISO-8601 dates. They added that support in newer versions. In order to make things easy, the keep the same interface, changing the behavior according to the received String. What are the usability issues here? First there is no affordance about the behavior change, there is nothing in the constructor that tells me how the API behaves. Is not uniform, and because of that it leads to bugs.
  37. For the case of user interfaces we took into account affordances and feedback, and also the user journey but does make sense to think on the user journey for the case of APIs?
  38. one difference is that our API can be used in many different ways… so it’s very hard to pick a few relevant stories
  39. why don’t we think on the interface in a generic way? But to ideate a generic interface, we need to have some use cases in mind. And when we start thinking in every possible use case, without thinking on the needs of the people that is going to use the API, we can end with many features that we don’t need.
  40. A report from 2002 used in many Agile software presentations, found that most of the time only 20% of the features in software are used frequently.
  41. To analyze what are the user needs, we need to take into account that users will approach the API in terms of their goals.
  42. It might be some obstacles to reach the goal
  43. The story of overcoming those obstacles varies a lot with the skills of the person
  44. Once that we know the persona, its goals, and what are the obstacles. We can ideate a story on how the persona overcomes the obstacles to reach the goal. This approach to stories differs from Agile User Stories. Because agile user stories usually don’t tell anything about the persona or the obstacles. It also differs from Use Cases, because Use Cases put the focus on roles and detailed specification of how the system behaves.
  45. The advantage of this approach is that it can be used to prioritize features, by covering different details on each release. But when you have many stories, like in the case of an API, trying to map every possible story could be a daunting task. Even in that case using stories to think on obstacles and goals, helps to define the personas that will use your system.
  46. Stories can be used to find gaps. It’s also useful to think on a “Origin Story”: the story of how the user starts using the API. That helps to reduce the ramp up in certain difficult areas like setting up authentication.
  47. A tool like the API Notebook can be used to tell de usage story of the API. It also helps to reduce the difficulty of setting up the authentication
  48. Another approach is to use some high level stories to determine the features and personas. And then see what features fits for each type of user
  49. Some features can be very hard to use for some users and become a barrier, but be very valuable to an advanced user. Others may add some value. And others may be neutral. In this way we can have an idea of what areas can be problematic, and where to put the focus
  50. Another area where stories are useful is to evaluate how uniform is our system model across the user Journey
  51. Here the date uses ISO format…
  52. but later in the journey uses a time stamp This kind of problem is easy to detect when we make the journey explicit by ideating stories. Also we can create a concept map from the story
  53. A concept map is very similar to a UML class diagram. But instead of focusing in the system classes, it puts the focus on concepts and their relationships. This can be used to capture concepts perceived by the user during the journey.
  54. and the good news is that based on the concept maps, we can derive types, and reuse them across our API specifications
  55. We did all of this API analysis, now how might we know that our design decisions were good? We need to evaluate our API design…
  56. Expert evaluations: - Cognitive walkthrough - Heuristic evaluation (variation: Cognitive Dimensions Framework) Usability Test - Remote - Think aloud (variation: pseudo-code first)
  57. Usability tests consists on giving to participants tasks to do with the API. How I pick the participants? The stories helps on this. Because once you think about goals and obstacles, the required skills comes to mind. That helps you to start an analysis of users that will evolve, and helps to find the right candidates.
  58. Variation: Make the participants write what they want to do in pseudo-code This will help to understand the user mental model, and how the API differs
  59. The mocking service in API manager, can help you to quickly prototype the API and test it.
  60. Studio will also mock responses when you import a RAML with examples. Then you can add extra logic for your usability tests.