Notes from performance.now()
Observations and lessons learned from the two-day conference on web performance
1. This was a great conference
3. Improving performance requires buy-in from all sides
After Tim Kadlec’s opening talk, Harry Roberts came out swinging against third party scripts and tag managers. Armed with a bunch of data and anecdotal experience, Harry pointed out that third party scripts (and their third party scripts) often make a website unbearably slow. Then, Harry switched to people: the only way to fix this issue is to talk to stakeholders that use the third party scripts. Are they really necessary? Can we solve this issue in a more user-friendly manner? Performance needs a holistic approach: engineers need to care about performance, and evangelize its importance — but stakeholders and management need to see its value too. Michelle Vu is an engineer on the performance team at Pinterest; she expanded on this by pointing that engineers sometimes need to be convinced, too: the performance team tries to give product engineers the data and the tools needed to detect and fix performance regressions.
4. Be data-informed.
I’ve never seen so many charts! Line charts, bar charts, pie charts, flame charts. Some curvy, some straight. Recurring advice: make sure you are measuring performance. Developers work on beefy devices, on lightning fast environments, whilst our users are stuck with the production website, riddled with marketing tags, on a low-end device. Ideally, we need two layers of data. Firstly, we need to capture data from real users on our production environments (Real User Monitoring). SpeedCurve is an example of RUM as a service. Secondly, to catch regressions before they get into production, we can use synthetic tests, with Lighthouse or WebPageTest. Michelle Vu and Katie Sylor-Miller both mentioned the difficulty and importance of A/B testing your performance improvements. And lastly, if you’re going to monitor metrics, make sure you pick a metric that makes sense for you. For some websites (like blogs), it will be First Meaningful Paint (or any of its siblings). For other, more interactive websites, something like First CPU Idle will make more sense.
5. Where was the React/Vue/Angular perspective?
Which makes it that much weirder that this part of the community was seemingly missing from performance.now(). It was only fleetingly mentioned in one or two talks as far as I can remember. It does feel like two separate worlds at this point — and I think everyone would benefit if those worlds can be brought closer together. Hopefully we’ll see that next year when we gear up for the second edition of a great conference.