Display w3c navigation timings for any web page

I’ve been trying to find a tool that will display all the w3c navigation timings for any web page that I might be browsing. I was surprised when I didn’t find it in Chrome dev tools (really?) nor in speedtracer nor in the format I wanted available Chrome extensions (*hint: product opportunity for someone).

I actually considered writing a Chrome extension myself to show the web performance data from the navigation timings for any web page for a whole afternoon while I was creating my first “Hello World” extension, but I would be slow trying to learn the necessary javascript and messaging protocol Google requires for the extension.

And then I came across this “adorable” bookmarklet from @kaaes that does just that.
breaking_down_onLoad

All you have to do is drag the bookmarklet to your bookmarks and click it for any web page you are browsing and voila!

w3c_nav_timings

So far, this is the handiest tool I have found to get a quick glimpse at the nav timings for your website. These web performance timings are becoming the defacto standard and that will be even more true when browsers support the forthcoming resource timings (thus giving us the waterfall report as well).

Hope you find this a useful bit of kit for your web performance tool belt.
And a shout out to @kaaes for sharing this with everyone!

Ken

How to select the most important web performance metric as a KPI – #feelsfast

We all know intrinsically that website performance is important. It has a tremendous impact on all of the business KPIs that measure the success of our online endeavor. I think website performance gets so much attention for two reasons: (1) it’s the most obvious symptom for bad results and (2) and it is easy to measure.

In my larger philosophical views on Customer Experience (CX) I’ve suggested…

PX > CX > UX = #usable + #feelsfast + #emotive

Feelsfast here represents “a lack of perceived latency.”

15 years ago, when I first started thinking about web performance, we only had network oriented metrics to understand web page performance. Today, there are a larger set of collectible metrics to measure many aspects of the spectrum on User Experience (UX). And today’s web applications, because they are pretty fat clients, must take client-side performance into account as well.

We are constantly reminded of the importance of performance by vendors, the media and customers through their actions.

What is the most important metric to measure web performance as a KPI? It’s the one that best represents User Experience or a lack of perceived latency.

We have network metrics. These are old school metrics that focus on how long it takes your server and the network to delver web page resources to the browser’s network layer.

  • DNS lookup time – time to resolve DNS name
  • TCP connect time – time to TCP connect
  • SSL handshake time – time to perform SSL handshake
  • Time to first byte – time to receive the first packet of data
  • Time to receive the data – time to receive the data
  • Fullpage time – time to load the web page and all it’s resources

Most of today’s modern network browsers supplement this with a richer set of data based on the W3C standards for navigation timings:

  • navigationStart – time that the action was triggered
  • unloadEventStart – time of start of unload event
  • unloadEventEnd – time of completion of unload event
  • redirectStart – time http redirection begins
  • redirectEnd – time http redirection completes
  • fetchStart – time that request begins
  • domainLookupStart – time of start of DNS resolution
  • domainLookupEnd – time DNS resolution completes
  • connectStart – time when tcp connect request begins
  • connectEnd – time when tcp connect completes
  • secureConnectionStart – time just before secure handshake
  • requestStart – time that the browser requests the resource
  • responseStart – time that the browser receives first packet of data
  • responseEnd – time the browser receives the last byte of data
  • domLoading – time that the document object is created
  • domInteractive – time when the browser finishes parsing the document
  • domContentLoadedEventStart – time just before DomContentLoaded event
  • domContentLoadedEventEnd – time just after DOMContentLoaded event
  • domComplete – time when the load event of the document is completed
  • loadEventStart – time when the page load event is fired
  • loadEventEnd – time when the page load event completes

This is a nice visual of the W3C timings.

timing-overview

And we have visual timing metrics available from various tools:

  • IE11 brings us msFirstPaint as part of the browser timings
  • webpagetest.org gives us start render, filmstrip view, and the innovative speed index
  • AlertSite.com can provide visual capture and metrics for FirstPaint and Above the Fold using Firefox

How do you choose which web performance metric has the most value as a KPI when all of these have some value? The key is to identify, for any particular monitored application or web page, which metric best represents a users perception of latency, in other words, if it feels fast. This is likely one of the more modern metrics – loadEventEnd, FirstPaint, Speedindex, Above the fold.

Once selected, this #feelsfast metric should become a critical business KPI and tracked and managed as such.

Are you giving the web performance component of UX enough attention?

Ken

10 rules for how businesses need to ready themselves for the Matrix

#include <std_disclaimer.h>

We are in the matrix!

The digital world is now becoming more important than the real world.
We have become internet obsessed and the ubiquity that connected smartphones gives to mobile and social apps has made them ever-present in our lives.

