Grow Your Performance Management Maturity

Jsun Pe
Salesforce Architects
9 min readJan 22, 2021

--

“Performance” seems hard to get right because there is so much to it. However, with the correct maturity model, anyone can improve long-term Salesforce performance management.

Having worked as a consultant with enterprise customers over the last decade on Salesforce best practices, I’ve noted that not many people understand “performance management” even though Salesforce provides lots of developer documentation, best practices, and blog posts. Only recently, after I became a Product Manager and started looking at this problem from a different perspective, did it dawn on me that it wasn’t the lack of information that’s stopping customers. It’s the “why” and “how”, specifically:

  • “Why” customers need to manage performance (a common question being: “Isn’t this all done by Salesforce?”)
  • “How” do customers start doing it, especially when they have limited budget and time?

Until customers understand the answers to these questions, performance management will always be a “Won’t have” in MoSCoW terms due to a perception of “high effort, low return.”

To turn this from a “Won’t have” to a “Should have” or “Must have,” let’s start with explaining the “why.”

Performance is complex

From a user interacting with Salesforce user interfaces, to infrastructure and servers processing user requests, there are many areas that can affect performance.

Salesforce Data center chart

These areas are not limited to:

  • User’s devices, computers, browsers (and even how many tabs are open at any one time)
  • The quality and speed of the network access the user has to connect to the Internet, which connects to the Salesforce global network
  • Infrastructure and servers that host Salesforce services.

Issues in any of these places can result in a less-than-perfect performance experience for customers.

We can categorize such issues into three main performance challenges:

  1. Ensuring consistent global performance for all users worldwide, especially with highly variable dimensions such as network access quality, distance to services, and so on
  2. The shift to a client-centric paradigm with a richer user interface, which means more complex back-and-forth interactions between the client and server.
  3. Customers’ evolving demand, which means Salesforce services need to maintain a consistent performance experience as they are scaled to meet customers’ increasing needs.

Addressing these challenges requires collaboration between Salesforce and our customers.

Working together to improve performance

As a service provider, Salesforce is responsible for scaling our services to our customers’ growing businesses and providing tools and best practices for using the Salesforce Platform effectively.

However, our support alone won’t be adequate if customers do not use the platform appropriately, for example, by neglecting to adhere to best practices, implementing solutions on top of the platform in an ineffective manner, or trying to access services with an incompatible device, browser, or local network setup.

Responsibility chart between Salesforce and customer

To ensure a good user experience and optimal performance, we need our customers to work together with us, appropriately configure and use Salesforce Platform services, and ensure our advice and best practices are followed.

Performance management and the race car analogy

We addressed the “why” of performance management, now let’s focus on the “how”, and more specifically, where to start. To do that, it helps to picture a Salesforce implementation as a Formula One race car. This oft-used analogy is particularly relevant when it comes to managing performance.

If you want to improve the performance of a race car, you can’t just press a button to make it magically go faster. So what will you do first?

Race car anatomy chart

First, you investigate, ask lots of questions, gather information, and, most importantly, understand what needs to improve (for example, the current speed, the target speed, the conditions, and the available budget and time). After that, you need to consider which of the components you need to change, keeping in mind that they are interdependent and you’ll likely need to make changes to more than one.

You will need support. The support comes from two perspectives: data and simulations — where you ground the performance improvement in quantitative, measurable terms — and people in different roles. You cannot expect an engineer to work in a silo and fix any issues without talking to the driver or the pit crew. They need to work collaboratively.

Performance management for the Salesforce Platform is very similar. There is no one “magic button” that improves performance. Remember that Salesforce performance is highly dependent on multiple factors and requires both Salesforce and customers to work together.

Performance management for the Salesforce Platform chart

As a customer, you need to understand what specifically needs to improve, for example the current and target Experienced Page Time (EPT), a specific function or use case etc. Potentially, you need to consider updating multiple components from different parts of Salesforce, as they too are interdependent. Some of those components may not even be technical. For example, business processes, user experience, and even user perceptions may come into play.

As with the racing scenario, there are monitoring logs and test environments for you to use to debug and test. Most importantly, you cannot expect your IT team to work alone and not interrupt the users. Just as you cannot effectively tune a race car without consulting the driver, you cannot improve performance if you cannot see the user’s view of it.

A maturity model for performance management

At this stage, you may be getting a headache, thinking about tools to use, best practices to follow, who to hire, and the extra costs and effort. Sources for all of that information are available online, either officially through the Salesforce Trailblazer community and architect/developer documentation, or unofficially through third-party blog posts and Salesforce developer groups.

If you are not used to the concept of performance management, you may be asking additional questions, like: “Do I need to do everything right away?”, “Can I start with something simple first and invest more effort later?”, or more simply, “Where do I start?”

In comes the Salesforce performance management maturity model. It guides you on what you should focus on as you begin and continue your performance management journey.

Salesforce Performance Management Maturity model

