Should programmers be domain experts?

dns

Solution

Yes and no.

As Kyle pointed out, programmers are often changing domains on every project and this pretty much precludes you becoming an "expert" in any given domain. On the other hand, you need to understand the problem well enough to a) craft a solution, and b) test that it actually solves the problem at hand.

One reason for not claiming domain knowledge is so that your customers are forced to take ownership of this part of the project. The best way I have fouond of forcing them is to require a clear overall description of the project (no more than a couple pages long) plus a ton of User Stories ... written by the users. You can lead them through the process of how to write US's, but they will not truly own the end solution unless they were intimately involved in creating it.

Having US's and using them both for design and testing puts project ownership where it ultimately belongs -- in the hands of the users of the system.

Problem

What, in your opinion (although I would highly appreciate articles / books on related issues), should be the the level of the programmers knowledge of the domain? (This related question didn't quite answer my question / had a reference to something I can use)

Original source