The Clean Code Blog

by Robert C. Martin (Uncle Bob)

The Unscrupulous Meme

29 September 2017

There is a meme running rampant in our society, and our industry, that we need to confront and resist. It is the unscrupulous meme: The ends justify the means.

This meme is unscrupulous by definition. When a person has scruples it means that they choose honorable means to achieve their ends. A person without scruples will use dishonorable means to achieve their ends. Therefore the notion that the ends justify the means is a notion without scruples, and therefore without honor.

Let us choose a real example in order to illustrate this point. Let us assert that there should be more women programmers. This seems like a worthy goal. After all, the distribution of the sexes in software favors males by 20:1 or so.

What honorable means could we employ to increase the number of women programmers?

Before we can answer that, we ought to try to determine what the cause of the 20:1 ratio might be. Allow me to enumerate a few of the many possibilities:

  • Some in our industry may not view women as programmers.
  • Some in our industry may prefer men programmers over women programmers.
  • Some in our industry may actively discourage women from becoming programmers.
  • Some in our industry may abuse women programmers.
  • Women, in general, may not be as interested in programming as men are.

I think it is apparent that there are honorable means to address all of these causes. These include educational programs that help people see women as programmers; and work to reverse any conscious, or unconscious prejudice against women. Also included would be disciplinary standards and consequences for the active discouragement and/or abuse of women. Lastly, but of no lesser importance, would be public relations campaigns to help women become more interested in programming.

What about hiring quotas? Should we demand that more women be hired? Is this honorable? At first blush this might seems like a good tactic. Upon reflection, however, it must inevitably require that hiring decisions are not to be based upon merit. No matter how hard a candidate tries, no matter how much a candidate succeeds, that candidate may be passed over for someone of lesser merit solely because of their gender. It is very difficult to find honor in that. I would dare to say that the only honorable hiring policy is one that is entirely merit based.

What about reverse social pressure? Could we use that to achieve our ends? What if we see a speaker at a conference using language and/or metaphors that could be construed to demean women programmers? Should we organize against that speaker? Should we boycott any conferences where that speaker speaks? Should we urge conference organizers to avoid, or even disinvite, such speakers? Shall we put pressure on that speaker’s employer to terminate their employment? Should we physically attack that speaker’s servers and websites? Are these honorable means to achieve our end?

Clearly not. Such means are not honorable because they are unilateral and asymmetric. They are done in relative secrecy by a few, but they affect many. The few set themselves up as the judge, jury, and executioner. The accused is tried in absentia, and in secret, without the ability to offer a defense; and is then sentenced to be labeled a pariah, and to be ostracized from the industry. The sentence is enforced throughout the industry by the fear of reprisal. And the many, who could have benefited from the teachings of that speaker, are denied that benefit.

Not only are such a tactics dishonorable, they are disgusting. Anyone living in a free society should judge them to be abhorrent and reprehensible. The honorable way to deal with a bad idea is not to suppress that idea, but to present a better idea. If we see someone using rhetoric that we believe demeans women programmers, then we should present better rhetoric, with better ideas, to counter them.

Unfortunately, what we see in our industry (and in our society) today is an ever increasing use of the unscrupulous meme that says: any means is acceptable if it pursues the achievement of our ends.

And so we saw Doug Crockford disinvited from Nodevember for making a muscle. We saw cleancoders.com endure a Ddos attack[*], because of this blog. And we saw James Damore fired for suggesting that women may not be as interested in programming as men are.

The firing of Damore was dishonorable. The disinvitation of Doug Crockford was dishonorable. Any Ddos attack is both dishonorable and criminal.

Here’s a better idea:

Have scruples. Be Honorable!


[*] Thanks to all our supporters who made the two days of that attack among our highest revenue days on record.