Can one person be two things?

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?

Comments (5)

  1. Ken Smith says:

    I suppose it’s possible to be more than one thing, but the further apart from each other those two things are, the harder it is to be an expert at both.  Database guys are generally real experts on only one or two databases, and dabble in the rest.  That said, if you can find someone whose brain is plastic enough to wrap their heads around multiple subjects, not get intimidated, and keep learning, you’ve found somebody worth keeping.

  2. Tom Eble says:

    In my experience, it is much easier for an automator to become a domain expert, than for a domain expert to become an automator.  First, automators usually have a background in programming.  At the least, they have usually taken some programming in college, or have equivalent experience.  Second, it is natural for an automator to become a domain expert over time.  In order to get automation tasks done, one needs to pick up domain knowledge, and that knowledge will grow over time.  Conversely, domain experts typically do not have the time similarly allocated to pick up automation expertise.

  3. Alan Page says:

    Tom – although I didn’t say so above, I definitely agree. There are going to be some people who can learn programming, but coming into the profession with some knowledge of logical constructs and computer architecture will make them better testers in the long run.

    Thanks for taking the time to comment.

  4. aschoolorg says:

    I apologize to being dense.

    What are "testers"?

    Alan Gregory

  5. Can two people think the same thing at nearly the same time? 🙂 I was wondering about exactly the same thing recently.

    I am on a team that is developing a testing tool. So, when my PM tells me that the target user is a domain expert and not a tester, I can understand if his target customer is only that. What I cannot understand is why we have to assume that the domain expert is braindead when it comes to testing. Are these 2 mutually exclusive things? I dont think so.

    And I agree with Tom on the first point – programmers can acquire domain knowledge, but vice versa with no programming background may be a bigger problem. You see folks at MSFT who acquire domain knowledge in the product all the time – the only constant common being they are all great programmers. So, I guess I can completely understand our SDET hiring philosophy