Category Archives: web

Book review: The Business Value of Web Performance

Web performance is always very important to me. Browser need to download more and more resources to render full page. On one hand we want our pages look gorgeous on the other hand this means more images, more bandwidth and of course more time.

In todays mobile world this become even more important, we are in the hurry and if page didn’t show up in 1-2 second we’re swipe away. I read over a book  “Time is Money” by Tammy Everts. It is very short one (about 100 pages) you can read it in one day. I recommend you to get this book and read it.

In first two chapters, author shows a lot of case studies and scientific background to convince us that performance is important. Fast websites create happy users – lot of  case studies proves that we perceive slow webpage even slower than it is. Research show that there are two really important aspects of our brains:

  • Short term memory – which is very poor and decays quickly
  • Need to feel we are in control – if we have to wait, we feel powerless, so we’re starting to frustrate.

That means that 0.1 second give us illusion of instantaneousness; after 10 seconds we lose focus. We need fast application to gain “Flow”, otherwise we are getting tired.

100ms is Google stated goal to page load times

In the book there are plenty of examples how few seconds can change conversion rates of our site. So finally I think this quote get to the point.

“First and foremost, we believe that speed is more than a feature. Speed is the most important feature. If your application is slow, people won’t use it.”

– Fred Wilson, VC, Union Square Ventures.

Digging deeper we find out that the problem is latency and bandwidth. Important thing to know is that increasing bandwidth by 1000% we improve page load time by about 50%. We should consider that many browser has limit of simultaneous connection, and this limits may vary depending on version and OS. That means latency is what we should care about. The big problem with latency is that it’s unpredictable and inconsistent. It can be affected by almost everything from the weather 🙂 to what your neighbours are downloading.

Regardless how much money we invest in building out the infrastructure – latency will continue to be one of the greatest obstacles in web performance.

Next we are moving to optimisation layers, where we can measure and optimise response times. These layers are:

  • Servers
  • Load Balancers
  • Content Delivery Networks (CDNs)
  • Frontend Optimalization (FEO)

This layers has different optimization purposes, but the rule of thumb says that 80%-90% of the end user response time is spent in frontend, so it is good idea to start there. Mobile optimisation are VIP here, so we should always figure out how to decrease request count and how to minimise response size.

To know where we should put our effort, to optimise proper page, or part of our application we have to measure it and we need to know which pages are more important from the customer conversion point of view. There are a lot of different measurement tools available: mainly two types Application Performance Management (APM) and Digital Performance Management (DPM)

It might happen that cart page is not so important than welcome page or vice versa. We should figure out what impact does web performance have on Customer Lifetime Value (CLV).

The very important question is “How Fast is Fast Enough?” and let me cite the author:

“optimising performance is like painting the Golden Gate Bridge: it never ends.”

Let summary this, performance is very important. Carrying about performance gives us better conversion rates from our customers and makes them happy. It is very important to build culture of performance in your company. To do this, it is good to show them use cases to demonstrate the value of performance – and the best are your own case. Building such wide knowledge on both business and technical side.

Finally everyone who touches a web page from people on the business side – looking to add third-party analytics tags; to people from the marketing team, wanting – to add high-resolution hero images ; needs to know that their decisions has impact on performance. Impact on performance is the same as on revenue – we can increase or decrease it.

And one final quote:

Remember that performance is a journey, not a destination.

Native Client SDK from Google

Native Client allows us to build web applications that execute native compiled code inside the
browser. The Native Client SDK includes API, documentation, and examples and it is available to OSX, Linux and Windows platforms. Last version was released on 17 February 2011 (this update force you to use at least Chrome 10.x).

Native Client is available in Chrome Browser.

The first question in my head was: Why? Possible answers are:

  • Games – I’m not really sure if this is the main case, because we have Canvas and of course Flash is still in the game.
  • Existing Software – that is nice, instead of installing on every computer we can run our app in browser (or part of it).
  • Low level – Codecs, communication with OS (it’s limited to special API)

One picture is worth more than thousand: This picture comes from Google’s Technical Overview.


Native Client consist of: HMTL/JS, bridge between JS and native module, plus native module.

 

Example

 

First at all you have to enable Native Client feature in Google Chrome, enter “about:flags” into url address and than find “Native Client” option, you have to enable it and restart the browser.

First at all try some of the examples provided by Google: Native Client Examples, for me Life game was really cool.

I wrote simple hello world application, but it is nothing more than Google tutorial, and of course one more link to Pepper API.

 

Summary

 

I don’t consider Native Client as something that will change the world, but it may be useful in some situations. One additional plus is that we can distribute our application through Chrome Web Store. We will see how much effort Google will put in Native Client development.