Skip to content

Instantly share code, notes, and snippets.

@leandromoh
Created June 20, 2023 03:15
Show Gist options
  • Save leandromoh/2fb2b67a495f56beff1db4ee9ebc32bb to your computer and use it in GitHub Desktop.
Save leandromoh/2fb2b67a495f56beff1db4ee9ebc32bb to your computer and use it in GitHub Desktop.

Distributed Computing

  • Brewers’ Theorem ― a distributed computer system cannot provide consistency, availability and partition tolerance, all at optimal levels.

8 Fallacies of Distributed Computing (L. Peter Deutsch)

  • The network is reliable.
  • Latency is zero.
  • Bandwidth is infinite.
  • The network is secure.
  • Topology doesn’t change.
  • There is one administrator.
  • Transport cost is zero.
  • The network is homogeneous.

Project management

Augustine’s Law ― A bad idea executed to perfection is still a bad idea. (Brainy Quote 2007)

Lakein’s Law ― Failing to plan is planning to fail.

Saint Exupéry’s Law ― Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.

Ernest Fitzgerald’s Law ― There are two states to any large project ― too early to tell and too late to stop.

Parkinson’s Law ― Work expands to fill the time available.

Constantine’s Law ― A fool with a tool is still a fool.

Graham’s Law ― If they know nothing of what you are doing, they suspect you are doing nothing.

Murphy’s Law ― If anything can go wrong, it will.

O’Brochta’s Law ― Project management is about applying common sense with uncommon discipline.

Kinser’s Law ― About the time you finish doing something, you know enough to start.

Cohn’s Law ― The more time you spend in reporting on what you are doing, the less time you have to do anything

Gall’s law ― 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.

Conway’s Law ― Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization’s communication structure.

Ziv’s Law ― Software development is unpredictable and that specifications and requirements will never be fully understood.

Humphrey’s Law ― users do not know what they want until they see working software.

Brooks’ law ― adding manpower to a late software project makes it later.

Postel’s Law ― Be conservative in what you do, be liberal in what you accept from others

Hofstadter’s Law ― It always takes longer than you expect, even when you take into account Hofstadter’s Law.

Hartree’s Law ― Whatever the state of a project, the time a project-leader will estimate for completion is constant.

Amdahl’s Law ― The speedup gained from running a program on a parallel computer is greatly limited by the fraction of that program that can’t be parallelized.

Miller’s Law ― The number of objects an average human can hold in short term memory is 7±2.

Wirth’s Law ― Software is getting slower more rapidly than hardware becomes faster.

Sutton’s Law ― When diagnosing, one should first consider the obvious.

Frisch’s Law ― You cannot have a baby in one month by getting nine women pregnant.

Segal’s Law ― A man with a watch knows what time it is. A man with two watches is never sure.

Parkinson’s Law of triviality (Bikeshedding) ― Human tendency to devote a great deal of time to unimportant details, while crucial matters go unattended.

Edsger W. Dijkstra ― Program testing can be used to show the presence of bugs, but never to show their absence!

Richard E. Pattis ― When debugging, novices insert corrective code; experts remove defective code.

Charles Antony Richard Hoare ― ’There are two ways of constructing a software design ― One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.’

Rule of ten ― Further a bug moves undiscovered into the late stages of a development process, the higher the costs of eliminating it. It costs 10 times more to find and repair a defect at the next stage, and then it costs 10 times more at each subsequent stage.

Martin Fowler ― Any fool can write code that a computer can understand. Good programmers write code that humans can understand.

Donald Ervin Knuth ― Programming is the art of telling another human being what one wants the computer to do.

Knuth’s Optimization Principle ― Premature optimization is the root of all evil.

Miscellaneous

The Law Of Leaky Abstractions (Joel Spolsky) ― All non-trivial abstractions, to some degree, are leaky.

Pareto Principle ― For many events, roughly 80% of the effects come from 20% of the causes.

Ninety–ninety Rule ― 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.

PDCA (Plan, Do, Check, Act)

5W2H (Who? What? Where? When? Why? How? How Much?)

NPS (Net Promoter Score)

SMART (Specific, Measurable, Achievable, Relevant, and Time-Bound)

Dunning–Kruger Effect ― Low performers are unable to recognize the skill and competence levels of other people, which is part of the reason why they consistently view themselves as better, more capable, and more knowledgeable than others.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment