Tanner Hodges

November 1, 2021

#14 Performance happens over time

Performance is an infinite game.

One of the most interesting aspects of performance to me lately is how it doesn’t stop. It goes on. It’s long. It’s historical.

Like, we’re keeping track of this now! (Just look at those CrUX dashboards!) And the time scale isn’t just day-over-day, or week-over-week. No, it’s month-over-month, pushing year-over-year. It’s even seasonal!

I think this is one of the most under-appreciated aspects of web performance—especially to developers working on it day-to-day. It’s so easy to forget the context we’re in. Performance happens over time.

One of my favorite web performance stories is from Pat Meenan, how every year at AOL they used to have “fire drills” at the the beginning of summer because their performance metrics would suddenly drop and they couldn’t figure out why. And every year they’d forget that it was just the school season, that students who had high-speed networks at school were coming home to much slower connections, and now all their page views were reporting much slower load times. All that stress! And it was just a natural shift. (Hear Pat tell the story at SmashingConf London 2018.)

We talk a lot about immediate, short-term improvements (and granted, we have a lot of that work to do) but the biggest changes come from long-term trends.

What’s the “payback period” for performance? Which time scale are we on, which level of pace and size?*

I don’t want to get too philosophical, but I do think it’s worth remembering that performance happens over time, and to consider what time scale we’re on. What changes do you expect to see? How soon do you expect to see an impact?

Beware noisy signals:

“Fast learners tend to track noisy signals too closely and to confuse themselves by making changes before the effects of previous actions are clear.” —James March (quoted in The Clock of the Long Now, by Stewart Brand)

I think that’s where a lot of us are right now dealing with Lighthouse scores, stuck in “snapshot land”. We’ve barely scratched the surface with field data…

It’s a distant world to most developers, and a mind warp when they finally see it, but “histogram land” (I have no idea what else to call the world of field data yet) is a world we’ll need to live in sooner or later if we’re going to follow this path of performance—because the journey never ends.