Programmers write better programs when working under performance constraints. Compare the BBC news web site from ten years ago with it today:

http://news.bbc.co.uk/2/hi/south_asia/3392809.stm
http://www.bbc.co.uk/news/world-us-canada-25671970

2004: 55 requests  ❘  67.8 KB transferred  ❘  1.16 s (load: 1.16 s, DOMContentLoaded: 1.15 s)
2014: 172 requests  ❘  330 KB transferred  ❘  38.38 s (load: 8.35 s, DOMContentLoaded: 7.95 s)

On gigabit internet with a top-end laptop, the old site is simply better. It could use some more padding and margins, but I'm reading the content sooner, and the page doesn't jump around after I've started. Turn back the clock for a better user experience.

What happened? Did BBC's engineering team fall apart?

Try the two sites again, only this time on your phone. Again, a top-end phone on high quality wifi. Both sites are roughly as usable as each other. While the 2004 page loads marginally faster, the new page is actually smaller!

2004: 55 requests | 129KB transfered | 2.06s (load: 2.08s, DOMContentLoaded: 2.03s)
2014: 83 requests | 36.2KB transferred | 4.85s (load: 2.13s, DOMContentLoaded: 2.00s)

So BBC programmers aren't bad, they just don't know how to care about desktop user experience. Their powerful desktops are reading pages off their corporate network. They are blinded by living too far up the technology curve.

What can be done? Programmers could be given slower machines, and we could insert deliberate latency into our networks.

But these are technological hacks to approximate what we really need, which is a culture shift in software engineering. Make it fast. Internalize that concept. Live it, breath it. If it is slow, it's broken. When a program is fast, you use it more. You see more bugs. You can fix bugs sooner. It's easier to play, and discover the better program hiding inside.
Shared publiclyView activity