Performance engineering as a part of the development life cycle for large-scale software systems

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. This paper addresses the role of performance engineering throughout the entire software development life cycle. The paper draws upon experiences from successful performance engineering efforts applied to large transaction-based software projects in which multiple hundreds of thousands of lines of code were developed . The nature of the performance engineering support required by such projects changes dramatically during the middle of the development period; failure to recognize the need for this change can result in discovery of performance shortfalls too late to correct them before the system must become operational.