Yesterday, at An Event Apart Atlanta, I had the opportunity to meet and chat with Nicole Sullivan after her talk “Our Best Practices Are Killing Us.” As a former Yahoo! Performance Engineer, Nicole has been a top contributor in the web performance by co-creating of Smush.it, co-authoring Even Faster Web Sites, speaking at events worldwide, blogging at stubbornella.org and tweeting at @stubbornella. She currently consults for some of the largest sites on the web to help them achieve faster, more scalable, and better managed web applications with a focus on the optimization of CSS.
It was interesting to learn that the biggest sites and apps on the web (think Facebook or Salesforce.com) still fall victim to many of the same performance issues that the rest of the web is dealing with. Some common performance trends seen across sites both large and small are:
- More functionality, more problems. Like many popular languages and packages, the wide range of features available in CSS can actually hinder your ability to manage your web site or application as it grows. The problem is that as the various features are implemented over time, code debt grows, and the amount of effort it takes to maintain a well designed and high performing site increases.
- The web is heterogeneous. While the consumers of web content operate on a diverse set of browsers, sites and applications are often only created and tested in a single environment. The various ways pages are downloaded and rendered in various browsers and locations should be considered in the development process.
- Lack of visibility. Similar to the principle ignorantia juris non excusat, the ignorance of performance problems does not excuse the fact that performance problems exist. Without a monitoring system to provide a measured baseline, website performance cannot be effectively managed.
When planning for scale on the web, it’s important to consider the impacts of the above issues. Also, by managing for these points over time, you will have a better chance of addressing issues before they become widespread problems.
While there are a number of causes of performance problems, but much of what we’ve seen can be attributed in part to at least one of the above points.
In your experiences, what trends have you seen that can be added to the list?