The development of a large-scale software system occurs in a structured manner, proceeding through a number of distinct development phases. An effort is needed throughout the three to five year development of these systems to avoid last minute discovery that the system fails to meet specified levels of performance. The role of performance engineering during the early (modeling) portions of development is well known.
Tuning is an afterthought; Performance Engineering is planned. It begins with business goals, customer needs and extends throughout the development lifecycle. The cornerstone for success involves carefully defined SLA and effective management strategies
Critical business processes are identified based on revenue value, cost savings or other business value. Engineering efforts are prioritized and focused on scenarios that will reduce risk (financial transactions) and increase revenue (check out process)
Design & Development
Create and validate test strategy and plan for critical performance scenarios and generate appropriate volume of test data. The testing phase is too late to detect critical performance issues. To reduce risk, a performance test plan must be in place at least mid-way through design
Execution & Tuning
Exercise performance tests using real-world data volumes and bandwidth conditions