The model has four different domains:

  • Resolving issues. This domain focuses on the ability to debug and resolve performance issues. As you advance on your journey, the level of sophistication in this domain increases with better-structured analysis, supported by monitoring analytics and a fully dedicated performance work-stream.
  • Development best practices. This domain focuses on the ability to design and build performant Salesforce solutions up-front, to minimize performance issues in production. It includes design best practices, code review, performance testing, and for more advanced levels, a technical pattern library and regression testing;
  • Baseline and Monitor. This domain focuses on the ability to measure and monitor critical use cases for your Salesforce solutions, and analyzing monitoring data to support your development and issue responses.
  • DevOps Integration. To maximize the benefits of performance management, all the other domains are embedded into your DevOps process, further enhancing your organization’s adoption of the DevOps culture and supporting continuous refinement of your Salesforce solution’s performance experience.

The four levels of the performance management maturity model are structured to allow you to slowly adopt each of those domains and improve as you go. Naturally, the higher the maturity level, the more time and effort are required to set up and maintain it. Depending on your Salesforce customization and usage, you may not need to be at the top maturity level.

  1. Reactive Resolution. At this first level, you should have a basic understanding of the platform. You should be able to use the out-of-box tools for localized debugging and responding to performance issues reactively. You may think this would not be sufficient for any Salesforce platform customers, but the reality is, if you are an SMB customer with ten or fewer users, using the platform out-of-box with almost zero customization, then this may well be enough.
  2. Compliant Design. If your Salesforce solution has any customization, you should ensure the customizations are compliant with Salesforce performance best practices and tested from a performance standpoint. The key here is to build customizations with performance in mind to minimize performance issues in the future. At this level, you may also improve in the way you analyze and respond to any potential problems that slip through the cracks, with more structure and more collaboration across systems, networks, and teams.
  3. Proactive Management. Larger organizations and enterprises that have adopted and customized Salesforce for crucial business processes, should further invest in design standards, governance, and operational support to respond to any performance issues. It helps to also start establishing a performance baseline — by measuring and monitoring critical use cases — and use it as the cornerstone of all performance management activities. We also recommend customers that are aiming for this level of performance management maturity to consider adopting the Proactive Monitoring service.
  4. Progressive refinement. For our largest customers embarking on a full digital transformation journey on Salesforce, we recommend that your organization be fully enabled internally on all the best performance management practices. You may want to consider the following: a dedicated integrated team function for performance management; a robust technical library of best practice designs; full baselining, testing, and monitoring all use cases (including synthetic monitoring); and fully embedding these performance management activities into your DevOps processes.

Note that you should always have a solid foundation at each maturity level. Do not over-invest in one are while neglecting another. We often see customers who over-invest in monitoring tools, when they are not designing their solutions according to performance best practices and struggling to diagnose and fix simpler performance bottlenecks. They end up with lots of performance data, but they don’t know how to use it to improve performance.

No matter where you are in this maturity model, first focus on ensuring you are consistent in all areas before you advance and invest in the next level.

Advanced performance management capabilities

There are certain activities highlighted in the maturity model that are not done well (or done at all) by customers. However, they are critical in ensuring your performance management initiative remains a strategic focus:

  • Design patterns and best practices. In addition to following platform best practices, we recommend putting together a technical pattern library and checklists. Having such information handy for development teams will encourage them to continue following Salesforce performance guidelines that are tailored to their organization’s own unique IT landscape.
  • Embedding performance into DevOps. Integrating best practices, such as performance testing, into DevOps processes empowers developers, shortens dev cycles, supports scalable solutions, and enhances each release’s likelihood of success.
  • Data-driven performance monitoring. Not only does this help with the diagnosis of faults proactively, but you can baseline the application’s current performance and track any performance degradation introduced by future developments. You can also see trends in application performance, enabling you to predict future performance as more users adopt the platform.

By investing in these performance management capabilities, organizations have seen better user experiences, fewer production issues, and long-term cost savings. Some of these capabilities can be difficult to establish; Salesforce Assurance Services can assist you in building the right foundations for these capabilities.

Starting your performance management journey

To sum up, performance is a complex topic. Managing it seems like a challenge, but don’t worry. Salesforce can and will work with you to equip your organization for this journey, based on the performance management maturity model.

In our experience, most organizations are at either the first or second level in the maturity model, with organizations running critical business processes in Salesforce being somewhere around level 2, 3, or 4.

Whether your organization is just starting its performance management journey or well on its way, remember that you don’t have to be the best at everything; rather, you should balance the actions you take and the investment you make across the different domains. Don’t over-invest in one place and under-invest in others. To make progress in your journey, find out where you are in the various domains, understand your needs and Salesforce usage, decide on which level of maturity is your end goal, and start working towards that goal.

Acknowledgement: Thank you to Osama Nasir and Yogesh Shama, Salesforce Assurance Service Program Architects, for contributions to this blog post, and the session recording.

About the Author:

Jsun Pe is a Director of Product Management in Technology Service Delivery, which ensures the highest standard in availability and performance for Salesforce services. He is also a Salesforce Certified Technical Architect, and he coaches the next generation of Salesforce Architects.

--

--

Jsun Pe
Salesforce Architects

Product Manager @ Salesforce, and Salesforce CTA. Opinion expressed here are my own and do not necessarily represent the view of any entities I work with.