Here are some of the best practices for managing system performance throughout the software lifecycle.

Metric mindset

Most projects have a budget and a time line, and it's easy to tell when they have gone over. Why not the same thing for performance? To say that the system should be fast is not a specification. The specifications have to include a notion of what the performance should be under what type of a workload.

Performance-conscious teams speak in quantitative terms:

  • A 3-second response at 500 transactions per hour is expected

is preferred to

  • the system should scale and be fast no matter how many users

The metric mindset needs to permeate through the engineering team, the development team, the test team. With support from the management team, the engineering team can be trained to think this way.

Architecture and Infrastructure

Any good Project Manager knows the risk factors for her project. Do the system architects know their risk factors?

Any good Project Manager knows the critical path of her project. Do the system architects and infrastructure planners know which components are critical to performance?

If a system is to be successful from a performance point of view, a quantitative approach is essential.

Systems in Production

Business Executives always know where they need to invest to get their business to the next stage. Do you know what technology investment will be required to take your technology to the next stage?

Best practice is to get a weekly report showing resource utilizations and response times. Periodically (annually, perhaps, synchronous with the budget cycle) have your system architecture team evaluate the trends and make recommendations. If a system component can be localized, tuning that component can be effective. If not, a more pervasive change may be in order.