This post originally appeared on APMDigest.
Once upon a time (as they say) client side performance was a relatively straightforward matter. The principles were known (or at least available – thank you, Steve Souders et al), and the parameters surrounding delivery, whilst generally limited in modern terms (IE5 /Netscape, dialup connectivity anyone?) were at least reasonably predictable.
This didn’t mean that enough people addressed client side performance (then or now for that matter), despite the alleged 80% of delivery time spent on the user machine, and the undoubted association between application performance and business outcomes.
From a monitoring and analysis point of view, synthetic external testing (or end user monitoring) did the job. Much has been written (not least by myself) on the need to apply best practice, and to select your tooling appropriately. The advent of “real user monitoring” (RUM) came some 10 years ago – a move at first decried, then rapidly embraced, by most of the “standalone” external test Vendors. The undoubted advantages of real user monitoring in terms of breadth of coverage and granular visibility to multiple user end points – geography, O/S, device, browser – tended for a time to mask the different, though complementary strengths of consistent, repeated performance monitoring at page or individual (eg 3rd party) object level.
Fast forward to today, though, and the situation demands a variety of approaches to cope with the extreme diverseness of delivery conditions. The rise and rise of mobile (just as one example, major UK retailer JohnLewis.com quoted over 60% of digital orders derived from mobile devices during 2015/16 peak trading) brings many challenges to Front-End Optimization (FEO) practice. These include: diversity of device types and version; browsers; and limiting connectivity conditions.
This situation is compounded by development of the applications themselves. As far as the web is concerned, monitoring challenges are introduced by, amongst other things: Single Page Applications (either full or partial); “server push content”; and mobile “WebApps” driven by service worker interactions. Mobile Applications, whether native or hybrid, present their own analysis challenges, which I will address subsequently also.
This already rich mix is further complicated by business demands for more on-site content – multimedia and other rich content, exotic fonts, and more. Increasingly large amounts of client side logic, whether as part of SPAs or otherwise, demand focused attention to avoid unacceptable performance in edge case conditions.
As if this wasn’t enough, the (final!) emergence of HTTP/2 introduces both advantages and anti-patterns relative to former best practice.
The primitive simplicity of page onload navigation timing endpoints has moved from beyond irrelevance to becoming positively misleading, regardless of the type of tool used.
So, these changes require an increased subtlety of approach, combined with a range of tools to ensure that FEO recommendations are both relevant and effective.
I will provide some thoughts in subsequent blogs as to effective FEO approaches to derive maximum business benefit in each of these cases.
The bottom line is, however, that FEO is more important than ever in ensuring optimal business outcomes from digital channels.