How to Performance Test Your Work Process
As developers, we use performance and load testing tools to develop the best products possible. They help us improve product quality, avoid errors, improve development cycles and shorten work times.
But how can we, as developers, teams and organizations, improve our own work performance, do more in less time and get higher quality results?
By taking the same principles we use when building and running a load test, and implementing them into our daily work, we can optimize our own performance. This is true for developers, development teams and organizations,
1. Define Your Test Plan
First, we need to define clear goals and targets. In the performance world we define the load we want the system to handle, and configure it through thread groups, samplers, timers, ramp-ups, loops etc. These defined goals and targets are specific, measurable, achievable and time framed.
The same goes for our daily work - it’s important to specify what we want to achieve. For example, at an organizational level, when the new version should be released, what it includes, how we want to see the product delivered to clients and when it should be delivered.
At a developer level, when we develop the specific features we’re responsible for, how to code them to ensure they are of high quality and when they will be delivered to QA.
This clear definition helps us achieve the desired result since it mobilizes to action, makes sure everyone is on the same page with the same expectations, and focuses everyone in the same direction.
2. Define Measurements and Control Pass-Fail Thresholds
After deciding on our test plan, we need to determine how we measure its success or failure. On a load test we use KPIs like response time, hits per second and error rate.
Similarly, during our own work process, we need to measure what we are doing, based on quantitative and objective data. Measurements let us determine if we were able to meet our planned targets, and to what extent.
For example, when a programmer develops a feature, she or he can add measurements along the development cycle: Were timelines met? Were quality targets met? Did the feature pass QA in the first cycles? Was it returned to development more than once before completing the full QA cycles? Are the customers satisfied with how the feature was developed?
These measurements let us discover the gaps between the planned goals and their execution. Determining and controlling pass-fail thresholds for load testing KPIs and for our own work, highlight and alert which issues we need to engage in and address.
3. Use Real-Time Analytics
Defining goals and identifying performance gaps is important, but to make our work count and to improve we need to understand why we are succeeding or failing and what the consequences are.
In load testing, we have real-time reports that let us understand and analyze the data and KPIs we measured. If we see errors in the reports we can drill-down and figure out the origin of the bottlenecks we see.
In our daily work, we also need to understand in real-time how we are doing, and especially why we were deviated from meeting our goals, if that’s the case.
In such a case, we should ask ourselves if there were gaps or disparities in planning, execution or measurement, if there were unexpected events that took place and if the problem is one-time or part of a pattern. Then, we should determine the scope of the problem and figure out how to fix it and prevent it from recurring in the future.
If we’re doing well, we need to analyze and understand the success factors, so we can recreate then in the future. We should also examine if we need to set a higher standard for next time, so we elevate our personal and organizational strengths.
This analysis helps us make data-driven decisions, and also ensure we identify gaps in real-time and not only at the end of the process.
4. Test Continuously, Develop Continuously, Review Continuously
Congratulations! You met your goals and analyzed what you did better and what you did… not quite as well. Now what?
Now it’s time to improve. In performance testing, integrating development into the Continuous Integration process and running automated load tests routinely ensures ongoing product improvements and time saving.
This is relevant for our personal and organizational routines as well. Continuous planning and ongoing self-examination and performance reviewing, ensures we avoid repeating existing harmful patterns and focus our efforts in the required places. By constant learning, we can achieve our goals more effectively and efficiently.
The responsibility for implementing these practices into our daily work is ours as employees, together with our managers who are leading these processes. We need to remember that the main motivation for performance and change is the continuing ambition for personal and organizational development, deriving from the will to progress, learn and evolve.