So, a couple of weeks ago, a prominent programmer / writer wrote a post whose driving metaphor was: frameworks are bad because it’s like one woman having many men sexually subservient to her, whereas the way things should be is for one man to have many women sexually subservient to him. People complained, he apologized and rewrote it without the metaphor in question.
Last week, another prominent programmer / writer tweeted a picture of some custom artwork he’d commissioned. That artwork showed silhouettes of a woman posing in a sexualized fashion, holding guns as if they were fashion accessories, with those silhouettes serving as shooting range targets. The artist has produced quite a lot of works on that theme, it turns out; his statement says “We are, all of us, Targets in one way or another.”
After this last weekend: some of us are a hell of a lot more targets than others of us. As the artist says, “None of us are exempt from exposure to these fixed cultural elements of our existence, or the means by which they attempt to impose their will upon us”, but that imposition takes radically different forms in different circumstances. He says that “[I] ask my audience to interpret each piece for themselves so as not to be hindered or influenced by my intentions”; the interpretation that I’m coming to right now is that men’s conception of gender roles in this society is super fucked up; that manifests itself in many ways, along a continuum of severity; and that I don’t see the software development community as a whole to be particularly at the innocuous end of that continuum.
Another prominent programmer / writer tweeted: “Seems to me we (again) review ideas for political correctness before considering the ideas themselves. I’m not sure that’s good.” Which raises the question: good for what? If your sole objective is to try to become as good a programmer as possible, then focusing exclusively on ideas and ignoring metaphor, subtext, social context may be a good strategy. I’ve frequently been in that situation myself, and I’ve learned quite a lot about programming from all of the programmers mentioned here. (Though if their books had been full of harem metaphors, I’m not nearly as confident that that would have been the case.)
Becoming a better programmer isn’t my only objective these days. There are a lot of problems in this world, a lot of directions along which to try to improve; programming ability is one of those directions, and I still have a huge amount to learn in my struggle to become a better programmer, but there are a lot of other issues that I struggle with, that I have a huge amount to learn about as well. And I think some of those other issues might even be a bit more important.
Post Revisions:
This post has not been revised since publication.
Not sure if you were being deliberately ambiguous with “may be a good strategy.” Good programming can’t ignore key aspects of human communication because programming is about communicating with both machines and people. (I’ll dodge the debate about which is more important.). Even when we envision that the poor slob struggling to understand our code may, in fact, be our future self, we invite disaster by assuming that future us will have the same context we have today.
You can’t, I think, be a good programmer while ignoring that programming is communication that invokes the full spectrum of shared experience.
5/26/2014 @ 7:52 pm
No argument there; I’ve gotten a lot out of reading, say, Refactoring, but I’m really really glad that I’ve read quite a bit of Gerald Weinberg as well. And the fact that it combines both the technical side and the people side of programming is a bit part of what I like in the agile literature.
5/28/2014 @ 8:34 pm