User:Tim Starling/Mistakes

From a wikitech-l post

I thought I might add to my analysis of the accidental reboot earlier, with a few opinions about the nature of mistakes.

Jeronim's mistake, if there was one, was relying on "being careful", usually pictured as a furrowing of the eyebrows and some sort of commitment to double-checking. The problem is, you can only keep your eyebrows furrowed for so long. When a task becomes routine, mistakes are inevitable. For example, when you say a tongue-twister, you can often get it right the first time. But say it 10 times quickly, and mistakes are almost impossible to avoid. In general, it's impossible to maintain concentration when performing a routine task. Add fatigue to the mix, and mistakes become inevitable.

The objective, then, is not to avoid mistakes. It is to analyse the task at hand to determine the mistakes that might be made. If you can see a potential for a dangerous, damaging mistake, change your work practices to avoid the possibility altogether.

Recognising the potential for mistakes requires experience -- unfortunately we often have to make a mistake before we realise the dangerous situation we were in. But after we make a mistake, we're in a position to think of ways to avoid it in the future, and that does NOT mean resolving to furrow your eyebrows more often.

For example, I once attempted to run this on geoffrin:

% chgrp -R wikidev.

but I made a typo and did this instead:

% chgrp -R wikidev /

I was being careful at the time, it's unreasonable to expect yourself to pause for a few seconds every time you want to press enter. I resolved to never again perform a recursive write operation on "." -- I now make a habit of using * instead. There are no dangerous keys near *.

Another example of a mistake mitigating device is the automatic syntax check in sync-file and scap. Coloured bash prompts are a third type -- I started using them myself so that I would know the difference between my home computer and a remote computer. Colours and movement aid in fast recognition. They require less concentration than reading, at a time when concentration is at a premium.

So in summary, there are three types of mistake mitigation which I use on a regular basis:


 * Good habits -- adopt work practices where common mistakes are not harmful
 * Automated double-checking
 * Cognitive aids, such as colours and movement

Finally, remember to consider your mental state. Avoid logging in when fatigued. Take regular rest breaks. Never log in when drunk.