Optimizing for a faster user experience Pt 2: How-to.

92
Optimizing the User Experience Pt 2: remedies James Christie @jc_ux Mad*Pow “I Feel the Need… …The Need for Speed”

description

From my presentation "I feel the need..the need for speed: Optimizing the User Experience", given at UXPA Boston 2014. This is the second half of the talk. The first half (are we slow? How slow? Why? And Why That's a Problem) used a ton of animation and rapid patter, and just doesn't make much sense on SlideShare without audio. I need to upload that to YouTube, someday.

Transcript of Optimizing for a faster user experience Pt 2: How-to.

Page 1: Optimizing for a faster user experience Pt 2: How-to.

Optimizing the User Experience Pt 2: remedies

James Christie @jc_ux Mad*Pow

“I Feel the Need… …The Need for Speed”

Page 2: Optimizing for a faster user experience Pt 2: How-to.

Originally presented at UXPA Boston 2014. Edited for SlideShare: bye-bye animations.

!

Part 1 (Why Speed Matters) coming soon. !

References, links: goo.gl/w0xp1P

Page 3: Optimizing for a faster user experience Pt 2: How-to.

RESEARCH - how fast are we?

STRATEGY - how fast should we be?

TECHNOLOGY - what do we need to invest in?

IA and IxD - planning fast pages

VISUAL DESIGN - making front-end savings

SPEED STACK

Page 4: Optimizing for a faster user experience Pt 2: How-to.

RESEARCH STRATEGY TECHNOLOGY INFORMATION ARCHITECTURE INTERACTION DESIGN VISUAL DESIGN

Page 5: Optimizing for a faster user experience Pt 2: How-to.
Page 6: Optimizing for a faster user experience Pt 2: How-to.

Time To Appear: you can see something

Time To Interact: you can click something

Page Loaded: everything loaded

DEFINITION OF TERMS

Page 7: Optimizing for a faster user experience Pt 2: How-to.
Page 8: Optimizing for a faster user experience Pt 2: How-to.
Page 9: Optimizing for a faster user experience Pt 2: How-to.
Page 10: Optimizing for a faster user experience Pt 2: How-to.

0 - 3s 3.5s 7s

Page 11: Optimizing for a faster user experience Pt 2: How-to.

Walk a mile in your user’s shoes

Page 12: Optimizing for a faster user experience Pt 2: How-to.

Someone in… Boston Dulles

Juno 15+ US places

Montevideo Monte Carlo

Sofia Osaka Beirut

Mombassa (dozens more)

Using a… PC with IE8 PC with IE6

PC with Chrome Android Tablet

Old iPhone New iPhone (many more)

Connecting by… 56k modem Good 3G Bad 3G EDGE DSL ISDN Fast Cable etc.

Page 13: Optimizing for a faster user experience Pt 2: How-to.

Someone in… Boston Dulles

Juno 15+ US places

Montevideo Monte Carlo

Sofia Osaka Beirut

Mombassa (dozens more)

Using a… PC with IE8 PC with IE6

PC with Chrome Android Tablet

Old iPhone New iPhone (many more)

Connecting by… 56k modem Good 3G Bad 3G EDGE DSL ISDN Fast Cable etc.

Page 14: Optimizing for a faster user experience Pt 2: How-to.

Dulles + 3g + Tablet = 70s

Page 15: Optimizing for a faster user experience Pt 2: How-to.

4.5s — menu appears 8s — page complete

Page 16: Optimizing for a faster user experience Pt 2: How-to.

Enterprise grade: Real User Monitoring

Page 17: Optimizing for a faster user experience Pt 2: How-to.
Page 18: Optimizing for a faster user experience Pt 2: How-to.
Page 19: Optimizing for a faster user experience Pt 2: How-to.
Page 20: Optimizing for a faster user experience Pt 2: How-to.
Page 21: Optimizing for a faster user experience Pt 2: How-to.

Average site load times

Specific load times for different personas/markets

List of things slowing us down.

RESEARCH UPSHOT

Page 22: Optimizing for a faster user experience Pt 2: How-to.

RESEARCH STRATEGY TECHNOLOGY INFORMATION ARCHITECTURE INTERACTION DESIGN VISUAL DESIGN

Page 23: Optimizing for a faster user experience Pt 2: How-to.

Bring performance out into the open

Page 24: Optimizing for a faster user experience Pt 2: How-to.

Sell the benefits

Page 25: Optimizing for a faster user experience Pt 2: How-to.

Get them hooked on Speed

Page 26: Optimizing for a faster user experience Pt 2: How-to.

Make performance cultural - use design principles

Page 27: Optimizing for a faster user experience Pt 2: How-to.
Page 28: Optimizing for a faster user experience Pt 2: How-to.
Page 29: Optimizing for a faster user experience Pt 2: How-to.

Set a goal: “<Our website> should load

in under 3 seconds”.

Page 30: Optimizing for a faster user experience Pt 2: How-to.

Explain the benefit

Organizational buy-in

Set goals

A culture of improvement

STRATEGY UPSHOT

Page 31: Optimizing for a faster user experience Pt 2: How-to.

RESEARCH STRATEGY TECHNOLOGY INFORMATION ARCHITECTURE INTERACTION DESIGN VISUAL DESIGN

Page 32: Optimizing for a faster user experience Pt 2: How-to.

DEVICE LAB

<needs a new photo which I probably won’t get round to in time, so just picture a big pile of old and new smartphones, tablets, Apple Newtons,

Blackberries, Internet Fridges, iTVs, smart watches etc>

Page 33: Optimizing for a faster user experience Pt 2: How-to.

Remove Duplicate Scripts Configure ETags Make AJAX Cacheable Use GET for AJAX Requests Reduce the Number of DOM Elements No 404s Reduce Cookie Size Use Cookie-Free Domains for Components Avoid Filters Do Not Scale Images in HTML Make favicon.ico Small and Cacheable

Minimize HTTP Requests Use a Content Delivery Network Avoid empty src or href Add an Expires or a Cache-Control Header Gzip Components Put StyleSheets at the Top Put Scripts at the Bottom Avoid CSS Expressions Make JavaScript and CSS External Reduce DNS Lookups Minify JavaScript and CSS Avoid Redirects

23 “basic” optimizations

Page 34: Optimizing for a faster user experience Pt 2: How-to.
Page 35: Optimizing for a faster user experience Pt 2: How-to.

The responsive image problem

Page 36: Optimizing for a faster user experience Pt 2: How-to.

OPTIMIZE IMAGES FOR MOBILE

“We’re missing out on 72% image savings for mobile.”

Tim Kadlec

Go read: http://timkadlec.com/2013/06/why-we-need-responsive-images/

Page 37: Optimizing for a faster user experience Pt 2: How-to.

“What is the cost of your non-responsive images?”

>4s load 50% images

Page 38: Optimizing for a faster user experience Pt 2: How-to.
Page 39: Optimizing for a faster user experience Pt 2: How-to.

Outsource it.

Page 40: Optimizing for a faster user experience Pt 2: How-to.

Speed-as-a-Service

Content Delivery Network

Script minification

Image optimisation

Accelerates modern and legacy browsers – creates different HTML for each

FRONT-END ACCELERATION

Page 41: Optimizing for a faster user experience Pt 2: How-to.

RESEARCH STRATEGY TECHNOLOGY INFORMATION ARCHITECTURE (& CS) INTERACTION DESIGN VISUAL DESIGN

Page 42: Optimizing for a faster user experience Pt 2: How-to.

1 video = 20 hi-res images

1 photo = 50,000 words

50,000 words = 3 SVG animations

CONTENT TRADE-OFFS

Page 43: Optimizing for a faster user experience Pt 2: How-to.

Home 2s

Product info 2s

Details video 8s

Ad landing 1.5s

Product info 2s

Which pages can be slow?

Page 44: Optimizing for a faster user experience Pt 2: How-to.

Set a time budget that suits needs of audience (3s is nice, 2s is better) (More mobile? Smaller pages.)

Guesstimate a target file size (~700kB)

Trade features and content against the budget until it fits

PAGE BUDGETS

Page 45: Optimizing for a faster user experience Pt 2: How-to.

1.2MB images

100kB JavaScript

400kB share buttons

200kB web fonts

50kB HTML & CSS

Size = 1,950kB

Total requests = 121

WIREFRAMES

Page 46: Optimizing for a faster user experience Pt 2: How-to.

100kb of images

10kB Script

0kB from share buttons

50kB web fonts

50kB HTML + CSS

Size = 200kB

Total requests = 20

AFTER

Page 47: Optimizing for a faster user experience Pt 2: How-to.

RESEARCH STRATEGY TECHNOLOGY INFORMATION ARCHITECTURE INTERACTION DESIGN: CHALLENGE TRENDS VISUAL DESIGN

Page 48: Optimizing for a faster user experience Pt 2: How-to.

“Don’t let 3rd parties get you down” - Google, at Velocity 2010

Found an ~15% latency impact

(Sleazy impact: 1,000%)

3RD PARTY CONTENT

Page 49: Optimizing for a faster user experience Pt 2: How-to.

BIG FAT PHOTO ~400kB

3 more photos …that no one will ever see

Page 50: Optimizing for a faster user experience Pt 2: How-to.
Page 51: Optimizing for a faster user experience Pt 2: How-to.
Page 52: Optimizing for a faster user experience Pt 2: How-to.

Facebook & Twitter & G+

& Disqus =

400kB in images & scripts

SHARE BUTTONS

Page 53: Optimizing for a faster user experience Pt 2: How-to.

SIMPLE BUTTON CURE

Page 54: Optimizing for a faster user experience Pt 2: How-to.

Maps: 400kB in images and scripts

Stop putting them in footers

Load them conditionally

MAPS

Page 55: Optimizing for a faster user experience Pt 2: How-to.

Just, no.

AUTOPLAY VIDEO

Page 56: Optimizing for a faster user experience Pt 2: How-to.

FOOL THE EYE

Page 57: Optimizing for a faster user experience Pt 2: How-to.
Page 58: Optimizing for a faster user experience Pt 2: How-to.

RESEARCH STRATEGY TECHNOLOGY INFORMATION ARCHITECTURE INTERACTION DESIGN: CHALLENGE TRENDS VISUAL DESIGN

Page 59: Optimizing for a faster user experience Pt 2: How-to.

“Save for web” is broken

Use a 3rd party (Kraken.io)

Experiment: point it at a homepage carousel.

OPTIMIZE PROPERLY

1.7MB, 5s load

Page 60: Optimizing for a faster user experience Pt 2: How-to.

1.7MB (5s load) 900kB (2s load?)

Page 61: Optimizing for a faster user experience Pt 2: How-to.

Combine the small fry

Page 62: Optimizing for a faster user experience Pt 2: How-to.

Replace lots of icons with one png or gif

Reduces objects and file size

Make your own: csssprites.com

CSS SPRITES

Page 63: Optimizing for a faster user experience Pt 2: How-to.

One file (and js) replacing all your site icons

Off the shelf: Icomoon, Pictos, Font Awesome…

Not super-well supported - test!

ICON FONTS

Page 64: Optimizing for a faster user experience Pt 2: How-to.

RADICAL CHANGE

Page 65: Optimizing for a faster user experience Pt 2: How-to.

Mono is smaller

Example:

130kB to 70kB

Mono doesn’t mean B&W

MONO!

wow

Page 66: Optimizing for a faster user experience Pt 2: How-to.

http://www.alistapart.com/articles/the-web-aesthetic

@garrettc’s cat

Page 67: Optimizing for a faster user experience Pt 2: How-to.

Big illustration: 75kB

!

Big photo: 350kB

ILLUSTRATION

Page 68: Optimizing for a faster user experience Pt 2: How-to.

Old iPhone: 163ppi

iPhone 5 Retina: 326ppi

Samsung: 560ppi now, 880ppi in 2015.

Each demanding higher-res pictures.

MARCH OF THE SCREENS

Page 69: Optimizing for a faster user experience Pt 2: How-to.
Page 70: Optimizing for a faster user experience Pt 2: How-to.

Scales to any size, stays same small size

Crisp on every screen

Versatile

Programmable

Safe to use (IE needs fallbacks)

VECTOR FTW

Page 71: Optimizing for a faster user experience Pt 2: How-to.

21 kB 600x300px

270 kB 600x300px

21 kB 1400x700

1.8 MB 1400x700

Standard resolutionRetina resolution

Page 72: Optimizing for a faster user experience Pt 2: How-to.

DesignModo Flat UI

Page 73: Optimizing for a faster user experience Pt 2: How-to.
Page 74: Optimizing for a faster user experience Pt 2: How-to.

JUST GO SEE THIS

http://goo.gl/RtvsUQ

Page 75: Optimizing for a faster user experience Pt 2: How-to.

WHAT DOES THE FAST WEB LOOK LIKE?

Page 76: Optimizing for a faster user experience Pt 2: How-to.

Photos

Photo Gradients

Complex

Many objects to load

3rd party dependencies

SLOW

Illustrations, Vectors

CSS gradients

Simple, flat

In-line, few objects

FAST

Page 77: Optimizing for a faster user experience Pt 2: How-to.

GET INSPIRED!

Page 78: Optimizing for a faster user experience Pt 2: How-to.

154kB page <1s load

22 objects (average:+100)

Page 79: Optimizing for a faster user experience Pt 2: How-to.

Photos: 10kB Selective blur

Page 80: Optimizing for a faster user experience Pt 2: How-to.

Web font: 22kB

Page 81: Optimizing for a faster user experience Pt 2: How-to.

SVG logo SVG background

Page 82: Optimizing for a faster user experience Pt 2: How-to.

Flat structure

Page 83: Optimizing for a faster user experience Pt 2: How-to.

100kB page 50kB less

Page 84: Optimizing for a faster user experience Pt 2: How-to.

536kB page 1.6s load

36 objects

Page 85: Optimizing for a faster user experience Pt 2: How-to.

Take away Google Analytics:6kB

19kB ~150ms load

Page 86: Optimizing for a faster user experience Pt 2: How-to.

GO FORTH AND SAVE!

Page 87: Optimizing for a faster user experience Pt 2: How-to.

90 pages / day x 1 second / page x 65 years

= 25 daysLoading…

Page 88: Optimizing for a faster user experience Pt 2: How-to.

Save 1s / page 50 pages / day 33m hours / day 2.4 billion users

506m days / year 121 Wikipedias x 121

Page 89: Optimizing for a faster user experience Pt 2: How-to.

Save 1s / page 50 pages / day 33m hours / day

506m days / year 1 Apollo Program x 1

Page 90: Optimizing for a faster user experience Pt 2: How-to.

“Lost time is never found again.” !

Benjamin Franklin

Page 91: Optimizing for a faster user experience Pt 2: How-to.

BIG THANK YOUTwitter: @jc_ux Email: [email protected]

Page 92: Optimizing for a faster user experience Pt 2: How-to.

http://goo.gl/w0xp1P

(That’s a zero)