I’m a big fan of “Laws” of software development – Rules that express complex ideas in very few words. Moore’s Law, for example, that computing power doubles (roughly) every eighteen months.
Or Jerry Weinberg’s advice to not attribute to malice what can be explained by incompetance.
Or Paul Jorgensen’s rule of large numbers in software development: Big Numbers times Big Numbers equals REALLY big numbers.
Now me, I’m working on a theory for software estimates, but here’s another interlude, Heusser’s Rule, which explains a lot of the … odd behavior you’ll see on software projects:
Most people really like to be able to sleep at night
This explains why people would rather be certain and wrong than uncertain and right. It explains why people hold on to bad ideas that should have been discredited long ago. It explains why people can force themselves that they will meet a deadline, despite a mountain of evidence to the contrary.
And it explains why they shoot the messenger. It’s not that you’re wrong; no, you are very much right. But by calling a spade a spade, you’ve robbed the entire room of the ability to sleep at night.