Enterprise Performance Maturity 101
This section will delve into the various aspects of Enterprise Performance Maturity as seen from the eyes of the Practical Performance Analyst (some one like yourself). The sections i intend to cover are –
- What is Enterprise Performance Maturity
- What are the different aspects of Enterprise Performance Maturity
- Why is Enterprise Performance Maturity Important
- Approach to address Enterprise Performance Maturity
- Challenges involved in addressing Enterprise Performance Maturity
- Goals of the Enterprise Performance Maturity model
What is Enterprise Performance Maturity
Enterprise Performance Maturity is about having the right combination of people, tools and processes in an enterprise to support proactive performance management across all your programs. In short Enterprise Performance Maturity is about having all the per-requisites required to ensure that your organization is able to support programs on building applications that meet their Non Functional Requirements on time, on budget and at the agreed cost. In the subsequent sections we’ll address the concept of implementing Enterprise Performance Maturity in an organization.
What are the different aspects of Enterprise Performance Maturity
There are three main aspects of Enterprise Performance Maturity
- People Maturity
- Process Maturity
- Tool Maturity
From a Performance Engineering standpoint it is important that organizations focus on building maturity across these three areas to sustain proactive Performance Management across their development programs. Let’s look at each one of the above areas in slightly more detail –
- People Maturity – People are your most important asset. It’s important to have the right people with the right skills in the Performance Engineering space working with your development teams across the Software Development Life Cycle addressing different aspects of Performance. Any Enterprise that has to build and support large applications would realize that there are various different facets to Performance Engineering and at different times during the program different sets of skills are required from a Performance Engineering standpoint. There is no perfect approach here and there is no perfect combination of skills that fits every organization. We would rather recommend that you assess your organizational needs, assess the organization application environment and determine the nature of roles required based on the different support and development activities your teams would need to perform.
- Process Maturity – We’ve spent a lot of time in the earlier sections talking about the different Performance Engineering processes. Process maturity is about having the right set of process from a Performance Engineering standpoint so that your Performance Engineers could follow a set of standard processes for Performance Management across the Software Development Life Cycle. Your process documents should include easy understanding process workflows along with templates for data collection, overall approach, plans and reporting. Process maturity is about standardization of Performance Engineering related processes and deliverables across the Software Development Life Cycle. Standardization also ensures that all of your Practical Performance Analysts are delivering and meeting your standards across all areas of Performance while reducing the opportunities for things to go wrong. You would also build into your process checks and balances to make sure that junior Performance Engineers or Practical Performance Analysts have the necessary support on their programs.
- Tool Maturity – As a Practical Performance Analyst, tools are generally the first things that come up in discussions around performance issues. Tools are a means to the end and not the end by itself and Practical Performance Analysts need to understand that. Tools are required to get the job done but also more importantly what is required is strong skills (people maturity) and a set of standardized processes (process maturity) to ensure that your organization is able to support and deliver high performing applications on time and on budget. Getting your tool mix right depends on a lot of different aspects and would require a thorough assessment of your development platforms, application stacks, etc. Tools in the Performance Engineering space are known to be expensive and procuring them is always a challenge however it is utilizing them effectively and efficiently that I find the bigger challenge faced by customers today.
Why is Enterprise Performance Maturity Important
Organizations large and small depend on applications to reach out and support their customers, service or business. In this world of ever increasing application complexity where cloud computing, SaaS, PaaS, Iaas is taking hosting of the platform away from the customer and putting it into the public / private cloud how can you be assured of the performance of your applications. The future is about the cloud, it’s about outsourcing your application platforms to someone who does it really well and staying focussed on what you do well.
In such a situation how do you cope with the challenges of ensuring your applications meet their Non Functional Requirements, what guarantees do you have that your application will meet their Non Functional Requirements when it’s time to go live. Having the right set of tools backed by people and process maturity is one solid risk mitigation approach.
It’s important to get your Enterprise Performance Maturity right but that by itself isn’t going to take your performance problems away. As a Practical Performance Analyst you have many hats to wear and this is just one of them. Addressing Enterprise Performance Maturity gives your organization the ability to repeatedly meet stringent Performance Engineering requirements with a set of standardized tools and processes across small and large programs. Repeatability, re-useability and efficiency are all key towards building a high performance team that delivers high performance applications.
Approach to address Enterprise Performance Maturity
As a Practical Performance Analyst we would recommend the following:
- Spend some time understanding the environment within your organization
- Understand the challenges and pains faced by business from an IT standpoint
- Understand the challenges and pains faced by IT in meeting business’s expectations
- Understand the Performance / Scalability challenges across your business critical applications
- Assess the current processes, tools and people capability you’ve got in the IT organization to support performance
- Assess the current application platforms, deployment platforms and cloud platforms your organization uses to service its customers
- Workshop, highlight and prioritize the top areas across performance that need to be addressed
- Based on your findings, start out by defining a simple set of processes to address those relevant areas
- Your end objective is to build a set of strong processes backed by people capability and tools to meet the most stringent Non Functional Requirements. However as a Practical Performance Analyst you have to be practical and approach this one step at a time.
- Addressing maturity is a long, arduous and painful task but the outcome can be really rewarding for you as a Practical Performance Analyst. You want to plan this out well, take the time to assimilate as much as you can and then agree on an action plan that has the buy in from all the relevant stakeholders across IT and business.
Challenges involved in addressing Enterprise Performance Maturity
Here’s a summary of the challenges you could face when address Performance Maturity:
- Lack of buy in from Business & IT
- Lack of understanding of Performance Engineering across Business & IT
- Tool focussed view of performance across the enterprise
- Old school thought process…throw more hardware at it and the application will scale
- HOD – Hire skills on demand, we’ve always done that here
- Use Open Source tools to manage performance
- Performance testing before going live is all I ever need…..
This isn’t meant to be an exhaustive list but rather a summary of the challenges you would face when talking to your customers with the objective of trying to convince them into invest in addressing Performance Maturity across their organization.
Goals of addressing Enterprise Performance Maturity
Goals are listed below:
- Proactive performance management across the enterprise
- Availability of skills, resources, tools and process to address performance challenges
- Consistency, repeatability and efficiency in addressing performance challenges
- Reduce the possibliity of things going pear shaped later in the development life cycle
- Well defined career options for your internal Practical Performance Analysts
- Run the Performance Engineering capability within the organization like a business
- Obtain efficiences of scale by leveraging teams of skilled Practical Performance Analyst resources across different programs
- Deliver results consistently and have a framework for others in the organization to reference
Here’s a list of important resources on Performance Engineering :
- Dr. Rajesh’s papers on Performance Testing and Performance Requirements Gathering
- Microsoft : Load Testing of Web Applications
- Microsoft : Patterns & Practices – Performance Testing Guidance
- The Server Side : Performance Engineering – A Practitioners approach to Performance Testing
- Dr. Connie Smith on Performance Engineering
- Dr. Rajesh Mansharamani on Performance Engineerirng
- Wikipedia on Performance Engineering
Hope you’ve enjoyed the content in this section at Practical Performance Analyst and have learnt something new. Please help us grow the community by taking a moment and sharing this content with rest of community using your preferred Social Media Platform (links provided below). We are looking for the bright spark and if you think you have what it takes to build and grow this community reach out to me by Sending us an email.
Trevor Warren is passionate about challenging the status-quo and finding reasons to innovate. Over the past 16 years he has been delivering complex systems, has worked with very large clients across the world and constantly is looking for opportunities to bring about change. Trevor constantly strives to combine his passion for delivering outcomes with his ability to build long lasting professional relationships. You can learn more about the work he does at LinkedIn. You can download a copy of his CV at VisualCV. Visit the Github page for details of the projects he’s been hacking with.