Programmers were originally employees who learned programming to support their day-to-day activities. Maybe they were systems administrators who needed to fix the DNS system, or possibly they were secretaries looking to make the word processor do what they needed it to do.
Over time, it has become more and more likely that a programmer does not have a knowledge of the business above and beyond what the specification tells them, or technical skills other than how to program. Some people think that this is a logical and necessary result of skill specialization; others say that it deprives programmers from having the knowledge they need to do a good job. What do you think? Take this poll.