As with so many things in life, best practices in load testing apply well to optimizing your work and your workday. You can find productivity hacks anywhere, including in your load testing habits. Here’s our take:
Understand Desired Outcomes
In load testing, you test to make sure you’re achieving your desired outcomes, a good user experience, fast API responses, zippy site load times, or something else that is important to you.
The same principle applies to your workday. What are your ultimate goals? Do they map to your piece of the team’s work, or are you more independent and have to set your own desired outcomes? Perhaps you want to deliver a certain piece of code on a certain day. Or perhaps your team and code reviews need to be completed on a regular schedule.
Whatever your desired outcomes, it’s essential to define them and see how they’ll be measured. Define the outcomes so you’ll know when they’re achieved. This brings us to the next tip:
Set a Performance Target
It’s easy to fall into the trap of an all-or-nothing productivity goal. But in load testing, best practices dictate that we set a performance target instead. A performance target in load testing reflects the point where a site, app or API delivers reasonable performance under a typical load (users, calls, etc.) with normal behaviors.
In work, measure your productivity similarly. Every day, every week, every month can’t achieve ideal performance. The secret: shoot for ideal performance, but realize that achieving at least the target is perfectly acceptable. You might measure your achievements not in milliseconds, like we do for web site load tests, but instead by progress against the goals you’ve defined, tasks moved out of your backlog, or even todo items completed.
Every now and then, especially if you’re finding that you’re not quite achieving your target consistently, let alone your ideal performance levels, it’s time for some tuning.
Tune Occasionally, Test Regularly
The difference between performance testing and performance tuning: testing should be done regularly to make sure targets are achieved; tuning is what you do less frequently to increase overall performance.
Just as in load testing, for your personal productivity you can’t try to tune performance daily. Instead, every now and then take a look at practices and tools that might help you eliminate a performance bottleneck. A simple example: if replying to Slack notifications is taking your head out of your projects too frequently, snooze notifications and process your Slack conversations in batches. In ancient days (and sometimes now), this same trick worked with email messages, too.
The best practice here: as in load testing, don’t spend your time trying to optimize performance every day. Instead, set time aside periodically to tune your performance, especially if you see you’re not achieving your targets or you’ve had to adjust to additional load.
Because you’re testing regularly, preferably with automated CI / CD tools, you’re a more performance-aware developer. As you work, your code naturally performs better because you’re seeing the effects code changes have on performance. (though they're still likely to be necessary now and then).