delightful ux for distributed systems euc2016 · delightful ux for distributed systems michael...

65
Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016

Upload: others

Post on 20-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

Delightful UX for Distributed SystemsMICHAEL NORTH Levanto FinancialErlang User Conference - September 8, 2016

Page 2: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

Hello!@MichaelLNorth

Page 3: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

Levanto Financial

Page 4: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth
Page 5: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

Finding emergency cash

America’s secret problem

48% Households struggle to cover $400 crisis

35% High-earning households struggle to find $1000

Page 6: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

Technology Falls Short

Page 7: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

4.7 Budgeting apps and services tried before us

14 Bank, credit, insurance, loan and bill-payment accounts

$270K Average household annual income

Page 8: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

Technology Falls Short

Page 9: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

Technology

Page 10: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

Technology +

Page 11: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

Technology +

Experts

Page 12: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth
Page 13: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

Your Dev Environment is a Scumbag LiarMICHAEL NORTH Levanto FinancialErlang User Conference - September 8, 2016

Page 14: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

Your Dev Environment is a Scumbag LiarMICHAEL NORTH Levanto FinancialErlang User Conference - September 8, 2016

Page 15: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

FFS, it doesn’t need to be perfectMICHAEL NORTH Levanto FinancialErlang User Conference - September 8, 2016

Page 16: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

FFS, it doesn’t need to be perfectMICHAEL NORTH Levanto FinancialErlang User Conference - September 8, 2016

Page 17: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

Build great UX today!MICHAEL NORTH Levanto FinancialErlang User Conference - September 8, 2016

Page 18: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

We all work on UX

low latencyfault tolerant

always available

easy to fix

collaboration-oriented

any device, any timeconsistent

scalable

auto conflict-resolving

quick to release

Page 19: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

SlowUnreliable

Approximate

Trustworthy

ClearResponsive

Page 20: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

Think in terms of Distributed Systems

Page 21: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth
Page 22: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth
Page 23: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth
Page 24: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

erlang for hipsters

Page 25: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth
Page 26: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

Abcdef

ACCOUNT NUMBER

*************

PASSWORD

*************

CONFIRM PASSWORD

Connect a Bank Account

Page 27: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

Long-running stuffUNAVOIDABLY TIME-CONSUMING TASKS

Page 28: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

Abcdef

ACCOUNT NUMBER

*************

PASSWORD

UI API BANKS

“LINK AN ACCOUNT”BEGIN SCREEN SCRAPING

FINISH SCREEN SCRAPING

RETURN LINKED ACCOUNT

Page 29: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth
Page 30: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

1¼HOURS

Page 31: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

Abcdef

ACCOUNT NUMBER

*************

PASSWORD

UI API BANKS

“LINK AN ACCOUNT”BEGIN SCREEN SCRAPING

FINISH SCREEN SCRAPING

RETURN LINKED ACCOUNT

6-15m Per Account

Page 32: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

UI API BANKS

“LINK AN ACCOUNT”BEGIN SCREEN SCRAPING

FINISH SCREEN SCRAPING

RETURN LINKED ACCOUNT

Page 33: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

UI API BANKS

“LINK AN ACCOUNT”BEGIN SCREEN SCRAPING

FINISH SCREEN SCRAPING

RETURN LINKED ACCOUNT

REQUIRES AUTH CODE

ASK USER FOR INFO

📲 INFO RESPONSEINFO RESPONSE

Page 34: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

Abcdef

ACCOUNT NUMBER

*************

PASSWORD

~75min

Page 35: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

UI API BANKS

“LINK AN ACCOUNT”BEGIN SCREEN SCRAPING

FINISH SCREEN SCRAPING

RETURN LINKED ACCOUNT

REQUIRES AUTH CODE

ASK USER FOR INFO

📲 INFO RESPONSEINFO RESPONSE

PENDING ACCOUNT

Page 36: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

Abcdef

