Lake Wobegon Web Development

There is a strain of thought in the web development community that believes there's a tension between having comprehensive developer tools and delivering good user experiences:

This is exactly backwards. At the scale of the entire web, better tools are the only way to deliver better experiences. The reason comes down to statistics.

...that's the news from Lake Wobegon, where all the women are strong, all the men are good looking, and all the children developers are above average.

The average dev team has average skills and knowledge. This will always be true, unless you're in Lake Wobegon. And the explosive growth of the web is drawing an ever-expanding set of people into development. The average experience level is very low and is going to stay low for the foreseeable future.

But all is not lost. Software gives us the power to embed skills and knowledge into tools. Doing this is hard work and it takes time to iteratively improve. But there's an immense payoff when you put world-class, best-practice knowledge into the hands of every person who has something they want to create.

When we get to the happy future day in which the average web application is blazingly fast, standards compliant, accessible, resilient to poor mobile networks, as feature-rich as any native app, and delivered on schedule and under budget, it won't be because the average team got dramatically better. It will be because all those capabilities were packaged into well-crafted tools that empower a broad audience of creators.

This requires more use of comprehensive tools that "want to be there at the start". There's zero probability that we're going to suddenly discover several million new web developers who are all masters of optimizing time to initial paint, balancing server vs client rendering, integrating third party deps, leveraging Service Workers, setting up CI, building test suites, avoiding DOM thrashing, avoiding XSS, not breaking the back button, responsive layout, efficiently fetching additional data, and the thousand other details a great interactive app needs to get right. I guarantee that the future of web development involves tools that make sensible decisions about all those things at the start.