Chapter 11. Question Authority

image with no caption

General standardization across development teams and development communities is a good thing. It allows people to read each other’s code more easily, understand idioms more readily, and avoid wildly idiomatic coding (except perhaps in the Perl community[46]).

But blind adherence to standards is just as bad as having no standards at all. Sometimes standards prevent useful deviations. For each of the things you do when developing software, make sure you know the reason why you are doing it. Otherwise, you may be suffering because of angry monkeys.

Angry Monkeys

This is a story I first heard from Dave Thomas during a keynote address he delivered called Angry Monkeys and Cargo Cults. I don’t know if it’s true (despite researching it quite a bit), but it doesn’t matter—it illustrates a point beautifully.

Back in the 1960s (when scientists were allowed to do all kinds of crazy things), behavioral scientists conducted an experiment where they placed five monkeys in a room with a stepladder and a bunch of bananas hanging from the ceiling. The monkeys quickly figured out that they could climb the ladder and eat the bananas, but every time the monkeys got near the stepladder, the scientists would douse the entire room in ice cold water. You can guess what that generated: angry monkeys. Soon, none of the monkeys would go near the ladder.

Then, the scientists replaced ...

Get The Productive Programmer now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.