Software Animism

The tendency to attribute malice to inanimate objects is deeply entrenched in the human psyche. In a famous account from Ancient Greek times, a bronze statue caused the death of an angry demonstrator when it toppled onto him while he was whipping it with a flail. The statue was put on trial, found guilty of murder, and pitched into the sea in vengeance by the sons of the victim.

Nowadays, little has changed except that instead we throw mobile phones through windows or swear vengeance on recalcitrant applications. We should perhaps acknowledge this lingering tendency towards such primitive animism. I wonder occasionally if it wouldn’t boost morale of software development teams to introduce a similar sort of trial into their morning scrums? It might work as well as anything in fending off the ‘gremlins’ that seem occasionally to infest their code and stall progress.

I often hear developers speak of a piece of software “giving them grief”, or “deliberately making their life a misery”, as if it is possessed by some willful spirit. If the developers’ Slack channel at Redgate is anything to go by, MSBuild must be especially cursed in this way.

It is worse when the code is of their own creation. Rationally, of course, we realize that the program is behaving that way because we coded it incorrectly. However, as the programmer fights bug after bug, long into the night, ahead of a looming release deadline, the timing often makes it feel more like an organized attack.

Why didn’t these bugs appear in the relative calm of the start of the sprint? A psychologist would probably tell you that, subconsciously, programmers will only find the bugs that they want to find, when they want to find them. When systematic tests are forced on them by the pressure to ship a release, they are shocked suddenly by the apparent lack of control they appear to wield over their creation. Surely the software has started misbehaving entirely inexplicably, in ways that could not possibly have been a consequence of their own coding actions?

Can you explain why applications, or scripts, always seem to misbehave at the most awkward or embarrassing moment? Which are the worst offenders? As usual, our favourite response will win an Amazon gift card worth $50, and the winner will be announced in the next newsletter.