So your company has or wants to build a performance testing team. In this first of a two part series I’ll talk about finding the right people to allow your team to succeed.
Specialists versus generalists
Performance testing is a highly specialised field. It takes years of dedicated practice to gain the confidence and competence to do it well. It’s generally not possible to have part time performance testers who dabble in it now and again, they simply won’t have the capability to manage performance risk effectively.
At the very least you are going to need at least one experienced performance specialist on your team to lead the assessment and scoping of work, to mentor and guide the testing effort, and to handle difficult tasks such as diagnosing performance issues. Such a resource is hard to find, but worth their weight in gold.
Technical and soft skills
The best performance testers have a rare mix of technical and communication skills. It takes a special kind of person (for example) to dive deep into a database performance issue and then to talk about that with a non-technical business stakeholder in a way that they can understand.
From a technical perspective, if someone is uncomfortable writing code that’s a pretty clear sign they won’t have the technical chops for performance testing. Other important technical skills include understanding complex solution architectures, and analysing huge volumes of data to draw meaningful conclusions.
Assessing their communication skills (both written and verbal) is also very important. One simple way to approach this is to ask them to relate a technical job they’ve done back to how it actually adds business value.
When you are assessing a candidate think about whether this person is going to be able to go out and speak to developers, testers, architects, and the business and get what they need to do their job in an inclusive and engaging way.
Don’t get hung up on tools
A tool is a tool. A performance tester will need to work with any number of tools on a day to day basis (for scripting, monitoring, troubleshooting, data analysis, etc).
While the ability to learn tools is definitely important, what’s more important is the ability to look beyond the tool. It’s important to make an unbiased decision when selecting the right tool for any given situation.
After all, a tool is only as good as the person using it.
Developer driven performance testing
There is a push in the shift left movement to do performance testing earlier in the development life-cycle. This often leads to developers building component level performance tests into their builds, rather than a dedicated performance resource.
However, this does not remove the necessity to think about performance holistically. Many (if not most) performance issues occur once you integrate your system(s) together in a production-like way. It takes a performance specialist to understand this risk and to build a testing approach to manage it appropriately. Bringing your performance specialists and developers together is the best way to utilise both sets of skills.
I believe if you have a team of the great people, things just work. In my next blog I’ll be exploring some of the structures you can put in place to facilitate better collaboration, information retention, and efficiency once you have a team in place.