build into web applications. The dangers are significant and real. Features
such as concurrency control, session sharing, and sharable models have hum-
bled many a competent programmer. In some cases, applications are built
without consideration of the potential size of the user base. In other cases,
performance is handled late in the development cycle without time to
recover. Though the Chatooga is powerful and demanding, many boaters
now run it with relative safety. Similarly, Internet experts are rapidly learning
how to deploy highly scalable and reliable solutions with parallel clusters.
For both object-oriented applications and Internet applications, it is critical
to plan performance from the beginning. It isn't enough to throw out loose
requirements and bury them in some document. We must examine the hard-
ware and software architectures in detail and compare them against the perfor-
mance criteria. Here are performance-planning tips.
Performance planning tips
I've accumulated these performance-planning tips over 10 years of consulting.
Know your users ... Good requirements are the key to meeting any
user's needs. We should include formal response-time requirements,
and we should interview and observe our end users.
… but don't completely trust them. This sounds contradictory to the
first goal, but it isn't. It simply means that your information-gathering
efforts should not end with your user community. In fact, your perfor-
mance requirements may be more stringent than your users might rec-
ommend. Many sources suggest that customer performance
expectations for generic consumer Internet sites are changing. For
example, in 1999 E-Commerce News published Performance Primer:
Gone in 4 Seconds , which stated that the typical Internet consumer
spends no longer than 4 seconds at a site. Today, with high-bandwidth
connections, the typical user will probably not wait even that long.
Interview your user community, but also do your own research so that
you won't be lured into false security.
Plan for performance. A performance plan is a critical element of any
high-volume Internet application. All major stakeholders should sign
off on the plan early in the design cycle. Performance plans should be
written in advance of the application architecture, because perfor-
mance requirements will dictate the application architecture. Hard
metrics for response time should be included.