establishing performance contexts

77
Establishing performance contexts Ian Feather - @ianfeather

Upload: ianfeather

Post on 27-Nov-2014

969 views

Category:

Technology


0 download

DESCRIPTION

Segmenting your site to target specific user performance contexts

TRANSCRIPT

Page 1: Establishing Performance Contexts

Establishing performance contexts

Ian Feather - @ianfeather

Page 2: Establishing Performance Contexts

Performance at !

!

Page 3: Establishing Performance Contexts

We don’t know how important speed is to our users at a given time

Page 4: Establishing Performance Contexts
Page 5: Establishing Performance Contexts
Page 6: Establishing Performance Contexts
Page 7: Establishing Performance Contexts
Page 8: Establishing Performance Contexts

It’s not that hard to get fast

Page 9: Establishing Performance Contexts

It’s not that hard to get fast

Page 10: Establishing Performance Contexts

It’s not that hard to get fast

Page 11: Establishing Performance Contexts

It’s not that hard to get fast

Page 12: Establishing Performance Contexts
Page 13: Establishing Performance Contexts

You can use these techniques to optimise

(to a certain extent)

Page 14: Establishing Performance Contexts
Page 15: Establishing Performance Contexts

Total: weight: 674 KB !

Until you scroll down the page…

Page 16: Establishing Performance Contexts
Page 17: Establishing Performance Contexts

!

Page 18: Establishing Performance Contexts

Performance vs Design is all about compromise

Page 19: Establishing Performance Contexts

Performance vs Design is all about compromise

Page 20: Establishing Performance Contexts

You can only get as fast as the design allows

Page 21: Establishing Performance Contexts

Performance Contexts

Page 22: Establishing Performance Contexts

We have to accept there are things we don’t know

Page 23: Establishing Performance Contexts

We are constantly required to make assumptions…

Page 24: Establishing Performance Contexts

Assumption 1:Users on mobile devices want a different experience to those on desktop

Page 25: Establishing Performance Contexts

Assumption 1:Users on mobile devices want a different experience to those on desktop

Viewport !== contextViewport !== network

Page 26: Establishing Performance Contexts

Assumption 2:Users want every site to load within X seconds

Page 27: Establishing Performance Contexts
Page 28: Establishing Performance Contexts
Page 29: Establishing Performance Contexts
Page 30: Establishing Performance Contexts
Page 31: Establishing Performance Contexts

Assumption 2:Users want every site to load within X secondsUsers want a site to load in-line with their expectations

Page 32: Establishing Performance Contexts

Serving the same experience across multiple unknowns

is a compromise

Page 33: Establishing Performance Contexts

Currently we don’t have the tools to do anything about this

Page 34: Establishing Performance Contexts

But… !

The Web is for everyone

Page 35: Establishing Performance Contexts

How can we determine a user’s performance context?

Page 36: Establishing Performance Contexts

Why not ask them?

Page 37: Establishing Performance Contexts

Hostel Mode

Page 38: Establishing Performance Contexts

http://blog.chriszacharias.com/page-weight-matters

Page 39: Establishing Performance Contexts
Page 40: Establishing Performance Contexts

“We even burned through our monthly data plans in 40 minutes.”

Page 41: Establishing Performance Contexts

LightMode

Default

Page 42: Establishing Performance Contexts

Segmenting in to two ‘modes’ can be very powerful but…

Page 43: Establishing Performance Contexts

Are we still making assumptions?

Page 44: Establishing Performance Contexts
Page 45: Establishing Performance Contexts

Did we ever ask users with retina screens if they want a slower experience?

Page 46: Establishing Performance Contexts

And are we still compromising?

Page 47: Establishing Performance Contexts

We can’t leverage the best of the platform… whilst limiting page weight.

Page 48: Establishing Performance Contexts
Page 49: Establishing Performance Contexts

LightMode

Default

Page 50: Establishing Performance Contexts

LightMode

Default

Enhanced

Page 51: Establishing Performance Contexts

Segmenting allows us to design focused User Experiences

Page 52: Establishing Performance Contexts

Asking the user

Page 53: Establishing Performance Contexts
Page 54: Establishing Performance Contexts
Page 55: Establishing Performance Contexts
Page 56: Establishing Performance Contexts

How could this look?

Page 57: Establishing Performance Contexts
Page 58: Establishing Performance Contexts
Page 59: Establishing Performance Contexts
Page 60: Establishing Performance Contexts
Page 61: Establishing Performance Contexts

Implementation Advice

Page 62: Establishing Performance Contexts

Don’t build three different websites!

Page 63: Establishing Performance Contexts

Abstract out the development complexity

Page 64: Establishing Performance Contexts

if('querySelector' in document && 'localStorage' in window && 'addEventListener' in window && 'classList' in document.documentElement && lpHostelMode() !== "light") {}

Global feature switches

Page 65: Establishing Performance Contexts

<div class=“my-module”> <h1>{{ moduleTitle }}</h1> {{ img_tag(moduleImage) }} <p>{{ moduleContent }}</p> </div>

Authoring must stay the same

Page 66: Establishing Performance Contexts

def img_tag(image_url, opts={}) return if @hostelMode !

image_tag(image_url, opts) end

Use helpers to abstract switches

Page 67: Establishing Performance Contexts

Stateless vs Stateful

Page 68: Establishing Performance Contexts

Consider the preloader

Page 69: Establishing Performance Contexts

Future: Could the browser expose these user options?

Page 70: Establishing Performance Contexts

Recap

Page 71: Establishing Performance Contexts

You can only get as fast as the design allows

Page 72: Establishing Performance Contexts

Your application may be entirely inaccessible to parts of the world

Page 73: Establishing Performance Contexts

Segmenting the user experience can be very powerful

Page 74: Establishing Performance Contexts

Don’t guess. Ask.

Page 75: Establishing Performance Contexts

Don’t do it at the expense of complexity

Page 76: Establishing Performance Contexts

Thank youIan Feather - @ianfeather

Page 77: Establishing Performance Contexts

Creative Commons !

!

!

Arrano : https://flic.kr/p/4WjZDf Patrick Quinn-Graham (thepatrick): https://flic.kr/p/Tk4Ha Leonardo Rizzi (L1010913): https://flic.kr/p/cVRiZm