Menu Home

Rule 42 Software

Continuing (and hopefully ending) our quick series on software pathologies I would like to follow-up The Hyper Dance with “Rule 42 Software.”

Rule 42 Software is is software that has:

  • Bad default parameters.
  • Not enough warnings about these parameters.

Bad Defaults

As software changes, it often accretes feature and drifts away from its design, if it even started with one, and many defaults and settings become undesirable. New users are blamed for not moving parameter settings away from the defaults to the “obvious” acceptable values.

My friend Will Welch described this as:

You forgot to set the “do not lose” flag.

It isn’t always possible, but it should always be a goal, that software should have good usable default settings. That is, the correct settings should be the rule, and not the exception. They should stand out as rule number one, not buried as Rule 42.

Rule 42 comes from Lewis Carroll “Alice’s Adventures in Wonderland”, 1865:

The Hunting of the Snark cover

At this moment the King, who had been for some time busily writing in his note-book, cackled out `Silence!’ and read out from his book, `Rule Forty-two. All persons more than a mile high to leave the court.’

Everybody looked at Alice.

`I’m not a mile high,’ said Alice.

`You are,’ said the King.

`Nearly two miles high,’ added the Queen.

`Well, I shan’t go, at any rate,’ said Alice: `besides, that’s not a regular rule: you invented it just now.’

`It’s the oldest rule in the book,’ said the King.

`Then it ought to be Number One,’ said Alice.

No Warnings

Some software does warn users when they use inappropriate defaults, and even suggests newer settings. It turns out Lewis Carroll had a Rule 42 for this also.

Lewis Carroll also used a Rule 42 in “The Hunting of the Snark”, 1876.

The Hunting of the Snark cover

The Bellman, who was almost morbidly sensitive about appearances, used to have the bowsprit unshipped once or twice a week to be revarnished, and it more than once happened, when the time came for replacing it, that no one on board could remember which end of the ship it belonged to. They knew it was not of the slightest use to appeal to the Bellman about it—he would only refer to his Naval Code, and read out in pathetic tones Admiralty Instructions which none of them had ever been able to understand—so it generally ended in its being fastened on, anyhow, across the rudder. The helmsman used to stand by with tears in his eyes; he knew it was all wrong, but alas! Rule 42 of the Code, “No one shall speak to the Man at the Helm,” had been completed by the Bellman himself with the words “and the Man at the Helm shall speak to no one.” So remonstrance was impossible, and no steering could be done till the next varnishing day. During these bewildering intervals the ship usually sailed backwards.

Conclusion

I say: look out for Rule 42 Software, it has wrong defaults, and doesn’t tell you the values you should have selected (i.e., it doesn’t issue useful warnings).

Categories: Computer Science Opinion Programming Rants

Tagged as:

jmount

Data Scientist and trainer at Win Vector LLC. One of the authors of Practical Data Science with R.

1 reply

  1. I automatically thought of Rule 42 in sailing, which is “a boat shall compete by using only the wind and water to increase, maintain or decrease her speed. Her crew may adjust the trim of sails and hull, and perform other acts of seamanship, but shall not otherwise move their bodies to propel the boat”
    which simply put is: No cheating.

    Like

%d bloggers like this: