Post on 12-Jul-2015
transcript
Fundamentals of Performance Requirements Gathering
Practical Performance Analyst – 30th June 2012
http://www.practicalperformanceanalyst.com
Agenda
Performance Engineering Life Cycle
What is Proactive Performance Management
What is Performance Requirements Gathering
Metrics for Non Functional Requirements
Why is Performance Requirements Gathering Important
Process for Performance Requirements Gathering
Challenges involved in Performance Requirements Gathering
Deliverables for the Performance Requirements Gathering process
Resources & tools for Performance Requirements Gathering
Performance Engineering Life Cycle
Software Development Life Cycle
Functional Requirements Gathering
Architecture & Design
Build Application
System Test,
System Integrated Test & UAT
Deploy Into Production
Performance Engineering Life Cycle
Non Functional Requirements Gathering
Design for Performance &
Performance Modelling
Unit Performance Test &
Code Optimization
Performance Test
Monitoring & Capacity Management
What is Proactive Performance Management
Performance Requirements
Analysis
Performance Modelling &
Capacity Planning
Build & Optimization
Performance Testing
Performance Monitoring
Capacity Management
What Is Performance Requirements Gathering
Performance Requirements gathering process is a process whose objective is to determine all the relevant Non Functional Requirements for the given application
Non Functional Requirements for an application would ideally include Security, Reliability, Availability or Failover Capability, Maintainability, Usability, etc. However as a Practical Performance Analyst your focus is mainly around Performance & Scalability of the application and underlying application infrastructure
Performance Requirements Gathering is conducted at the Functional Requirements Gathering stage with focus on determining the Performance & Scalability relevant Non Functional Requirements for the application
Non Functional Requirements would vary based on the nature of your application and would differ based on the nature of workload your application has to process
Non Functional Requirements from a Performance perspective would include metrics like User Concurrency, Transactional Throughput Per Hour, Volume of data processed by Batch job, Messaging workload Per Hour, etc.
As an outcome of this phase you should have documented and signed of Non Functional Requirements and Business Workload that would form the basis for your Performance Testing Strategy
The Non Functional Requirements would also serve as input to defining targets for your developers
As an outcome to the Performance Requirements Gathering Phase you should have the following documents nailed down-
Application Non Functional Requirements
Performance Testing Workload
Metrics for Non Functional Requirements
Online Transaction Processing
User Concurrency
Transactional Throughput
Infrastructure Utilization (CPU Utilization, Memory Utilization)
Batch
Duration of Batch run
Volume of data processed
Number of records processed
Infrastructure Utilization (CPU Utilization, Memory Utilization)
Messaging
Number of messages processed
Size of messages for different message types
Infrastructure Utilization (CPU Utilization, Memory Utilization)
Workflow
Number of messages processed
Size of messages for different message types
Infrastructure Utilization (CPU Utilization, Memory Utilization)
Why Is Performance Requirements Gathering Important
Performance Requirements Gathering is important for the following reasons –
Document Non Functional Requirements (Performance & Scalability) for the application
Agree with the IT & Business stake holders on the overall Non Functional Requirements that the application would have to meet
Document the overall Workload for purposes of Performance Test
Base Performance Targets for Developers based on the documented Non Functional Requirements
Provide input to the Application Design teams on the Performance & Scalability requirements for the solution
Provide input to the Infrastructure Design teams on the Performance & Scalability requirements for the underlying infrastructure
Set the expectations for the different IT & Business stakeholders from a Performance & Scalability standpoint
Provide input on the infrastructure capacity required to meet documented Non Functional Requirements
Recommend tooling (Performance Testing, Performance Modelling, Performance Monitoring, Capacity Management, etc.) requirements based on an a good understanding of the application workload and the agreed Non Functional Requirements
Performance Requirements Gathering Process
Understand Business Objectives & Program
Goals
Review Business Requirements Document
Data Gathering
Review & Extract Production Performance Metrics where possible
Analyse and Visualize data obtained from
Production for purposes of workload analysis
Understand Business Goals & Objectives
Understand Application & Infrastructure
Platform Architecture
Understand Tooling Landscape (Monitoring, Testing, Diagnostics,
etc.)
Define Overall Non Functional Requirements
Determine Tier wise Non Functional Requirements
Recommend Tooling strategy (Monitoring, Diagnostics, Testing,
etc.)
Document Development Standards and
Developer Performance Objectives
Challenges involved in Performance Requirement Gathering
Challenges finding the right business and IT stakeholders
Lack of understanding of Performance Engineering and the value it delivers across the Software Development Life Cycle
Lack of production metrics for business and infrastructure workload
Lack of access to the production systems to extract relevant business & infrastructure workload metrics
Lack of Industry standard tools to analyse, model and visualize data for purposes of defining Non Functional Requirements
Lack of Capable Resources to assist with data extraction, visualization and analysis
Deliverables – Performance Requirements Gathering
Non Functional Requirements Document
Workload for Performance Testing
Workload for Capacity Management
Recommendations for Infrastructure Capacity (Input to Capacity Plans)
Recommendations to the Application Design & Architecture teams
Recommendations to the Infrastructure Design & Architecture teams
Recommendations on investment in tooling & tool licenses (Performance Modelling, Performance Testing, Performance Monitoring, Capacity Management, etc.)
Resources & Tools
Section on Architecture & Design Engineering at the Practical Performance Analyst by Dr. Rajesh Mansharamani - http://practicalperformanceanalyst.com/site/node/28
CMG Paper on Performance Requirements Analysis - http://www.cmg.org/measureit/issues/mit23/m_23_2.html
Thank You
Please support us by taking a moment and sharing this content using the Social Media Links at Practical Performance Analyst
trevor@practicalperformanceanalyst.com