Friday, November 16, 2012

3 web performance mistakes and how to avoid them



Could you imagine NASA sending a rocket into space without testing it first? What about a racing team putting a brand new car on the track without taking it for a few laps to test the handling and stability? It seems to me that testing is inherent in every technical field — except for website development that is.
Too often we see websites where it’s clear that design was the main priority, while testing the site’s functionality and user experience was just an afterthought. What you’re left with is a great looking website that feels like it is being sent over the Internet via carrier pigeon. And that’s going to send your customers to another site, and fast.
So let’s look at the three biggest performance mistakes many developers make when they create a website and some simple ways to fix them.
Identify your audience. When developing a website, many organizations fail to identify who their audience is and where they are located. This is important for sales and marketing purposes, but also for identifying which of the many available architectures, platforms, and technologies can best handle that anticipated traffic. As a general rule, the farther away from something you are, the higher the probability you will experience latency or other performance issues. So before starting development, test various architectures to see which ones best meet the parameters of your target audience. If your audience is scattered geographically, consider a CDN to localize delivery of content and alleviate some of the issues that can come with distance.
Avoid the quick fix. One of the most common development issues relates to database performance. Database performance issues are typically the result of misconfiguration or a lack of optimization, and they manifest themselves as web delays or slowdowns. To keep on track with tight production schedules, organizations often don’t take the time to understand the root causes of these issues. Instead they attempt a quick fix, simply throwing more bandwidth, memory, or servers at the problem. This is a costly and incomplete remedy for an issue that will likely arise again if not dealt with appropriately from the start. Instead, developers should look to enhance site speed through caching, CDN deployment, or image optimization.
Test early, test often. Often web development teams wait until post-production to test a website’s performance, when the finishing touches have already been applied. But what if your testing reveals weaknesses in your site’s performance or architecture? Will you be prepared to go to your boss (who is anticipating the site to launch at any time now) and break the news that a serious fix is in order? That an error overlooked since the early stages of development is threatening to push your website launch past deadline and over budget? And will your organization be willing to make these concessions, or will it choose (or be forced) to forge ahead with a vulnerable site just to launch on time?
Performance issues uncovered this late in the game will be more difficult, time consuming, and costly to resolve than if you had caught them early on. And if you choose not to resolve them you risk a critical website malfunction and the lost business, customers, and bad press that come with it.
Performance testing should be strategically budgeted and accounted for at various stages of the development process, not regarded as just another check in the block, a formality to be completed before rolling out your site. Before development even begins, you should set benchmarks for how many concurrent users you want the site to be able to serve and what its traffic limits will be. Then, periodically throughout the development cycle, test your site’s ability to meet those goals, and optimize web performance.
By no means are these the only mistakes or pitfalls an organization can run into when launching a new website. What other web development or performance problems have you run into?