I had a double major in college, but it was two highly related degrees. I had friends, however, who double majored in things like Economics and Music, or Psychology and Education, or Computer Science and Anthropology. You could argue whether the different majors were related or not, but what wasn’t arguable was that these people simply had broad areas of interest.
It seems to make sense to me that people can be skilled in multiple ways, yet I often see people in the test community divide themselves between coders/automators and testers/domain experts. If I had to choose one, I may choose the domain expert more often, but why should I have to choose? I bet I know hundreds of testers who are domain experts – people on the Word team who have in depth understanding of bibliographic notation and who can write automation and debug crashes; people on the Money team who have accounting degrees, and can help design for testability and drive defect prevention throughout the entire product team. I just don’t understand why some people think that you can be either a domain expert in their area of testing or someone who knows something about programming.
I’m sure I’m a little sensitive because MS seems to take so much heat for primarily hiring programmers for test positions, but our feeling – or at least my feeling – is that these employees will bring their passion for learning, and their entire history of interests and be fantastic testers. Remember – these folks are testing computer software – they will also be able to use their knowledge of the system to isolate bugs sooner, and understand how to best be both efficient and effective in testing the product.
I suppose it all comes down to context. If I were developing a one-off low-no support product, I would definitely want the domain expert. They are going to find enough of the bugs that will block sales that I will still be able to release and make a profit. However, if I’m working on a product that will have multiple subsequent releases, and a 7-10 year support plan, the context tells me that I need to do a bit more.
Is it naive of me to think that deep domain knowledge and programming skills can be shared by one person?