When I saw a Reuters article about David Platt's new book, Why Software Sucks, I thought it sounded familiar. Then I realized that I'd gotten a reviewer copy of that book a few weeks ago, but had put it aside because it didn't have an animal on the cover.
That article brought me up short when it cited Platt's apparently anecdotal assertion that "computer programmers tend to prefer manual transmissions." That sounded like the kind of thing that might have casually morphed from a metaphor into an unsupported factoid, so I dug my courtesy copy of the book out of a stack of as-yet-unread volumes to see what Platt actually claimed. I found reasonable support for the claim, based on what Platt described as show-of-hands responses in classes taught at companies over some period of time. And the Reuters writer only needed to get as far as page 13 to find it.
The question is, why would this be the case?
- Do programmers feel a well-founded discomfort with unnecessary complexity?
- Do programmers sneer at the notion of relying on someone else's code?
- Do programmers incline toward, as Platt asserts, any choice that gives more control even at the expense of less convenience?
- Are programmers merely more thrifty, as a group, than the population at large?
Absent additional research, any of these explanations is as plausible as any other, but number one would say hopeful things about the future of software reliability; number two and number three would be harbingers of continued failure to exploit software reuse or to pay attention to usability issues.
Platt is not the only one to generalize about programmers, and I wonder how well such generalizations hold up at all any more. The population of "programmers" is becoming ever more diverse, it seems to me. I also wonder whether something like a preference for stick shifts is really quite ambiguous in what it says about the challenges of identifying talent, attracting and retaining it, and motivating it to do good work.
Tell me what works for you.