Useful Laws For Software Developers


The 1% rule states that within an internet community only 1% of the users of a website add content, while the other 99% of the participants only lurk. Another variant of this law is 90-9-1 rule which states that in a collaborative website such as a wiki, 90% of the participants of a community only consume content, 9% of the participants change or update content, and 1% of the participants add content. – Link

The broken windows theory is a criminological theory that states that visible signs of crime, anti-social behavior, and civil disorder create an urban environment that encourages further crime and disorder, including serious crimes. Social psychologists and police officers tend to agree that if a window in a building is broken and is left unrepaired, all the rest of the windows will soon be broken. This is as true in nice neighborhoods as in rundown ones. This theory has been applied to software development, suggesting that poor quality code (or Technical Debt) can lead to a perception that efforts to improve quality may be ignored or undervalued, thus leading to further poor quality code. This effect cascades leading to a great decrease in quality over time. – Link

Brandolini’s law states that the amount of energy needed to refute bullshit is an order of magnitude bigger than to produce it – Link

Brook’s law states that adding human resources to a late software development project makes it later. – Link

Conway’s law states that organizations design systems that mirror their own communication structure. The law is based on the reasoning that in order for a software module to function, multiple authors must communicate frequently with each other. Therefore, the software interface structure of a system will reflect the social boundaries of the organization(s) that produced it, across which communication is more difficult. – Link

Dunbar’s number is a suggested cognitive limit to the number of people with whom one can maintain stable social relationships—relationships in which an individual knows who each person is and how each person relates to every other person. It has been proposed to lie between 100 and 250, with a commonly used value of 150. – Link

Gall’s Law states that a complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over with a working simple system. – Link

Hanlon’s Razor states never attribute to malice that which is adequately explained by stupidity. – Link

Hofstadter’s law states that it always takes longer than you expect, even when you take into account Hofstadter’s Law. – Link

Ninety-nine rule states that the first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time. – Link

Murphy’s law states that anything that can go wrong will go wrong. – Link

Occam’s Razor states that if we face two possible explanations which make the same predictions, the one based on the least number of unproven assumptions is preferable, until more evidence comes along. – Link

Parkinson’s law states that work expands so as to fill the time available for its completion. – Link

Joy’s law states that no matter who you are, most of the smartest people work for someone else. – Link

The law of conservation of complexity states that in human–computer interaction stating that every application has an inherent amount of complexity that cannot be removed or hidden. Instead, it must be dealt with, either in product development or in user interaction. – Link

The Law of leaky abstractions states that all non-trivial abstractions, to some degree, are leaky.- Link

The law of holes states that if you find yourself in a hole, stop digging. – Link

The Law of triviality states that members of an organization give disproportionate weight to trivial issues. Parkinson provides the example of a fictional committee whose job was to approve the plans for a nuclear power plant spending the majority of its time on discussions about relatively minor but easy-to-grasp issues, such as what materials to use for the staff bike shed, while neglecting the proposed design of the plant itself, which is far more important and a far more difficult and complex task. – Link

The Unix philosophy states that software components should be small, and focused on doing one specific thing well. – Link

The 3:30:3 rule as applied to APIs, a developer needs to be able to understand what your API does in 3 seconds, once you have their attention, they need to be able to identify how to call the API within 30 seconds, and finally, be up and running within 3 minutes.

The Hyrum’s Law states that with a sufficient number of users of an API, it does not matter what you promise in the contract: all observable behaviors of your system will be depended on by somebody. – Link

The Lindy effect states that the longer something lasts, the longer it can be expected to last. – Link

One thought on “Useful Laws For Software Developers”

  1. Great article. To add to your list, there is also the Norvig Law. Any technology that surpasses 50% penetration will never double again (in any number of months).

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: