Wednesday, November 15, 2006

Historically, when I gotten questions from friends and colleagues regarding performance, I've often sent them straight to Rico Mariani's blog.  It is a wonderful source of advice, guidance, rules and humor in the realm of performance.  His latest entry is another wonderful piece.

I've spoken with several individuals who have said things like, "Well, our goal was to be able to handle a request in X seconds, or handle Y amount of throughput, and we're too slow.  Any ideas?"  More than likely, they've done their design and implementation without any work to make sure they reach their performance goals, and by that time, my advice to "get rid of that dependency", or "redesign this component" is too late.  When factoring the performance goals into those design decisions would have raised the red flag immediately. 

I love his approaches because they tend to sound alot more like engineering (which is my background) than alot of guidance that tends to be thrown around.  Here's my favorite quote:

I get very worried when people say things like “Productivity and cleanliness always trump performance.”   Productivity is about creating product.  A “clean” design which fundamentally fails to address performance requirements is not an example of a productive enterprise, it is a looming disaster.  A developer productively engaged in creating a failure is uninteresting. 

Now that Rico and I work for the same company (across the street from each other) perhaps I can come up with a good excuse to meet him in person.

[UPDATE] After reading this, I thought it came off a little snobbish.  I think we've all been in the above situation.  Many times, through no fault of our own.  We're often the victims of process, bureaucracy or other external forces that often oppose success.  Please don't feel like I'm talking down to anyone.  Hindsight is 20/20.