Performance testing is a high profile and high impact activity; mistakes made here are very visible and costly. Performance testing is akin to a technical project manager role. Quality requirements and stakeholder management is as important as the tool experience.
The fact of the matter is that I’ve found performance testing to be a largely miss-understood area, particularly by the people that are recruiting. Very often the person doing the recruiting has very little knowledge of what is required – other than specific toolset knowledge. I’ve also found that once into a company, many stakeholders have very different ideas of what the performance-testing role entails – It’s a tricky balance to achieve and it takes time to correctly set expectations. There are the obvious and generic qualities such as: Attention to detail; diligence and disciplined. Everyone should have these core set of values. The key core skill – ability to script in the chosen performance tool – shouldn’t have the weight and precedence that people assign to it. Here are the attributes I look for when interviewing, in priority order:
- Previous development experience
- Performance Tools Experience
- Willingness to share knowledge and transfer
- Techniques adopted when tackling a problem
- Knowledge of the performance testing lifecycle
- Ability to learn and adapt to different systems
- Graphing / Monitoring experience
- UNIX/3GL/SQL experience
- Emotional Intelligence – Performance Testers have to communicate effectively with stakeholders from different disciplines
It’s not an exhaustive list, but I’ve found it to be a good indicator.
Notice the specific tool set is not on the list, e.g. Loadrunner, Performance Center, JMeter, Facilita – if someone has good experience with other performance tools it really won’t take very long to come up to speed with the in-house toolset, they mostly work on the same principles. I’ve cross trained some very talented individuals – and these have become more productive than some people that have had 5 years+ experience. I look for ability first and foremost and then experience. A willingness to extend outside their comfort zones and come across well to other stakeholders is another key attribute. A good performance tester really should want to understand the application, architecturally and from a business perspective. Do you really want someone to just sit, script, run tests and report results – if they have no interest in understanding the application then they will write poor performance tests. This means you should also look to people that are able to communicate effectively – the performance role is directly related to the quality of the requirements driving the test. The role should have someone that is always interested in questioning and evidencing what lands at their desk. A healthy scepticism is always good.
I also have a selfish requirement – I want my team to grow and not need me. I deliberately go for personnel that can learn, step up and eventually lead the team. There is nothing worse than going away and coming back to a series of high profile failures. The quality of management within a team is directly related to the amount of issues caused by them. Good teams can often go unnoticed.
- Experience does not equal ability
- Specific performance toolset ability need not be an automatic disqualification
- Strong programming ability is good indicator
- Performance testing is a high profile and high impact activity
A word of warning – Performance testers tend to be a funny old lot, they tend to have a quirky sense of humour and strong personalities. This may not be immediately apparent; but over time you will find they can enrich your team and working environment immeasurably.