Top Banner
Finding the Path: The Principles of Effec7ve API Design Ronnie Mitra @mitraman [email protected] Director of Design CA API Academy
61
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Finding the Right Path by Ronnie Mitra

Finding  the  Path:  The  Principles  of  Effec7ve  API  Design    

Ronnie  Mitra  @mitraman  [email protected]  Director  of  Design  CA  API  Academy  

Page 2: Finding the Right Path by Ronnie Mitra

Finding The Path To Success

Finding The Path

Page 3: Finding the Right Path by Ronnie Mitra

Three Principles of Success

Align with your business model

Design with empathy

Manage complexity

1

2

3

Page 4: Finding the Right Path by Ronnie Mitra

Design with Empathy.

Page 5: Finding the Right Path by Ronnie Mitra

Server Client

Page 6: Finding the Right Path by Ronnie Mitra

Server Client

Page 7: Finding the Right Path by Ronnie Mitra

API

Page 8: Finding the Right Path by Ronnie Mitra

Server Client API

Page 9: Finding the Right Path by Ronnie Mitra

The Human Factor

API Client

development platform

API Tools

Page 10: Finding the Right Path by Ronnie Mitra

Client Server

Page 11: Finding the Right Path by Ronnie Mitra

API

Page 12: Finding the Right Path by Ronnie Mitra

API

Page 13: Finding the Right Path by Ronnie Mitra

platform

language

organization

distance

knowledge

risk profile

investment

For Whom?

Page 14: Finding the Right Path by Ronnie Mitra

Persona Driven Design

BenjaminAfina

C++ Developer Server Software

Internal Developer Project-led development

Cordova Developer Mobile Apps

Third Party Developer Freelance Development

Page 15: Finding the Right Path by Ronnie Mitra

Manage Complexity.

Page 16: Finding the Right Path by Ronnie Mitra
Page 17: Finding the Right Path by Ronnie Mitra
Page 18: Finding the Right Path by Ronnie Mitra

complexité

Complexity

Page 19: Finding the Right Path by Ronnie Mitra

What is Complexity?

•  Composed  of  many  parts  •  Intricate,  elaborate,  interconnected  •  Difficult  to  process,  resource  intensive  

Page 20: Finding the Right Path by Ronnie Mitra

System Complexity

Interface Complexity

Page 21: Finding the Right Path by Ronnie Mitra

System Complexity

Page 22: Finding the Right Path by Ronnie Mitra

Systems Complexity: Emergence

The action of the whole is more than the sum of the actions of the

parts

Page 23: Finding the Right Path by Ronnie Mitra

Complex Physical Systems

Page 24: Finding the Right Path by Ronnie Mitra

Complex Adaptive Systems

Page 25: Finding the Right Path by Ronnie Mitra

Emergent and Adaptive Behaviour

•  Agents become specialized •  Behaviour is de-centralized •  The system can adapt to change

Page 26: Finding the Right Path by Ronnie Mitra

Adaptive system

Increased reliability

System Complexity as a Feature

Performance Credit-Assignment Rule-Discovery

Page 27: Finding the Right Path by Ronnie Mitra

Interface Complexity

Page 28: Finding the Right Path by Ronnie Mitra

Different Perspectives Similar Conclusions

Complexity in Design

Page 29: Finding the Right Path by Ronnie Mitra

Cognitive Complexity: Norman

“Complexity  by  itself  is  neither  good  nor  bad:  it  is  confusion  that  is  bad.”  

Page 30: Finding the Right Path by Ronnie Mitra

Reduce Organize Time Learn Differences Context Emotion Trust The One

Cognitive Complexity: Maeda

“Simplicity  is  about  subtrac7ng  the  obvious  and  adding  the  meaningful”  

Page 31: Finding the Right Path by Ronnie Mitra

Simple or Complex?

Page 32: Finding the Right Path by Ronnie Mitra

Complexity is a Perceived Quality

interface  

simple

confusing

Page 33: Finding the Right Path by Ronnie Mitra

Making Interfaces Simpler

The designer’s job is to manage complexity: •  improve learnability •  improve usability •  reduce confusion

Page 34: Finding the Right Path by Ronnie Mitra

Managing Complexity

Page 35: Finding the Right Path by Ronnie Mitra

Where Does Interface Complexity Come From?

complexity is the price we pay for utility

Page 36: Finding the Right Path by Ronnie Mitra

Fred Brooks

The complexity of software is an essential property not an accidental one. Hence descriptions of a software entity that abstract away its complexity often abstract away its essence.

No Silver Bullet – Essence and Accident in Software Engineering

Page 37: Finding the Right Path by Ronnie Mitra

Larry Tesler

Tesler’s Law of the Conservation of Complexity

Every application has an inherent amount of irreducible complexity. The only question is: who will have to deal with it […]?

Page 38: Finding the Right Path by Ronnie Mitra

OAuth 2.0

Complex?

Page 39: Finding the Right Path by Ronnie Mitra

