When it comes to software applications, every product team wants to build a highly performant application. But what does this mean, how is it achieved, and how do you know “it” when you finally get there? I am going to attempt to answer these questions by exploring the world of Web Performance Optimization. While a thorough, deep dive into web application performance is beyond the scope of this blog, I am going to talk about web performance in the context of analytics applications and introduce key questions product teams should be thinking about during application development.
Performance is a feature, and the awareness or development of that feature (at least where websites and web applications are concerned) is a practice. For application teams, part of that practice is ensuring that applications are designed to surface the metrics and measures needed—observability—and that systems are setup to monitor them.
Web Performance Optimization is a multibillion industry. According to the “Application Performance Management Market – Industry Trends, Opportunities and Forecasts to 2023” report, application performance management market was valued at $4.629 billion in 2017 and is projected to reach $8.773 billion by 2023. This industry has a vast array of players, divisions, terminologies, and disputes on the fundamental meaning of measurement, monitoring, and observability. But what we can all agree on is the need for applications that perform.
What it means to have a “highly performant” application can range depending on your industry, your service offering, and your specific end users. There is no one-size-fits-all checklist. Even for an analytics application, performance needs to be defined for your organization and the needs of your end users.
Ultimately, performance for an analytics application should answer these three questions:
1. Is the application available?
It depends on who is asking and what they are asking. In terms of your analytics application, ask yourself what availability means. Does it mean that a simple HTTP check, running every minute, confirms that the site is up? Does it mean your users can successfully log in? Or does it mean they can successfully view their default dashboard?
If you aren’t measuring the right thing, you don’t know what to manage. Start by defining the minimum user experience and ensure the user is getting that experience. From there, you can make improvements.
2. If yes, is the application fast?
We have all heard (and uttered) the words “this is too slow.” We want everything to be fast, but what does “fast” mean for your application and for your users? In the world of analytics, we need to think about speed in terms of data retrieval, application architecture, and basic performance best practices. For example, ensure that your static assets are being managed in the best way possible for your use case.
3. If yes, can the users do what they need to do?
Your application will have user groups and user personas with very specific stories and journeys. Can each group or persona follow the journey as expected? For instance, with respect to an analytics application, can the base “consumer” group log in, load their default dashboard, apply filters, and export to flat file format? If all the above is true, were they able to follow that journey in a “timely” fashion? Where timely is determined by the needs of your application and your users.
The purpose of performance monitoring is to detect issues in a system and minimize the impact on the end user. As management consultant Peter Drucker said, “What gets measured, gets managed.” To prepare for performance problems, you need to understand them.
Are you registered for the 2019 Logi Conference? We will be covering this topic and much more. View the agenda and get your ticket today.