Off the Shelf provides a platform for Retailers and Consumer Packaged Goods companies to discuss and gain insights on the pressing problems, trends and solutions.

« Whats in an ID ? | Main | Is your sustainability initiative sustainable? »

Why is my Web Site Slow?

This is a question that I hear frequently.  Everyone seems to recognize that a quick response time is the ultimate feature, but very few people understand all of the factors that can harm performance.  In this series of blogs, I will try and shed some light on the different factory that combine to determine your site’s ability to perform.  In this blog, we will discuss the impact of requirements on the overall performance of the site. 

 

I saw a cartoon some years ago that showed a businessman frantically searching for a lost item in a room labeled “Testing”.  Another character walks up and asks, “What are you looking for?”  “Site performance”, the searcher answered.  “Where did you lose it?”, asked the visitor.  “In Requirements”, he answered.  “Then why are you looking for it in “Testing?”  He answered back, “The light is better here”.

This would be funny if it weren’t so sad.  We proceed with a multi-million dollar site construction projects while deferring consideration of the system’s performance until the site is completed and tested for correctness.  We allocate 2-4 weeks to validate that the performance is good; but it almost never is.  Then we spend the next 6 months tuning the system until it barely passes, all the while operating under the suspicion that we don’t know what we are doing. Finally, the business gives up and released a site that is 3 seconds slower than originally specified.   But it doesn’t have to be this way.  There is a process to follow that will greatly improve the chances that you will be fast enough to go live on schedule.  The first part of that process involves the requirements.

 

Like the searcher in the proverb above, we often lose all chance of performing well before the first line of code is written.  The eCommerce business is filled with creative people because that is what is required.  Web commerce is a moving target and people who lack vision rarely last long.  Creative agencies are also filled with creative people.  Their mission is to create a compelling Web presence.  This means that they need to “push the envelope” and bring features to their designs that are above and beyond.   So putting these two groups in the same room will produce a “violent agreement” that this site redesign will be the most feature-rich, coolest, most advanced whiz-bang site on the Web.  They create screens are a marvel, filled with every possible up-sell, cross-sell, top-ten, also-bought, new-product pages know to man.  Then they toss it over the wall to some programmers and shout, “Make it respond in less than one second”.  If the poor programmer dares to protest that they pages are too fat, he gets that “a real programmer wouldn’t complain, he would figure out how to make it work” treatment.

 

So our hapless programmer concludes that “mine is not to reason why”.  He gets busy and creates pages that he doesn’t believe will ever perform.  Six months later, he delivers the code.  The performance test shows that the new system will be “dog-slow” and the business expresses disappointment that the programmer let them down.

 

But it doesn’t have to be this way.  Instead of starting with all the creative people operating in a party mode, invite one party-pooper, the program architect.  Architects are famously lacking in creativity and diplomacy. (They admire the Google home page for its quick response) They will ask you questions like, “What response time are you expecting for this page?”  They will then, rudely, tell you that you can only have one .JSP file, one style sheet, one javascript file and 45 graphics object like screen-trim and pictures.  In addition, they will tell you that the total size of the page and all of its objects must be under 400k.  They will veto all third party-calls, Flash, and dynamic content generation. (No wonder they don’t often get invited).  The creative types will then decide to have the meeting over with out these “kill-joys”.  If you do that, you will live to regret it.

 

The right response is to find the balance.  Challenge the creative people to use restraint.  Challenge the architect to accept a few creative elements and to create a proof-of –concept that will prove whether or not these elements will cause the performance problems, and if so, how much.  The business can then make the tradeoffs between features and performance.

TrackBack

TrackBack URL for this entry:
http://www.infosysblogs.com/apps/mt-tb.cgi/5258

Comments

Will be looking forward to the series :)
Pooran

Hi Stephen,

I liked your narration in the post.
Your style seems to be engaging the reader.

For so many years, I have encountered and heard performance issues in different projects. Is there a central repository of such performance issues and resolutions adopted. I think having that data will help Infosys' performance engineers to eliminate known scenarios better and lead to faster resolution. If someone says, every scenario is different, I disagree with that.

What is your take ?

I am not sure how this will practically work. All of us are in an industry which looks at the visual design first and signs off before development even begins. You are talking about a collaboration between the 2 teams. While it could be happen our whole acceptance process would need to drastically change.

Also I don't think the creative guys alone are to blame. Developers too over complicate things and end up contributing to the problem.

Thanks for your valuable info.

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

Please key in the two words you see in the box to validate your identity as an authentic user and reduce spam.

Subscribe to this blog's feed

Follow us on

Blogger Profiles

Infosys on Twitter