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

Transcript of delightful ux for distributed systems euc2016 · Delightful UX for Distributed Systems MICHAEL...

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.

👋