So how *do* you find tester-developers? Certainly a job description that says "QA" seems to be an invitation for lots of resumes from script-followers. I want people who think repetetive tasks are what computers are for, not people, and that "poking at the interface" is exploration to help identify test automation to write.
Yes, yes, yes! One of my college internships evolved from CAD draftsman to CAD system programmer exactly because of this point of view: I knew the computer could do all this repetitive work for me so I pestered the sys admin all summer with questions about doing so. At the end of the summer she offered me a job. (Which led more or less directly to my employment at Microsoft, but that's a different story I'll tell some other time if any one actually cares to hear it.)
So how do I find tester-developers? I will tell you where we *think* we can find them - that is, where we are looking - but the fact that we have had a tester position open for ages now is testimony to the seeming scarcity of the breed.
Where to look comes from what you're looking for: smart people who are excellent coders and also have a passion for figuring out what makes things tick and thus what might make them break. Several sources come to mind:
- College campuses. Microsoft hires a lot of people straight out of school. Campus hires usually have had some real-world experience through internships and such, but they're still pretty green. The secret to finding testers here is to understand that college students often don't know they want to be testers! This is starting to change, but there still aren't a lot of people who set out to be testers. They think they want to be developers, usually, but that's just because they don't know any better. Look for that tester spark during your interview, and if you see it sell them hard on testing. It's great to see that "You mean I can get paid to break things?!" look dawn on their face!
- Conferences and training. You go to and send your people to conferences and training, right? Socialize with your fellow attendees and strike up some relationships. Even if no one is looking for a new position right now they probably know someone who is...and that someone may be just the person you're looking for. (Speaking of which, I'll be at Software Development West next week. If you're going too, or will be in the area, and want to meet up, let me know!)
- Industry. Do you think an application is exceptionally well-tested? Strike up a connection with people in that company. Don't go in with hiring guns blazing; just start making contacts and having conversations. Even more so than with conferences this is not likely to have immediate results, but this can be very effective long-term. And in the meantime, you're sharing ideas and building a network - never a bad thing.
- Your own team. If you don't have any testers on your team, maybe somebody would be interested in the job. If none of your testers can program, I'll bet that some of them are interested in learning. Growing team members into new roles means they get to learn new things and thus are more likely to stick around and continue to pay back everything you've invested in them. Plus the team gets to skip the pain of integrating somebody new, which is a giant savings.
- Your network. Simply tell everyone you know that you're looking for a tester that writes great code (or, alternatively, a programmer who is great at breaking things). Sooner or later Bob will tell Sally who will mention it to James who will be overheard by Larry who's dating your perfect candidate. This is the most reliable source for people, and while it doesn't pop them out the second you need them the candidates it does produce are very, very good.
Great SDE/Ts are hard to find, but they are out there. Not all of them are on my team, I swear! <g/>
[Edit 10 Mar 2005] Addendum: Yan Sun wants to know whether I consider Microsoft developers when I'm looking for SDE/Ts. Most definitely! Developers can become great testers just as easily as testers can become great developers.
*** Comments, questions, feedback? Want a fun job on a great team? I need a tester! Send two coding samples and an explanation of why you chose them, and of course your resume, to me at michhu at microsoft dot com. Great coding skills required.