One of my larger projects at work right now revolves around the growth paths for senior testers. The career path for testers at Microsoft is a bit different than some other companies in that testers can attain promotions, salaries and awards equal to any other engineering discipline. Part of what I'm working on is coming up with better analysis and descriptions of what "super senior" testers do (I am waaay over simplifying here, but I can answer questions on the other pieces if you're interested).
I've talked personally with 100's of testers at MS, and in small groups (classrooms or lectures) to probably a thousand more. As you can imagine, this (in addition to my other projects) is keeping me busy. In fact, a few weeks ago I was talking to a test team about senior tester roles and 'G' asked "when are you going to blog again?" I guess when one of my loyal 23.5 readers asks, I respond...just slowly.
For terminology sake, let's call the role "senior". You may refer to a high level tester as senior, professional, expert, highly paid, or whatever-word-you-want-to-use. For this brief post, I'll use senior.
The roles that a senior tester can fill vary a bit, but I was thinking about the attributes that all senior testers have.
I'll admit that one of the first things I thought of was to leverage some of the points I see as controversial in Bach's Expert Tester presentation, but other than disagreements on what the most important points are, I think it's pretty close. That said, let me boil this down to a few bullet points.
- Experience - If you want to be a good tester, you need to practice, practice, practice, Figure out what works, what doesn't work, why things don't work, and why things work. In fact, ask "why" a lot. Test good products, test bad products, and try different approaches to testing. Repeat for several years.
- Passion for learning - The great testers I know all realize that there's more to know. Where I disagree with Bach is that I think the testing books are good books to read too. While I agree that some of the books are cr..er...not as good as the others, I found that by reading about different approaches I was able to draw my own conclusions and conduct my own experiments on which techniques were useful or not (or when they would be useful).
- Technical - Many people think that by "technical" I (or MS) means "coding skills". While we do primarily hire people who can code for testing positions, "technical" can also mean extensive knowledge in a particular area, such as networking, graph theory, or computer hardware. A knowledge of computer science can help in a number of different ways (which I'm sure I've mentioned in past posts), but this knowledge can come from experience as well as a degree.
- Technical Leader - simply put, the senior tester is a "go to" person on their team. They help, coach, and mentor their test team. They make their team better
- (sometimes) Strategist - It's so easy in test to focus on the tactical and put your head down and test, test, test until it's time to ship. Many senior testers are the ones poking their heads up and looking at the long term plans. They think about the strategy of testing the next version, and have a strategy for the entire team getting better.
I'll stop there, but there probably many other attributes shared by senior testers, and dozens of other specialized attributes. Feel free to chime in with some of the obvious things I've missed.