design + performance - steve souders & mark zeman

72
Design + Performance

Upload: beyond-tellerrand

Post on 15-Apr-2017

543 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Design + Performance - Steve Souders & Mark Zeman

Design + Performance

Page 2: Design + Performance - Steve Souders & Mark Zeman

Bringing designers & developers closer together

Page 3: Design + Performance - Steve Souders & Mark Zeman

flickr.com/photos/timdorr

Page 4: Design + Performance - Steve Souders & Mark Zeman
Page 5: Design + Performance - Steve Souders & Mark Zeman
Page 6: Design + Performance - Steve Souders & Mark Zeman
Page 7: Design + Performance - Steve Souders & Mark Zeman
Page 8: Design + Performance - Steve Souders & Mark Zeman
Page 9: Design + Performance - Steve Souders & Mark Zeman
Page 10: Design + Performance - Steve Souders & Mark Zeman
Page 11: Design + Performance - Steve Souders & Mark Zeman

…shaved 2.2 seconds off the average page load time and increased download conversions by 15.4%!

Page 12: Design + Performance - Steve Souders & Mark Zeman

We made the new platform 60% faster and this resulted in a 14% increase in donation conversions.

Page 13: Design + Performance - Steve Souders & Mark Zeman

blog.mozilla.com/metrics/category/website-optimization/

…shaved 2.2 seconds off the average page load time and increased download conversions by 15.4%!

Page 14: Design + Performance - Steve Souders & Mark Zeman
Page 15: Design + Performance - Steve Souders & Mark Zeman
Page 16: Design + Performance - Steve Souders & Mark Zeman

“traffic jumped from 6M to 11M uniques… time spent on site rose from 5.9 to 7.8 minutes…

interaction rate on ads rose 108%”

Page 17: Design + Performance - Steve Souders & Mark Zeman

Screen shot of blog post…we've decided to take site speed into account in our search rankings.

Page 18: Design + Performance - Steve Souders & Mark Zeman

“To stay in Google's good graces, websites must be designed so they

load quickly on mobile devices.”

Page 19: Design + Performance - Steve Souders & Mark Zeman

Fast is Good

Page 20: Design + Performance - Steve Souders & Mark Zeman
Page 21: Design + Performance - Steve Souders & Mark Zeman

Designers & developers often work in silos

Page 22: Design + Performance - Steve Souders & Mark Zeman

Designers & developers often work in silos

Some designs are hard

to make fast

Page 23: Design + Performance - Steve Souders & Mark Zeman

Designers & developers often work in silos

Some designs are hard

to make fast

Being fast is important

Page 24: Design + Performance - Steve Souders & Mark Zeman
Page 25: Design + Performance - Steve Souders & Mark Zeman

Small Interdisciplinary Teams

Page 26: Design + Performance - Steve Souders & Mark Zeman
Page 27: Design + Performance - Steve Souders & Mark Zeman

Guiding Principles

flickr.com/photos/nihaogirl

Page 28: Design + Performance - Steve Souders & Mark Zeman

Speed is more important than design embellishment.

People are filling small gaps in their day with news. It must load fast on all touchpoints.

The design should feel light and nibble, always fresh and up to date. Never heavy, slow to load or clogged up with content.

Users expect sites to load in under 2 seconds.

DAN/TBWA

TVNZ News

Page 29: Design + Performance - Steve Souders & Mark Zeman

Engage quickly and then make it feel like you're there.

Tourists are making a big important decision so they want to know that it's worth it.

People need to know they are in the right place - hook them immediately with engaging imagery.

Unobtrusively stream in lots of rich content.

DAN/TBWA

Tourism New Zealand

Page 30: Design + Performance - Steve Souders & Mark Zeman

Prototype Early

Page 31: Design + Performance - Steve Souders & Mark Zeman

DAN/TBWA

Page 32: Design + Performance - Steve Souders & Mark Zeman

Tourism New Zealand

