I strongly agree; a programmer that understands the problem domain and the business layer as well as the superficial "requirements" foisted upon him is about 10x more useful than one that merely follows instructions toward some sort of end that is not particularly accessible to him.