Designing speed with progressive enhancement

43
DESIGNING SPEED WITH PROGRESSIVE ENHANCEMENT Sergey Chernyshev | @SergeyChe WebPerf Camp, 2016

Transcript of Designing speed with progressive enhancement

Page 1: Designing speed with progressive enhancement

DESIGNING SPEED WITH PROGRESSIVE ENHANCEMENT

Sergey Chernyshev | @SergeyChe WebPerf Camp, 2016

Page 2: Designing speed with progressive enhancement
Page 3: Designing speed with progressive enhancement
Page 4: Designing speed with progressive enhancement

Sloooowly

Page 5: Designing speed with progressive enhancement

SPEED MATTERS

to your users and to you

Page 6: Designing speed with progressive enhancement

SLOW MEANS LOWER CONVERSION

RUM data. Aaron Kulick, Cliff Crocker @ Wallmart Labs

Page 7: Designing speed with progressive enhancement

CONVERTED USERS HAVE FASTER EXPERIENCE

RUM data. Aaron Kulick, Cliff Crocker @ Wallmart Labs

Page 8: Designing speed with progressive enhancement

STATS

➤ Google: +500ms => -25% searches (2006)

➤ Amazon: +100ms => -1% revenue (2008)

➤ Netflix: +GZip => -43% Traffic cost (2008)

➤ Shopzilla: -5s => +12% Conversion rate (2009)

➤ Google: +400ms => -0.21% searches after experiment! (2009)

➤ Mozilla: -2.2s => +15.4% Downloads (2010)

➤ Edmunds: -77% load time => +20% page views (2011)

➤ DoubleClick: -1 redirect => +12% CTR (2011)

➤ Etsy: +160Kb => +12% bounce rate (2014)

➤ Trainline: -0.3s => +$11.5M / year revenue

http://WPOStats.com/

Page 9: Designing speed with progressive enhancement

WHAT DOES MY SITE COST? (WHATDOESMYSITECOST.COM)

http://www.disney.com/

Page 10: Designing speed with progressive enhancement

% OF DAILY BUDGET (WHATDOESMYSITECOST.COM)

http://www.disney.com/

Page 11: Designing speed with progressive enhancement

DESIGNFOR SPEED

and progressive enhancement

Page 12: Designing speed with progressive enhancement

MOVIES OR PAINTINGS?

Speed vs. Fluency, What drives user engagement?

Kent Alstad, Velocity NY 2015

Page 13: Designing speed with progressive enhancement

PERFORMANCE CHOREOGRAPHERS

Performance Choreography

Tim Kadlec, WebPerfDays NY 2014

Page 14: Designing speed with progressive enhancement

PROGRESSIVE ENHANCEMENT

➤ Enhance page features progressively as it loads and renders

➤ Main goals:

1. Enable features based on browser capabilities(e.g. JavaScript, image formats, local storage, gyro/compass)

2. Reveal features as page is being downloaded and rendered (render basic html + CSS, add JS handlers, fonts, etc)

Page 15: Designing speed with progressive enhancement

FEATURES BASED ON CAPABILITIES

book by Filament Grouphttp://filamentgroup.com/dwpe/

Page 16: Designing speed with progressive enhancement

RENDER & INTERACTION STAGES

1. Verify destination

2. Provide primary content

3. Allow interaction

4. Show secondary content

5. Invisible tasks

Acknowledge action

1. Verify destination

2. …

Page 17: Designing speed with progressive enhancement

VERIFY DESTINATION

➤ Core branding

➤ Maybe a breadcrumb

Page 18: Designing speed with progressive enhancement

PROVIDE PRIMARY CONTENT

➤ Leaderboards, article text and photo, product images

Page 19: Designing speed with progressive enhancement

ALLOW INTERACTION

➤ Call to action, video play button, carousel arrows

Page 20: Designing speed with progressive enhancement

SHOW SECONDARY CONTENT

➤ Sidebars, secondary content

➤ Additional navigation

➤ User-generated content, sharing buttons, ads

Page 21: Designing speed with progressive enhancement

INVISIBLE TASKS

➤ Below the fold content

➤ Analytics calls (“pixels”)

Page 22: Designing speed with progressive enhancement

RENDER & INTERACTION STAGES

1. Verify destination

2. Provide primary content

3. Allow interaction

4. Show secondary content

5. Invisible tasks

Acknowledge action

1. Verify destination

2. …

Page 23: Designing speed with progressive enhancement

ACKNOWLEDGE ACTION

➤ Disable submit button with “in progress” label,disable form elements

➤ Show transitional overlay (e.g. “Opening PayPal…”)

➤ Erase content area of the page

➤ No spinners!

Page 24: Designing speed with progressive enhancement

INCREMENTAL MOCKUP 1

Page 25: Designing speed with progressive enhancement

INCREMENTAL MOCKUP 2

Page 26: Designing speed with progressive enhancement

INCREMENTAL MOCKUP 3

Page 27: Designing speed with progressive enhancement

INCREMENTAL MOCKUP 4

Page 28: Designing speed with progressive enhancement

INCREMENTAL MOCKUP 5

Page 29: Designing speed with progressive enhancement

STAGES & TECHNICAL CONSTRAINTS

Stage

1. Verify destination

2. Provide primary content

3. Allow interaction

4. Show secondary content

5. Invisible tasks

Acknowledge action

Technology Constraints

1. Inline CSS & Logo, 14K

2. no JS, CSS, just HTML, image

3. Skeletal CSS, async JS

4. All CSS, above the fold images, fonts, AJAX-in content

5. The rest

Pre-transition feedback,fake transition

Page 30: Designing speed with progressive enhancement

THROUGHOUT DESIGN & DEV PROCESS

➤ Wires (multiple)

➤ PSD / Sketch Mockups (multiple files)

➤ HTML Mockups (separate HTML files)

➤ Front-end implementation (query string params)?

➤ Full implementation (in dev / test / pre-prod)?

http://test.mysite.com/page.html?stage=1

http://test.mysite.com/page.html?stage=2

...

Page 31: Designing speed with progressive enhancement

SPEED(ANTI-)

PATTERNSset best practices

Page 32: Designing speed with progressive enhancement

ANTI-PROGRESS

Luke Wroblewski: Mobile Design Details: Avoid The Spinner: http://www.lukew.com/ff/entry.asp?1797

Page 33: Designing speed with progressive enhancement

FAST-PROGRESS

Luke Wroblewski: Mobile Design Details: Avoid The Spinner: http://www.lukew.com/ff/entry.asp?1797

Page 34: Designing speed with progressive enhancement

FAST-PROGRESS

Luke Wroblewski: Mobile Design Details: Avoid The Spinner: http://www.lukew.com/ff/entry.asp?1797

Page 35: Designing speed with progressive enhancement

ANTI-CAROUSEL

Page 36: Designing speed with progressive enhancement

FAST-CAROUSEL

just static image, HTML & CSS

Page 37: Designing speed with progressive enhancement

FAST-CAROUSEL

fully loaded, JavaScript, click & touch / swipe

Page 38: Designing speed with progressive enhancement

ANTI ADS

Page 39: Designing speed with progressive enhancement

PUSHY ADS

Page 40: Designing speed with progressive enhancement

EXPECTED ADS

Page 41: Designing speed with progressive enhancement

EXPECTED ADS

Page 42: Designing speed with progressive enhancement

SPEED PROCESS

➤ Identify design components

➤Set Constraints ➤Measure and

compare to baseline ➤Avoid Anti-Patterns,

define best practices

Page 43: Designing speed with progressive enhancement

THANK YOU@SergeyChe | [email protected]