A science fiction story should contain only a single extraordinary assumption
As soon as the magic trick has been done the whole business of the fantasy writer is to keep everything else human and real. Touches of prosaic detail are imperative and a rigorous adherence to the hypothesis. Any extra fantasy outside the cardinal assumption immediately gives a touch of irresponsible silliness to the invention.
As an online discussion grows longer, the likelihood of a comparison to Nazis/Hitler increases.
1% of the users of a website add content, while the other 99% of the participants only lurk.
This is considered only a rule of thumb, not a law.
The best way to get the right answer on the Internet is not to ask a question, but to post the wrong answer.
Fair to say I’ve accidentally invoked this a few times on this blog.
The value of a telecommunications network is proportional to the square of the number of connected users of the system (n²).
Although originally coined in the context of ethernet connections, it’s more typically used these days to talk about network effects in software products. The more people use Facebook, the more value Facebook has for me, quadratically. Think of it like this: in a room of n people there can be n(n-1)/2 handshakes (the n-1 is there because you can’t shake your own hand, and the division by two is there because it takes two people to form one handshake). So as n increases, the number of connections increases quadratically. This explains why it’s so hard for a new social media platform to usurp Facebook: because it’s hard to bring users across when there are so few connections in the new platform and it’s those connections that make the incumbent platform compelling.
50% of the work is done by the square root of the total number of people who participate in the work.
So if you have 100 people, 10 of them do 50% of the work. It sounds roughly accurate to me, but I wonder if it becomes less accurate or more accurate as you increase the number of people. Can 100 out of 10,000 people do 50% of the work? If we define ‘work’ as impact, then I think it’s possible.
This relates to the Pareto Principle i.e. the ‘80/20 Rule’ stating that for many outcomes, roughly 80% of the consequences come from 20% of the causes. E.g. 80% of revenue comes from 20% of the clients; 80% of taxes are paid by 20% of people, etc.
When a measure becomes a target, it ceases to be a good measure.
Any observed statistical regularity will tend to collapse once pressure is placed upon it for control purposes.
This is basically a ‘be careful what you wish for’ thing. If a team of developers use story points on tickets to help them plan sprints, and then you start to use story points to evaluate the team’s performance, the developers will start estimating tickets as being worth more points to give the illusion of increased efficiency.
In India, the government offered bounties for dead Cobras to reduce their population. At first this went well, but then people starting breeding Cobras purely to kill them and collect the bounty.
It’s hard to get around Goodhart’s law because almost any target can be gamed, and it’s important to have targets.
The number of transistors in a dense integrated circuit (IC) doubles about every two years.
Recently we’ve hit up against some fundamental limits of transistor size so Moore’s Law is starting to break down but it’s been fairly accurate so far.
Software is getting slower more rapidly than hardware is becoming faster
If Moore’s Law states (roughly) that hardware doubles in speed every two years, then software engineers can become proportionally more lazy in that same span of time.
What I want to know is: is this bad? Presumably software becomes slower because developers don’t need to spend as much time to produce something that’s ‘good enough’, and so the tradeoff is that we get way more products and features, but a given product will not be as fast as it could be. In a world where everybody cared about performance and dedicated more time to it, we simply would’t have as many products/features to choose from.
Adding manpower to a late software project makes it later.
Nothing ever gets built on schedule or within budget.
Hofstadter’s Law: It always takes longer than you expect, even when you take into account Hofstadter’s Law.
Work expands so as to fill the time available for its completion.
Given enough eyeballs, all bugs are shallow.
Law of Conservation of Complexity
Every application has an inherent amount of complexity that cannot be removed or hidden.
The implication of this law is twofold:
- you can’t wish intrinsic complexity away: it will only hurt you if you try to remove it
- you must often choose who bears the brunt of the complexity e.g. the user or the backend
When somebody says ‘we should put this back on the user’, they’re really invoking this law. You thought you could spare the user some complexity by inferring things on the backend but soon you work out that in doing so you’ve created a bunch of dependencies on various use cases that your software shouldn’t really depend on.
Other times you might decide that the user is confronted with too much complexity in the UI and so you move that complexity into the backend by replacing the original UI with a more user-friendly abstraction that is then transformed to and from the desired shape in the backend.
Every program attempts to expand until it can read mail. Those programs which cannot expand are replaced by ones which can.
This is really about the natural trend for software to take on more and more features until it becomes a bloated mess. Any software product whose aim is to be an all-in-one solution should be viewed with suspicion. A product team that knows how to say ‘no’ and that keeps the product evolving in a way that plays to its own strengths is a valuable asset.
Any piece of software reflects the organizational structure that produced it.
I feel like this is true in some sense, e.g. if two separate teams work on two separate features, and one team is strong and the other is weak, then you would expect one feature to be high quality and the other to be low-quality. But I’m not sure how far you can take it: if I show you a codebase, how much can you tell me about the org chart just by looking at the code?
De Morgan’s Laws
- The negation of a disjunction is the conjunction of the negations
- The negation of a conjunction is the disjunction of the negations
!(A && B) is the same as
!A || !B and
!(A || B) is the same as
!A && !B
In many real-life sets of numerical data, the leading digit is likely to be small.
I have no idea why this is the case. Apparently the law is more likely to apply when the numbers span several orders of magnitude.
Betteridge’s Law of Headlines
Any headline that ends in a question mark can be answered by the word no.
The amount of energy needed to refute bullshit is an order of magnitude larger than is needed to produce it.
Gell-Mann Amnesia Effect
Believing newspaper articles outside one’s area of expertise, even after acknowledging that neighboring articles in one’s area of expertise are completely wrong.
Anything that can go wrong will go wrong.
Reforms should not be made until the reasoning behind the existing state of affairs is understood.
Based on the analogy of coming across a fence in the middle of a field and wanting to remove it. Given that somebody put it there intentionally, and given you don’t know what the intention was, you should be cautious about removing it.
I invoke this quite a bit when dealing with legacy code. Admittedly I’m probably too cautious about messing with legacy code on net.
For every PhD there is an equal and opposite PhD
Both sides of a court trial can bring forward their own expert witness with a PhD using their expertise to conclude something for which the other expert concludes the opposite.
Although this law suggests a weaponisation of expertise that’s independent of ground truths, I think it also applies to experts who simply disagree with eachother. It’s interesting that two laypersons can argue about capitalism vs socialism, but intellectuals who have spent their lives studying capitalism and socialism can still land on completely opposite sides of the debate. It begs the question: why bother trying to find the truth if the experts themselves can’t agree on it? Maybe it’s a numbers game e.g. ‘X experts think capitalism > socialism, Y experts think the opposite, and X > Y, so capitalism must be better than socialism’. Still doesn’t instill me with much faith.
The equilibrium speed of car traffic on a road network is determined by the average door-to-door speed of equivalent journeys taken by public transport.
This means that if you build wider highways that can fit more cars, traffic congestion will not decrease. It may in fact increase if investment into public transport was rerouted into roads as part of the highway expansion.
Never attribute to malice that which is adequately explained by stupidity.
Given Murphy’s Law that if something can go wrong, something will go wrong, it’s pretty hard to pull-off conspiracies. They happen sometimes, but you really need two things at once:
- lots of malicious people who want to coordinate
- those same people being competent enough to pull off the conspiracy
Those are both pretty hard requirements to satisfy.
This ties into another belief of mine (which may be wrong) that people at the top of a corporate hierarchy are less likely to be malicious compared to the average person, not more as some believe. The idea of a sociopath climbing the corporate ladder and stabbing people in the back just doesn’t reflect my (admittedly limited) personal experience in business. I find that most people who rise to the top are generally conscientious, hard-working, and honourable, and those traits are highly rewarded (else we wouldn’t have evolved them in the first place). Especially in a time of social media and the ever increasing speed at which reputational information circulates, I reckon it’s harder than ever to get away with being a sociopath in a corporate environment. There’s still plenty of room for egotistical self-interested people to rise, but I think the sociopathic traits of deceptiveness and manipulation are selected against.
The life expectancy of something is proportional to its current age. Something that has been around for a long time is likely to also remain around for a long time.
Ninety percent of everything is crap.
You might think that there’s more crap than ever in modern times: crap blog posts, crap music, crap movies, etc. The truth is that we’ve always had crap: the only reason that the past seems to have such a high bar is because any crap produced in the past has been forgotten about and only the best stuff has persisted into the present.
Even Voltaire echoed the same sentiment in 1750:
You have read some very despicable things…, but in all times, in all countries, and in all genres, the bad abounds, and the good is rare.
People with low ability in a task overestimate their ability and people with high ability underestimate.
Those with low ability don’t realise how little they know and those with high ability understand that there’s much they don’t know but don’t realise just how little the average person knows in comparison.
(I’ve been taking most of these laws from the wikipedia page on eponymous laws and I didn’t come across this one so I’m claiming it for myself)
If you haven’t yet put in a concerted effort to find a particular chocolate in a bowl of assorted chocolates, there must be at least one left