Performance Engineering

Performance engineering or SPE or APE (Systems Performance Engineering or Software Performance Engineering) within systems engineering, encompasses the set of roles, skills, activities, practices, tools, and deliverables applied at every phase of the systems development life cycle which ensures that a solution will be designed, implemented, and operationally supported to meet the non-functional requirements for performance (such as throughput, latency, or memory usage).

It may be alternatively referred to as software performance engineering or application performance engineering within software engineering. As the connection between application success and business success continues to gain recognition, particularly in the mobile space, application performance engineering has taken on a preventative and perfective role within the software development life cycle. As such, the term is typically used to describe the processes, people and technologies required to effectively test non-functional requirements, ensure adherence to service levels and optimize application performance prior to deployment.

The term performance engineering encompasses more than just the software and supporting infrastructure, and as such the term performance engineering is preferable from a macro view. Adherence to the non-functional requirements is also validated post-deployment by monitoring the production systems. This is part of IT service management 

Performance engineering has become a separate discipline at a number of large corporations, with tasking separate but parallel to Systems Engineering. It is pervasive, involving people from multiple organizational units; but predominantly within the information technology organization.

Performance Engineering Objectives :
  • Increase business revenue by ensuring the system can process  transactions within the requisite timeframe
  • Eliminate system failure requiring scrapping and writing off the  system development effort due to performance objective failure
  • Eliminate late system deployment due to  performance[disambiguation needed] issues
  • Eliminate avoidable system rework due to performance issues
  • Eliminate avoidable system tuning efforts
  • Avoid additional and unnecessary hardware acquisition costs
  • Reduce increased software maintenance costs due to  performance problems in production
  • Reduce increased software maintenance costs due to software  impacted by ad hoc performance fixes
  • Reduce additional operational overhead for handling system  issues due to performance problems
  • Identify future bottlenecks by simulation over prototype