Peter Spitzer had been working within software testing for only 5 years before being presented with Test and Measurement World’s coveted Test Engineer of the Year award. At the time, Peter had been part of a critical project for Tricentis’ Tosca Testsuite, working with a small team of software testers to redesign and bring order to the Tricentis test portfolio. Prior to beginning the project, the test team at Tricentis had been facing a problem: given the volume of innovations that required testing, and the unorganized architecture of the tests, testers found themselves unable to execute their tests within the given time frame.
“It was chaos,” Peter stated. “Through that experience I came to conclusion that without structure and rules, people will do whatever they want, and tests will end up stuffed in every corner.” Overwhelmed by the daunting task of organizing the existing test cases, Peter and his team decided to scrap all 40,000 test cases and start from scratch. They built over 16,000 new test cases in just 4 months, reached an automation level of 90%, and managed to meet and maintain a high test coverage of 93%.
This was a project that appealed strongly to Peter’s nature. The task of unraveling a complex IT tangle into an easily searchable and categorized system matched his innate passion for bringing order into chaos. Though the project would have been overwhelming for many, Peter instead found himself rising through the ranks, eventually serving as Team Lead by the completion of the project. It was at this point, in 2013, that Test and Measurement World awarded Peter the title of Test Engineer of the Year.
Two years later Peter is still at Tricentis with the title of Test Manager, a backbone of the company, and head over an ever expanding team of software testers. Being relatively new to the world of Tricentis and software testing, I was impressed to hear that we had such a celebrity within our ranks. Would an award like that change the way Peter approached his team? Clearly for some, such an honor would quickly go to the head, like a quick inhalation from a helium balloon. I sat down with Peter to chat about his experiences since being dubbed “the best test engineer in the world,” curious as to what his perspective would be on leading of team software testers. Rather than finding an ego inflated manager or the stereotyped uncommunicative IT brain, I got a lesson in the philosophy of testing, the qualities of a good tester, and how to become a leader worth following.
“Chaos,” Peter said, “is an unavoidable – maybe even necessary – part of a software tester’s work. It is our job to be curious, to investigate, and to bring order to the chaos by understanding how the something operates.”
For Peter, the idea of balancing chaos and order permeates every aspect of his job. It colors his perspective on his responsibilities as a leader as well as his personal philosophy on software testing. “The most critical part of my job as the Test Manager is to protect my team. There are always people putting work on my desk – whether it is the terms of the product changing, needing to help in support, pages that need testing, or new projects that take priority. I think one of the most important qualities to being a good team leader is to make sure my team don’t feel the pressure of the chaos. I absorb it for them – I try not to let them know that it is there.”
I was intrigued by Peter’s ideas on protection being one of the necessary traits of effective leadership and asked him in what other ways he found it important to protect his team.
“Management or Engineering tends to blame the test,” Peter answered. “When something happens out in the field, on the customer’s side, the tendency is to go to the testers and say ‘this is your fault’. As testers however, we are trying to ensure the test and the quality – we did not create the bugs. That came from the development side. I can protect my team by knowing how to communicate to Management and Engineering the value and positive aspects of our work.”
“Another important point for me is to protect the morale of the team. The Test Lead is responsible for the morale – we always try to joke and have fun. I even have Nerf Guns to shoot people with when it gets too quiet. You need to remind your team to take breaks: it helps everyone to work better, happier, build the right tests, and make less mistakes.”
Considering that Peter currently supervises 15 full time testers, he has his work cut out for him when it comes to developing a successful testing team. How do you go about creating a strong and cohesive team?
“We have a mentor program here,” Peter answered, “where we couple a new tester with one who has more experience. A lot of our workflow is obvious – we do them in the easiest and fastest way to get to the results. The things that are not as obvious are the things they have to ask.
Asking questions is really encouraged. In fact, I would say asking questions is the point of our work. We are always looking for better solutions, understanding how something functions. The most successful testers in my opinion, are the curious ones – who are asking the most intelligent questions. That can be difficult though, because you cannot teach intuition. Not everyone has the natural inclination or passion needed to succeed in the field.”
Before I could even ask, Peter pre-empted my next question, presenting me with a list of his favorite advice to give new testers – the very same advice to which I would credit his present success.
Top 15 Tips for New Testers
1. Always have a good relationship with the engineers.
2. Ask the right questions. Don’t just ask for the sake of asking. Try to understand the context and dependencies, then ask the questions that will give you deeper insights, help you understand, and enable you to build the right test cases.
3. Think like an end user, or your grandmother.
4. Sell your work to the Development team. Engineers need to understand that the tester offers a service that benefits them and improves the quality of their product. Contrary to popular opinion, a tester doesn’t want to deliver bad news every time.
5. Do not be afraid to say, “I didn’t understand, can you explain it to me once again”.
6. Never tell an Engineer (or anyone, for that matter), “your baby is ugly”. It is much better to say, “Your baby is different”. Don’t be dismissive of someone else’s hard work, even if you don’t like it.
7. Don’t blame or judge anyone. Playing the “I told you so” game is tempting, but ultimately will not benefit anyone.
8. Market your perspective. If you think that something should be changed, explain your view points and convince the engineer that you are right.
9. Be honest and eager to learn new things every day. Integrity and openness develops trust, which ultimately will help you succeed in your field.
10. Be open-minded to new technologies, workflows, testing techniques, tools, opinions, etc. The best testers are the ones who are willing to adapt as the field changes.
11. Don’t expect a 9 to 5 job.
12. Be open and make your work transparent for everyone. This will build trust and increase the Engineer’s confidence in your work and input.
13. Try to have a buddy in every important department of your company (I.e.: Engineering, Services, Support, IT…). At least once in your career you’ll need their help, and it will be worth the time you spent developing those relationships.
14. Train your social skills. A software tester who communicates well can go far.
15. Visit the “rumor places” of your company, such as the cafeteria, chill out zone, smoking area, etc. A lot of information is available there under the table. (New patch coming round? Need a new Release Candidate? Etc.)