Page 33: Design + Performance - Steve Souders & Mark Zeman
Page 34: Design + Performance - Steve Souders & Mark Zeman
Page 35: Design + Performance - Steve Souders & Mark Zeman
Page 36: Design + Performance - Steve Souders & Mark Zeman

First layer with 1 sprite sheet (34k)

Page 37: Design + Performance - Steve Souders & Mark Zeman

Second layer of 2 sprite sheets (117k)

Page 38: Design + Performance - Steve Souders & Mark Zeman

Third layer of 8 sprite sheets (829k)

Page 39: Design + Performance - Steve Souders & Mark Zeman

201 high quality frames (22.6MB)

Page 40: Design + Performance - Steve Souders & Mark Zeman

We're designing timelines not static pages

Page 41: Design + Performance - Steve Souders & Mark Zeman

UX Content flow

Page 42: Design + Performance - Steve Souders & Mark Zeman

Measuring Performance

Page 43: Design + Performance - Steve Souders & Mark Zeman

Filmstrips

Page 44: Design + Performance - Steve Souders & Mark Zeman

Videos

Page 45: Design + Performance - Steve Souders & Mark Zeman
Page 46: Design + Performance - Steve Souders & Mark Zeman

Navigation Timing overall page metrics performance.timing,.now()

Resource Timing individual HTTP requests performance.getEntries()

User Timing custom metrics performance.mark(),.measure()

W3C Web Timing Specs

Page 47: Design + Performance - Steve Souders & Mark Zeman

“window.onload is not the best metric for measuring

website speed”

Page 48: Design + Performance - Steve Souders & Mark Zeman

99% ATF rendered: 2.0s onload: 9.7s

onload: 3.9s 98% ATF rendered: 4.7s

overly optimistic

too critical

Page 49: Design + Performance - Steve Souders & Mark Zeman

Not all pixels are the same.

Page 50: Design + Performance - Steve Souders & Mark Zeman

flickr.com/photos/15609463@N03

Page 51: Design + Performance - Steve Souders & Mark Zeman
Page 52: Design + Performance - Steve Souders & Mark Zeman

flickr.com/photos/kk

Page 53: Design + Performance - Steve Souders & Mark Zeman

Custom Metrics

Page 54: Design + Performance - Steve Souders & Mark Zeman

Custom MetricsDefine most important elements on the page

Page 55: Design + Performance - Steve Souders & Mark Zeman

Custom MetricsDefine most important elements on the page Measure using User Timing

Page 56: Design + Performance - Steve Souders & Mark Zeman

Custom MetricsDefine most important elements on the page Measure using User Timing Track with RUM and synthetic

Page 57: Design + Performance - Steve Souders & Mark Zeman
Page 58: Design + Performance - Steve Souders & Mark Zeman
Page 59: Design + Performance - Steve Souders & Mark Zeman

image load time custom metric

<div class="stream-item-header"> <a class="account-group js-account-group js-action-profile js-user-profile-link js-nav" href="/ericlaw" data-user-id="5725652"> <img class="avatar js-action-profile-avatar" src="https://pbs.twimg.com/profile_images/...d8a_bigger.jpeg" alt=""> <strong class="fullname js-action-profile-name show-popup-with-id" data-aria-label-part> Eric Lawrence </strong>

DISPLAY

Page 60: Design + Performance - Steve Souders & Mark Zeman

image load time custom metric

<div class="stream-item-header">

<a class="account-group js-account-group js-action-profile js-user-profile-link js-nav" href="/ericlaw" data-user-id="5725652">

<img class="avatar js-action-profile-avatar" src="https://pbs.twimg.com/profile_images/...d8a_bigger.jpeg" alt=""> <strong class="fullname js-action-profile-name show-popup-with-id" data-aria-label-part> Eric Lawrence </strong>

DISPLAY

Page 61: Design + Performance - Steve Souders & Mark Zeman

<div class="stream-item-header">