Speaking of ubiquity, Pew Internet reports that 79% of adults between 18-29 now have a smartphone and 67% between 30-49. We are spending more time online at the expense of other activities.

Our time, both personal and professional, is shared between Facebook, Twitter, Linked-in, youtube moreso than interacting with real people. And children who were born in 2000 and later will never know a world without instant digital gratification.

Apple, Microsoft and Google were ranked #1, #3 and #4 in terms of largest market capitalizations at the end of 2013. Snapchat was just acquired by Facebook for $19B. That’s the most ever for a venture backed company. Shocked? Don’t be, they are the engines behind the digital experiences of the future.

Here’s that scene from the Matrix where Neo chooses the red pill for reality and the truth…

But there is no “red pill” for businesses. No way back to the old realities. To succeed and flourish you must change.

How do businesses need to ready themselves for the Matrix?

  1. The business needs to take ownership of the customer experience. The old bureaucracy is dead. Business can no longer afford to have bad outcomes and finger pointing. “It was ITs fault” or “We didn’t have clear requirements.” The business must be driving the ship and project managers and developers must be part of supporting the business goals.
  2. Take an integrated look at the people who are your users. Understand them and their needs. What do you need to do to keep them happy and loyal.
  3. Change the focus to outside-in. Now that you understand them better, think like the people who are your users. Construct and manage the user experience in a unified way across all the customer touch points. This means spending more time on usability.
  4. Learn to be a story teller. Traditional marketing content and tactics are becoming less and less effective. Tell a story that answers the question of “why.” Why will this help me or my company or my family or…well you get the idea :)
  5. Help your users tell your story. Send a follow up email asking them to return the product if they are not 100% happy and ask for a brief product review if they are.
  6. Be Agile. And by that I mean two things. Build the bare minimum at first. Don’t let committee scope creep thwart bringing new products to market. Try new things and be willing to fail…quickly. If the results don’t turn out as expected move on to the next thing to try.
  7. Consider gamification. Make using your product rewarding for the people who do it. Give them rankings or free credit or access to something exclusive.
  8. Use everything you know to help. I’m really avoiding big data here because I still think a terabyte is big since I built my first data warehouse with 2G fujitsu disks. But you know a lot about your users. What they purchase and what they don’t. What parts of your website they use and which parts they avoid. Probably a number of different demographics as well. Leverage all of that to help deliver the best experience possible.
  9. Start thinking about what you need to do in the future to ready yourself for when everyone walks around like a Cylon (am I allowed to make a Battlestar Galactica reference in the same post as the Matrix?) with their Google glass on and has digital assistants helping to find the products and services they want before they even think about it.
  10. Lastly, move faster. You must learn to run and operate your business in the new real-time reality of business.

What an exciting time this is to transform your business!

Hope you are starting the journey.

Ken

We are in the great monitoring renaissance

#include <std_disclaimer.h>

Someone told me just yesterday that my head was in the clouds. That I was too much of a dreamer about monitoring, but I really disagree. We are in the great business and application monitoring renaissance!

Today, monitoring systems both open source and from leading vendors are simpler to implement and distill better intelligence about application performance than ever before and better capabilities are coming.

There are a pile of vendors that do all or most of the 5 APM dimensions described by Gartner. The future though is different. It’s something more, something with it’s own intuition to help us normal humans manage things well. And it will be more than a system that helps you become aware and address technical performance issues like today’s APM. It will be a system that helps you manage Customer Experience across all channels.

Someday we may have the internet of things (IoT) because everything will be a sensor, but we already have a lot of sensor data for managing business, applications, networks and platforms.

Many organizations already have sensors that collect performance and availability data from:
– synthetic end-user monitoring
– real user monitoring
– algorithm performance
– transaction tracing
– platform monitoring
– network performance monitoring
– database performance
– visitor analytics
– business performance statistics
– events like product releases

The bigger issue is that much of the above sensor data are still looked at in a non-integrated way.

What organizations need are business analytics and performance systems that give us the traditional shareable KPI dashboards with a layer underneath. That statistically powered, machine learning layer that includes analyzing the streams of “big data” coming from all those sensors in real-time, identifying anomalous behavior and correlating other anomalous events all the way from the technical stack, through to the user experience layer, and ending up with business results.

I was told that this is too complex. That it will never be mainstream.

Yes, performing streaming analysis of data in real-time and correlating that across hundreds or thousands of metrics is complex, and so is a fingerprint sensor on a smartphone. It’s ok if something is complex inside as long as the user interaction is not complex. Well designed products take very complex things and make them simple for users to leverage.

