Perception, Reality, & Incrementally Tuning World-Class Applications

Performance & the 20% Rule

I was reading the post from Ed Glas, Make Your Performance Work Count: The 20% Rule

He shared the words of computer science professor & billionaire entrepreneur David Cheriton:

If it is fast and ugly, they will use it and curse you;
if it is slow, they will not use it.

Indeed.

Ed provided this quote in the context of the book Designing and Engineering Time: The Psychology of Time Perception in Software by Steve Seow.  Steve is an expert on performance engineering at Microsoft and has a deep understanding of the human element and psychology behind software performance.  An intriguing take-away is that users do not notice changes in performance below a certain threshold.  Research has shown that for durations under 30 seconds, users do not detect differences up to 18%.  Steve's rule of thumb is that users really won't notice performance changes of +/- 20%.

Ed Glas is a big-time test manager for Microsoft. He relates that when setting goals for performance improvement, or considering performance against a competitive product, the threshold for success should be to gain at least 20% over the baseline measurement.  Likewise when considering whether to fix a performance regression, users likely won't detect the degradation less than 20%.  He suggests we’re better off spending effort elsewhere if the 20% threshold seems out of reach for a given area of testing.

Perception is Reality

I was struck by the (not uncommon) idea that Perception is Reality.  (This has been reinforced by my holiday reading of Stumbling on Happiness by Daniel Gilbert.)  So, to get ooh’s & ah’s from our users or customers—especially before we’ve gained their trust—we must either provide the 20% enhancements Mssrs. Glas & Seow discuss, or set the expectations low (which is sometimes appropriate but hard to do), &/or when incremental changes smaller than the 20% perception threshold we must provide appropriate metrics to document what we did.

My Microsoft Assessment, Consulting, & Engineering (A.C.E.) team & I often provide performance enhancements substantially larger than 20% in terms of all manner of metrics including duration.

World-Class Applications Are the Result of Incremental Improvements

Yet let’s not neglect that like many aspects of development, performance & scalability enhancements are incremental. Dittos for those changes which are significant in magnitude, yet don’t result in a significant performance enhancement visible to the user. For example, I recently documented how a simple configuration change resulted in an immediate, persistent 30% CPU enhancement and reduction in SQL Server wait stats of 78%. The customer was thrilled—yet the user experience was scarcely affected.

In addition, best practices often demand many things the transition to which may not in-&-of-themselves show obvious immediate benefits.  It is my position that incremental improvements in performance & scalability made possible by compliance with best practices provide a foundation fundamentally critical for success.

An analogy would be the forces binding the DNA helix.  Hydrogen bonding is one of the weakest molecular bonds in biology, any individual one of which can be cleaved quite easily.  However, billions of discrete H-bonds result in a virtually indivisible unit the cleavage of which requires specific enzymatic action. 

Likewise the result of multiple tuning iterations will result eventually in only incremental changes beyond the ability of humanoids to appreciate, yet the aggregate effect can be vital to an applications & organization’s success.

Why World-Class Applications Seek Incremental Improvement

A deck from CS193H High Performance Web Sites by Stanford Professor Steve Souders contains this information:

Company Delay Business Loss
Google 500ms 20% traffic
Amazon 100ms 1% sales

Of course, we go initially for the most bang for our buck, & pick off the low hanging fruit first (& other clichéd metaphors).

This data demonstrates that incremental improvements translate to big bucks in mature, world-class applications.

As an architect out in the real-world, I constantly strived to introduce best practices into our applications.  After several years on the job, incremental improvements were all we had left, yet it still made business sense to pursue them.