<a class="account-group js-account-group js-action-profile js-user-profile-link js-nav" href="/ericlaw" data-user-id="5725652">

<img class="avatar js-action-profile-avatar" src="https://pbs.twimg.com/profile_images/...d8a_bigger.jpeg" alt="" onload="performance.measure('imgDisplayed')"> <strong class="fullname js-action-profile-name show-popup-with-id" data-aria-label-part> Eric Lawrence </strong>

image load time custom metricDISPL

AY

Page 62: Design + Performance - Steve Souders & Mark Zeman

image load time custom metric

<link rel="stylesheet" href="/huge-slow.css">

<div class="stream-item-header">

<a class="account-group js-account-group js-action-profile js-user-profile-link js-nav" href="/ericlaw" data-user-id="5725652">

<img class="avatar js-action-profile-avatar" src="https://pbs.twimg.com/profile_images/...d8a_bigger.jpeg" alt="" onload="performance.measure('imgDisplayed')">

<strong class="fullname js-action-profile-name show-popup-with-id" data-aria-label-part> Eric Lawrence </strong>

DISPLAY

Page 63: Design + Performance - Steve Souders & Mark Zeman

image load time custom metric

<link rel="stylesheet" href="/huge-slow.css">

<script> performance.measure('imgDisplayed'); </script>

<div class="stream-item-header">

<a class="account-group js-account-group js-action-profile js-user-profile-link js-nav" href="/ericlaw" data-user-id="5725652">

<img class="avatar js-action-profile-avatar" src="https://pbs.twimg.com/profile_images/...d8a_bigger.jpeg" alt="" onload="performance.measure('imgDisplayed')">

<strong class="fullname js-action-profile-name show-popup-with-id" data-aria-label-part> Eric Lawrence </strong>

DISPLAY

Page 64: Design + Performance - Steve Souders & Mark Zeman

<div class="stream-item-header">

<a class="account-group js-account-group js-action-profile js-user-profile-link js-nav" href="/ericlaw" data-user-id="5725652">

<img class="avatar js-action-profile-avatar" src="https://pbs.twimg.com/profile_images/...d8a_bigger.jpeg" alt="" onload="performance.measure('imgDisplayed')"> <strong class="fullname js-action-profile-name show-popup-with-id" data-aria-label-part> Eric Lawrence </strong>

image load time custom metric

<link rel="stylesheet" href="/huge-slow.css">

<script> performance.measure('imgDisplayed'); </script>

DISPLAY

Page 65: Design + Performance - Steve Souders & Mark Zeman

<div class="stream-item-header">

<a class="account-group js-account-group js-action-profile js-user-profile-link js-nav" href="/ericlaw" data-user-id="5725652">

<img class="avatar js-action-profile-avatar" src="https://pbs.twimg.com/profile_images/...d8a_bigger.jpeg" alt="" onload="performance.clearMeasures('imgDisplayed'); performance.measure('imgDisplayed')"> <strong class="fullname js-action-profile-name show-popup-with-id" data-aria-label-part> Eric Lawrence </strong>

image load time custom metric

<link rel="stylesheet" href="/huge-slow.css">

<script> performance.clearMeasures('imgDisplayed'); performance.measure('imgDisplayed'); </script>

DISPLAY

Page 66: Design + Performance - Steve Souders & Mark Zeman
Page 67: Design + Performance - Steve Souders & Mark Zeman

Custom Metrics

Page 68: Design + Performance - Steve Souders & Mark Zeman

flickr.com/photos/kk

Measure content for users

Page 69: Design + Performance - Steve Souders & Mark Zeman

DAN/TBWA

Small Interdisciplinary Teams

Page 70: Design + Performance - Steve Souders & Mark Zeman

Time based

Page 71: Design + Performance - Steve Souders & Mark Zeman

Measure your content flow

Page 72: Design + Performance - Steve Souders & Mark Zeman

Have an awesome BT!