ACCOUNT NUMBER

*************

PASSWORD

~75min

Page 37: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

1¼HOURS

Page 38: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

15 MINUTES

Page 39: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

Abcdef

ACCOUNT NUMBER

*************

PASSWORD

~75min

Page 40: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

Abcdef

ACCOUNT NUMBER

*************

PASSWORD

~15min

Page 41: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth
Page 42: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

We Can Do Better

Page 43: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

UI API BANKS

“LINK AN ACCOUNT”BEGIN SCREEN SCRAPING

FINISH SCREEN SCRAPING

RETURN LINKED ACCOUNT

REQUIRES AUTH CODE

ASK USER FOR INFO

📲 INFO RESPONSEINFO RESPONSE

PENDING ACCOUNT

Page 44: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

UI API BANKS

“LINK AN ACCOUNT”BEGIN SCREEN SCRAPING

FINISH SCREEN SCRAPING

RETURN LINKED ACCOUNT

REQUIRES AUTH CODE

ASK USER FOR INFO

📲 INFO RESPONSEINFO RESPONSE

PENDING ACCOUNT

Page 45: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

Interruptible FlowBRINGING THE USER BACK IN

Page 46: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth
Page 47: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

In app notification

Push notification

Email

phoenix presence browser events

blocking modal

pixel

3m

7m

Notification Delivery

Page 48: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

Abcdef

ACCOUNT NUMBER

*************

PASSWORD

~15min

Page 49: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

Abcdef

ACCOUNT NUMBER

*************

PASSWORD

~6min

Page 50: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth
Page 51: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

InvalidateEVICT RECORD(S) FROM THE STORE AND RE-FETCH

Push to Client:NotificationIN-APP NOTIFICATION MESSAGE

GatherFormGLOBAL DIALOG, WITH A DYNAMIC FORM TO FILL OUT

ClearLOGOUT, DUMP LOCALSTORAGE, REBOOT

Page 52: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

Depending on Unreliable SystemsMAXIMIZE INDEPENDENCE

Page 53: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

BROWSER API BANKS🌩

Page 54: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

BROWSER API BANKS🌩1. Connect to new accounts, or other sites

2. Repair broken connections

3. Pull new transaction data

Page 55: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

1. Connect to new accounts, or other sites

2. Repair broken connections

3. Pull new transaction data

AES-encrypted Queue

AES-encrypted Queue

We’ll live

Page 56: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

1. Connect to new accounts, or other sites

2. Repair broken connections

3. Pull new transaction data

AES-encrypted Queue

AES-encrypted Queue

We’ll live, but let users know data is “frozen”

Page 57: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

We’re unable to retrieve bank account data, as of 11:45pm on Saturday.

Transparency

Page 58: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

BROWSER API BANKS

Page 59: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

BROWSER API BANKS

Page 60: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

BROWSER API BANKS

Page 61: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

BROWSER API BANKS🌩• Fetch records

• Search for banking institutions to connect

• Re-categorize transactions

• Create new “budgets”

Page 62: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

• Fetch records

• Search for banking institutions to connect

• Re-categorize transactions

• Create new “budgets”

localStorage cache (except transactions)

cache most popular 5% institutions (constitutes 95% of accounts)

DISABLED

localStorage Queue Transp

arency

Again!

Page 63: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

Going back online

• Assume everything has changed

• Persist localStorage-queued records

• Flush cached data from localStorage

• But only when we establish valid connection with our API!

• Re-authorize via Channel

Page 64: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

Keep users in the loopTRANSPARENCY

Loosely coupleRELIABILITY BREEDS TRUST

Limited offline support is okDON’T BE AFRAID TO DISABLE

Don’t wait for “perfect”BUILD AMAZING UX TODAY

Delightful UX

for Distributed Systems

Page 65: delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL NORTH Levanto Financial Erlang User Conference - September 8, 2016. Hello! @MichaelLNorth

👋