This doesn't really surprise me that much:
For instance, the IT guy—and they're about three times more likely to be men than women—doesn't necessarily have a computer-science degree. About a third come to IT with degrees in business, social sciences or other nontechnical fields. More than 40% of computer support specialists and a third of computer systems administrators don't have a college degree at all.
My masters degree (and if Ph.Ds are called doctors, why aren't MSs called "master"?) is in a traditional CS field, but my bachelors is on interdisciplinary degree, a mix of political science and computer science. Most of the programmers I have worked with have non-technical degrees: music, philosophy, business, english. Programming is an inherently creative endeavour: you have a problem or a need and you must come up with a solution using limited tools and your own imagination. I am completely unsurprised that creative people of all backgrounds would be attracted to it.
This all explains, I think, why companies that treat programmers as if they worked on an assembly line. Programming is a craft, not an endlessly repeatable process. Treating it as if it was just a series of easily repeatable steps does nothing but remove the motivation of the people doing the work. It may not be efficient in the business school sense, but it is true nonetheless: if you want quality code, treat your coders as respected craftsmen.