Oh, do we love getting into the details of performance testing. We love finding out what little bit of code, what configuration setting, what hardware-issue-we-can-blame-on-the-IT-guys is causing our performance bottleneck.
But with all of that joy in the details, effective performance testing means more than the details. No matter what we’re doing, we have to remember the most important parts of our software projects.
Effective load testing means keeping user needs and user challenges in mind. There are many different user needs frameworks you can use, but for this article, we’ll focus on some fundamentals - and easy ideas you can put to work today.
We were careful not to use the words “goal” or even “jobs to be done” here. While those are valuable things to talk about, for this discussion we wanted to focus on only the user needs. Ultimately, your user isn’t coming to your site because they like your app, company or site. Instead, they’re coming because they have a need - a problem they need to solve.
Keeping the need in mind helps keep your ultimate objective clear. Your objective isn’t necessarily just to make sure your site or app performs well. Your objective is to make sure you’re filling the user’s need.
For example, if we’re building an internal expense reporting web app, our user stories and our objectives may seem to revolve around specific business requirements. Yet, if we keep our user needs in mind, we can better engineer, build and test our project: we know that if we make it easy to use and fast that employees will be more likely to use it - and achieve the overriding business goal of better expense reporting.
That example illuminates how easy it is to get caught in the weeds - the details - of our projects, from code to performance testing. The goal is not just to make our projects run quickly, but to increase user satisfaction, usage, and overall happiness.
This, in contrast, fits our developer “what could go wrong” mindset even better. We spend our days imagining what users might do wrong - and how to effectively handle those errors.
Like our discussion of user needs, however, we can elevate our view and build our projects even better.
Ask: what challenges are my users likely encountering right now?
For example, to use our expense reporting app, are they likely to be trying to find scannable receipts? Are they trying to reconcile their expenses with a corporate credit card statement?
Then, we can answer the question: how can I make it easier for the ultimate user given those challenges I’m anticipating?
Maybe the users will be working in multiple sessions, so well-performing and fast session control is important. Maybe they’re likely to be using the app in an environment full of distractions like a factory floor or a shopping cart full of toddlers. Or, even more critical, maybe they’re trying to get essential information while driving.
Try applying these ideas of user needs and user challenges to your projects, and even to building your load test scenarios.