Welcome to our virtual newstand, full of web news, business tips and more. Please hop in the discussion and leave a comment.
Get blog updates delivered straight to your inbox, subscribe to our RSS Feed:

Situational Performance Optimization - Web Developers Dilemmas Part 1


 

With more and more companies using, advocating or offering RUM solutions there’s no doubt for Real User Measurement 2012 was a big year. A better understanding of the complex world comes with these new solutions for our websites live in. Average load times mean very little, and load times differ dramatically between different situations RUM usually shows load times that are double or more what synthetic tests indicated. Taking simply means it’s complicated for web developers.

Unfortunately to handle this new granularity, our optimizations have not yet evolved. Speaking in black and white terms about what you should do, and offering little situation-specific advice current optimization best practices are defined as one-size-fits-all almost without fail. From our rich RUM data we get primary optimization advice that states “you’re not as fast as you think so it is better you as web developers try harder”.

In this article here we are going to discuss about what we see as the next frontier for optimization techniques – Situational Performance Optimization (SPO). Let’s see some insights into what’s available today, and point out some areas we – as a community - should work on improving.

Situational Performance Optimization (SPO)

Why don’t we start with what is a Situation? Here’s the answer to it; a situation means a specific interaction between client and server – in each case where a browser loads a web page. Including the structure of the website being browsed every situation is unique in many ways the browser’s cache state, and the current network conditions.

While tuning the page for each situation the goal of Situational Performance Optimization is to make our optimizations aware of this context. Through the RUM solution we already are having the measurement tools in place what we’re missing is using the best practices and the tools in our web development.

By best practices we can know what situation we should consider, and what we should do about them. For instance they can tell us about not using the domain shading for Android browsers, or of serving lower quality images when the latency is high. With a reasonable cost the tools are required to help those things.

Today more and more websites are serving a single version of HTML to all their clients with the common expectation of redirecting Smartphones to a mobile site, and so we do not boil network conditions to the application layer. For reducing the level of expertise required of the web developers, we need tools that at least provide situational awareness to the code generating the page, and at most perform the actual optimization.

Sometimes it happens that there are so many Situations and just a little time for them. But we can’t specify every possible variable, but we can try to identify the primary ones. They are Network Protocols, Cache State, Network Conditions, Browser Capabilities, and Website Content & Structure. So we will discuss them in our next episode I mean next part of this series for renowned web developers.