OAuth 2.0 Complexity: A Fictional Measurement

OAuth 2.0Complexity(if we couldmeasure it)

Page 40: Finding the Right Path by Ronnie Mitra

Managing OAuth 2.0 Complexity: Who Pays the Price?

OAuth  2  Client    Implementa7on  

OAuth  2  Server    Implementa7on  

!!!

Page 41: Finding the Right Path by Ronnie Mitra

Client    Implementa7on  

Server    Implementa7on  

!!!

tooling  tooling  

Managing OAuth 2.0 Complexity

Page 42: Finding the Right Path by Ronnie Mitra

Managing Complexity: Microservices

Monolith Application Microservices Application

μService  

API  

μService  

μService  

μService  

μService  

μService  

API   API  

API   API   API  

API  

Page 43: Finding the Right Path by Ronnie Mitra

Managing Complexity: The Monolith

Monolith Application

API  

Who pays the complexity price?

Code Maintainer System Maintainer

Page 44: Finding the Right Path by Ronnie Mitra

Managing Complexity: Microservices

Who pays the complexity price?

Code Maintainer System Maintainer

Microservices Application

μService  

μService  

μService  

μService  

API   API  

API   API  

Page 45: Finding the Right Path by Ronnie Mitra

Managing Complexity: Microservices

•  Service becomes less confusing, but system complexity increases

•  Complexity cost is worthwhile

•  Tools are introduced to hide (shift) complexity

containerization

discovery

deployment

Page 46: Finding the Right Path by Ronnie Mitra

Managing Complexity: Microservices boundaries

μService  

μService  

μService  

μService  

μService  

μService  

client application

API   API  

API   API   API  

API  

Page 47: Finding the Right Path by Ronnie Mitra

Managing Complexity: Microservices

Who pays the complexity price?

Code Maintainer

System Maintainer

Microservices Application

μService  

μService  

μService  

μService  

API   API  

API   API  

Client App Developer

Page 48: Finding the Right Path by Ronnie Mitra

Managing Complexity: Client Applications

μService  

μService  

μService  

μService  

μService  

μService  

client application

API   API  

API   API   API  

API  SDK  

API  

Page 49: Finding the Right Path by Ronnie Mitra

Managing Complexity: Client Applications

μService  

μService  

μService  

μService  

μService  

μService  

client application

API   API  

API   API   API  

API  

API  

Page 50: Finding the Right Path by Ronnie Mitra

Align with your business.

Page 51: Finding the Right Path by Ronnie Mitra

Inherited Complexity

world organization system interface

Page 52: Finding the Right Path by Ronnie Mitra

• Why  Good  API  Design  MaRers  

API Program Goals

1. Get more developers using the interface

2. Get applications to market quickly

The Benefits of a Usability and Experience Focus

1. A better experience (increased adoption)

2.  Ease of use (shorter dev cycle)

Why Good API Design Matters

Page 53: Finding the Right Path by Ronnie Mitra

An API Design Approach

1   Determine Goals

2   Identify Users

3   Design Interface

4   Evaluate

5   Implement

Page 54: Finding the Right Path by Ronnie Mitra

Why?

revenue reach innovation

growth compliance intel

1   Determine Goals

2   Identify Users

3   Design Interface

4   Evaluate

5   Implement

Page 55: Finding the Right Path by Ronnie Mitra

platform

language

organization

distance

knowledge

risk profile

investment

For Whom?

1   Determine Goals

2   Identify Users

3   Design Interface

4   Evaluate

5   Implement

Page 56: Finding the Right Path by Ronnie Mitra

Ideate, Experiment, Sketch & Prototype

1   Determine Goals

2   Identify Users

3   Design Interface

4   Evaluate

5   Implement

•  Start with design-focused

sketches

•  Built low-fidelity prototypes

•  Increase fidelity and incorporate actual implementation concerns

Page 57: Finding the Right Path by Ronnie Mitra

Test Assumptions

Lab Evaluation

Peer Evaluation

User Observation

Write Client Code

Participatory Design

1   Determine Goals

2   Identify Users

3   Design Interface

4   Evaluate

5   Implement

•  Include implementation concerns in evaluation

•  Ensure that design is practical

•  Articulate the implementation cost

Page 58: Finding the Right Path by Ronnie Mitra

Implementation

1   Determine Goals

2   Identify Users

3   Design Interface

4   Evaluate

5   Implement

…Analyze Real Usage

Embrace and Manage Complexity

Iterate and Evolve

Page 59: Finding the Right Path by Ronnie Mitra

Three Principles of Success

Align with your business model

Design with empathy

Manage complexity

1

2

3

Page 60: Finding the Right Path by Ronnie Mitra

Finding The Path To Success

Finding The Path

Page 61: Finding the Right Path by Ronnie Mitra

Finding  the  Path:  The  Principles  of  Effec7ve  API  Design    

Ronnie  Mitra  @mitraman  [email protected]  Director  of  Design  CA  API  Academy