A proper, disciplined amalgamation of best practices can result in scalable, robust, performant, world-class applications—a classic example of the whole being greater than the sum of its parts (there's another one of those darned clichés).

Perception Problems are People Problems

So, it’s great to produce 20% & greater performance enhancements, yet such improvements can’t be sustained round after round after round of tuning. 

It is important—isn’t it always?—to perform appropriate expectations setting when only incremental changes are possible.  As Alik Levin shares with us, "No matter how it looks at first, it's always a people problem".

What’s your perception of implementing best practices?
What’s your perception of performance?
Tell me.

Administrivia

Jimmy May, MCDBA, MCSE, MCITP: DBA + DB Dev Senior Performance Consultant: SQL Server
A.C.E.: Assessment Consulting & Engineering Services
http://blogs.msdn.com/jimmymay

Performance is paramount: Asking users to wait is like asking them to leave.

This post was written with the PracticeThis.com plugin for Windows Live Writer

Published 07 January 09 07:32 by Jimmy May

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

# J.D. Meier said on January 8, 2009 3:55 PM:

That's the first time I saw ACE spelled out ... nice.

Beautiful point on priorities and perception ... and nice elaboration on the story behind it.

# Jimmy May said on January 11, 2009 9:37 AM:

@J.D.  Thanks for the comments.  "Best practice" isn't a euphemism.  Implementation from the ground up (another metaphor!) can change the way folks work & live.  From the big wins to the incremental, it's one of my missions to evangelize techniques necessary to achieve optimal performance.

Thanks for your own efforts in the arena of performance--both personal & technical.
# alikl said on January 15, 2009 9:16 AM:

Jimmy, great post!

Liked it a lot.

Iam a big fan of incrememntal results myself...

P.S. Thanks for mentioning my stuff ;)

# Trey - Swollen Thumb Entertainment said on February 1, 2009 1:53 PM:

That is truly interesting about thw 20% figure.  I think that this would be good advice in many areas that aren't technical.

If something can be measured in percentages, then it doesn't make sense to work on improving it, unless you can improve it by at least 20%.  Otherwise, it's not worth the effort.

I love when science can be used like that.

# Jimmy May, Aspiring Geek: SQL Server Performance, Best Practices, Productivity, etc.<br><img src="http://img156.imageshack.us/img156/6808/xparentacelogoli1.gif" border="0"/> said on March 11, 2009 7:22 AM:

I'm a lucky guy. Besides the fact that I'm healthy, alive, &amp; living on the planet earth "in interesting

# Jimmy May, Aspiring Geek: SQL Server Performance, Best Practices, Productivity, etc.<br><img src="http://img156.imageshack.us/img156/6808/xparentacelogoli1.gif" border="0"/> said on March 14, 2009 9:43 AM:

Today Kevin Kline, Quest's #1 SQL guru, tagged me, challenging me to offer bits of wisdom to SQL n00bs.

Leave a Comment

(required) 
(optional)
(required) 

  
Enter Code Here: Required

About Jimmy May

Jimmy May is a Principal Engineer for SQL Server in the Microsoft Assessment. Consulting, & Engineering (A.C.E.) team & is assigned to Team Lee.  He is the Visionary-in-Chief of SQL Server Pros & was formerly the Senior Database Architect for one of the world’s largest, SQL Server high-throughput OLTP VLDBs.  He is a founder & on the executive committees of both the Indiana Windows User Group (www.iwug.net) & Indianapolis Professional Association for SQL Server (www.indypass.org).  He is a recipient of the MS IT Gold Star award, is collaborating with the SQL Server Customer Advisory Team (SQL CAT) on a series of SQL best practices papers, & is a member of the Microsoft Oracle Center of Excellence.  Jimmy lives in Indianapolis, Indiana with his lovely new bride, Phyllis, & Fannie May the Wonder Dog.  Contact him at jimmymay@microsoft.com. Visit his SQL Server performance & personal productivity blog at http://blogs.msdn.com/jimmymay. “In the late 90’s I made a conscious decision to become a geek, & started working with SQL Server in 1999.  Since then it’s been quite a ride—going from the Help Desk to DBA to Architect to entrepreneur to Microsoft Principal Engineer & consultant.”

Search

This Blog

Syndication

Page view tracker