Craig Russell is a practicing software architect specializing in object persistence and distributed systems. He currently works as a senior staff engineer at Sun Microsystems.
IMAGINE A PERSONAL VEHICLE THAT IS ROOMY, comfortable, fuel efficient, inexpensive to produce, and 98% recyclable. You want one? Sure. Everyone does. Just one problem: its top speed is 6 miles/hour (10 km/hour). Still want one? This small example demonstrates that performance is just as important as any other criterion.
The reason many designers put performance at the bottom of their lists might be that computers are so much faster at computation than their human counterparts that the designers assume that the speed of the system will be acceptable. And if today's systems aren't fast enough, Moore's Law will take care of everything. But hardware speed is only part of the system.
Performance is sometimes thought of as a simple measurement of the time it takes for a system to respond to user input. But system designers must consider many aspects of performance, including performance of the analysts and programmers who implement the design; performance of the human interactions of the system; and performance of the noninteractive components.
Performance of the people building the system is often called productivity, and it is important because it directly affects ...