Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Designing speed with progressive enhancement

Designing speed with progressive enhancement

Progressive enhancement techniques are used to improve perceived performance. Incorporating progressive enhancement early in product design and development process can ensure that fast user experience is not an afterthought but is baked into the product.

Sergey Chernyshev

July 10, 2016
Tweet

More Decks by Sergey Chernyshev

Other Decks in Technology

Transcript

  1. 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/
  2. 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)
  3. 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. …
  4. 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. …
  5. 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!
  6. 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
  7. 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 ...
  8. SPEED PROCESS ➤Identify design components ➤Set Constraints ➤Measure and compare

    to baseline ➤Avoid Anti-Patterns,
 define best practices