Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Primer on performance_requirements_gathering_v0.3

845 views

Published on

This presentation focuses on the basics of Performance Requirements gathering. It address the basic concepts and talks about the process one could follow when dealing with Performance Requirements gathering across the development life cycle.

Published in: Technology
  • Be the first to comment

Primer on performance_requirements_gathering_v0.3

  1. 1. Fundamentals of Performance Requirements Gathering Practical Performance Analyst – 30th June 2012 http://www.practicalperformanceanalyst.com
  2. 2. 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
  3. 3. 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
  4. 4. What is Proactive Performance Management Performance Requirements Analysis Performance Modelling & Capacity Planning Build & Optimization Performance Testing Performance Monitoring Capacity Management
  5. 5. 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
  6. 6. 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)
  7. 7. 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
  8. 8. 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
  9. 9. 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
  10. 10. 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.)
  11. 11. 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
  12. 12. 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

×