This isn’t anything as futuristic as AI. In fact, to me this seems like the maturation of business intelligence systems applied to customer experience. In the beginning there was the data. The data is big and raw and complex and hard to look at. Over the years we turned that data into information. Delivering reports and dashboards that make it easy to understand and ask questions of the data or build dashboards to show KPIs over time. The fulfillment of BI promise is that software systems can help us turn data into information and into knowledge.

That’s really what we are striving for. That our operational systems are smart enough to self-identify anomalous behavior anywhere is the business / technology stack. Machine detected anomalies effectively create a warrant which needs to be triaged before jumping in to action. But isn’t that what we really want from our business monitoring systems.

Tell me when something unusual is happening and provide all the related things that could be causing it.

Just my 2-cents. It doesn’t seem like rocket science to me.

Ken

My Short Affair with Microsoft Surface Pro and the Retail User Experience

I couldn’t resist picking up one of those Surface Pro’s when they went on sale a few weeks back for $499. It is such a novel and interesting little device. A complete and powerful computer all neatly packed into a little tablet with a gorgeous 10.6 in. 1920 x 1080 hd touch screen. And of course I needed the accompanying Type 2 cover and keyboard.

I really wanted to love the Surface Pro but in the end I returned it to the Microsoft Store.

After two weeks I learned I couldn’t really find a way for it to work for me in a productive way. It still remained interesting, but it just felt like a device sitting next to me in the den while I used my recently rehabilitated 5 year old Macbook Pro.

Windows 8.1 was actually quite nice to use. After installing Classicshell.net I had a complete Windows 7 desktop environment as well as Microsoft’s device oriented Modern UI. The touch interface was nice in modern UI and I’ve caught myself smudging the Macbook’s glass swiping at it a time or two :). The Windows 8 snapping applications thing was pretty cool too. Not that you can’t do that in any windowing operating system just without the swipe and snap.

I did install Classicshell.net right after the Windows 8.1 updates which gave me the best of both worlds. A full Windows 7 desktop environment as well as Microsoft’s device oriented Modern UI. And I can completely see how for the mobile professional the Surface Pro could represent a solution that would let you have a complete professional computing environment both at the office, at the home office, and on the go.

But…it’s just not usable as a laptop and there’s the rub.

As much as I wanted to cherish this enticing device I could not be productive with it the way I compute most of the time. The kickstand was wonky when not at a desk. The type 2 cover keys had a really nice feel but a terrible mouse-touchpad thing. Even with the type 2 cover’s bit of rigidity the Surface was still too top-heavy to use effectively when not at a desk. It also got a little too warm as a tablet compared to…well…my iPad.

I was hoping the Surface Pro would cure my desire for a new 13 in. retina Macbook Pro. Instead, it was a short affair.

What Microsoft really needs to learn from this blog post has nothing to do with their hardware or software but rather their business systems and their understanding of how to interact with consumers. Because the $499. sale for last years Surface Pro was only over a weekend I ordered from the Microsoftstore.com online rather than risk not getting one at the retail store nearby in Boca Raton.

When I called Microsoft to let them know I wanted to make a return they said I “could” return it to the retail store but it sounded like that would be awkward. I just preferred to bring it back to return it to the store and close the case so to speak. When I went to the store the employees were very nice but couldn’t figure out how to use the case number I was given by the online Microsoftstore.com personnel. It took an incredibly long time for them to be able to process the return and 3 team members were involved to help get it to conclusion. The whole affair seemed painful to everyone and their systems. At one point someone mentioned that the online Microsoftstore.com and the retail store locations use different systems – really, really?

I will complement Microsoft’s employees who were very nice and made sure that I did everything required to have a successful return. In fact, it seemed like one or two went above and beyond to try and minimize the lack of cooperation from the systems. Honestly though, it was two 30+ minute calls to Microsoftstore.com support and 45 minutes at the Microsoft Store in Boca.

Microsoft, please take examine the retail user experience delivered by Apple. Seamless, swift, and never an unstated non-smile if you want to return something you decided against (as long as it’s in brand new condition).

Finally, and perhaps a contributor to my decision to return the Surface Pro, the recent browser usage statistics from New Relic show that IE is down to a paltry 14.8% share across more than 2 million application instances. If that’s not a signal that Microsoft’s role as THE predominant client is beyond repair I don’t know what is.

Maybe Microsoft should stick to what they have grown to be very good at – helping enterprises build and deliver corporate IT and applications and cede the consumer client space. The consumer client space will be dominated by those that focus on experiences and I’m just not feeling that competitiveness from this latest encounter.

Ken