added rules of engineering
This commit is contained in:
parent
3d08f408e4
commit
367e714aaf
114
RULES.md
114
RULES.md
|
|
@ -1,3 +1,117 @@
|
||||||
|
# Laws of Engineering
|
||||||
|
|
||||||
|
via https://lawsofsoftwareengineering.com/
|
||||||
|
|
||||||
|
Amdahl’s Law — The maximum performance improvement of a system is constrained by the portion that cannot be parallelized.
|
||||||
|
|
||||||
|
Beck’s Law — Optimism is an occupational hazard of programming, and feedback is the treatment.
|
||||||
|
|
||||||
|
Benford’s Law — In many real-world datasets, lower digits appear more frequently as leading digits.
|
||||||
|
|
||||||
|
Betteridge’s Law of Headlines — Any headline that ends in a question mark can usually be answered “no.”
|
||||||
|
|
||||||
|
Brooks’s Law — Adding manpower to a late software project makes it later.
|
||||||
|
|
||||||
|
Chesterton’s Fence — Do not remove a system or feature until you understand why it exists.
|
||||||
|
|
||||||
|
Conway’s Law — System design reflects the communication structure of the organization that built it.
|
||||||
|
|
||||||
|
Cunningham’s Law — The best way to get the right answer online is to post the wrong one.
|
||||||
|
|
||||||
|
Dijkstra’s Law — Program testing can show the presence of bugs, not their absence.
|
||||||
|
|
||||||
|
Eagleson’s Law — Any code you write will eventually be maintained by someone less experienced than you.
|
||||||
|
|
||||||
|
Gall’s Law — A working complex system evolves from a working simple system.
|
||||||
|
|
||||||
|
Gilb’s Law — Anything you need to quantify can be measured in a way that is superior to not measuring it at all.
|
||||||
|
|
||||||
|
Goodhart’s Law — When a measure becomes a target, it ceases to be a good measure.
|
||||||
|
|
||||||
|
Greenspun’s Tenth Rule — Any sufficiently complex program contains an ad hoc implementation of Lisp.
|
||||||
|
|
||||||
|
Hick’s Law — Decision time increases with the number and complexity of choices.
|
||||||
|
|
||||||
|
Hofstadter’s Law — It always takes longer than expected, even when accounting for this.
|
||||||
|
|
||||||
|
Hyrum’s Law — All observable behaviors of a system will be depended on by someone.
|
||||||
|
|
||||||
|
Ivory Tower Law — Theoretical designs often fail when applied to real-world constraints.
|
||||||
|
|
||||||
|
Kernighan’s Law — Debugging is harder than writing code, so overly clever code is risky.
|
||||||
|
|
||||||
|
Knuth’s Optimization Principle — Premature optimization is the root of most inefficiency.
|
||||||
|
|
||||||
|
KISS Principle — Simplicity should be a key design goal in systems.
|
||||||
|
Law of Demeter — Components should only interact with their immediate neighbors.
|
||||||
|
|
||||||
|
Leaky Abstractions — All non-trivial abstractions eventually expose underlying complexities.
|
||||||
|
|
||||||
|
Lehman’s Laws — Software must continuously evolve or it becomes less useful over time.
|
||||||
|
|
||||||
|
Linus’s Law — Given enough reviewers, all bugs become easier to find.
|
||||||
|
|
||||||
|
Liskov Substitution Principle — Subtypes must be usable in place of their base types without altering correctness.
|
||||||
|
|
||||||
|
Murphy’s Law — Anything that can go wrong will go wrong.
|
||||||
|
Occam’s Razor — The simplest explanation or solution is usually best.
|
||||||
|
|
||||||
|
Parkinson’s Law — Work expands to fill the available time.
|
||||||
|
|
||||||
|
Pareto Principle — A small number of causes often produce the majority of effects.
|
||||||
|
|
||||||
|
Peter Principle — People are promoted until they reach their level of incompetence.
|
||||||
|
|
||||||
|
Postel’s Law — Be strict in what you send and tolerant in what you accept.
|
||||||
|
|
||||||
|
Reed’s Law — The value of a network grows exponentially with the number of possible subgroups.
|
||||||
|
|
||||||
|
Schelling Point — People tend to coordinate around obvious focal points without communication.
|
||||||
|
|
||||||
|
Second-System Effect — Engineers overcomplicate systems when designing their second attempt.
|
||||||
|
|
||||||
|
Shirky Principle — Institutions try to preserve problems to maintain their relevance.
|
||||||
|
|
||||||
|
Tesler’s Law — Every application has an irreducible amount of inherent complexity.
|
||||||
|
|
||||||
|
The Law of the Instrument — If all you have is a hammer, everything looks like a nail.
|
||||||
|
|
||||||
|
The Unix Philosophy — Build simple, modular tools that do one thing well.
|
||||||
|
|
||||||
|
Wadler’s Law — Developers disproportionately focus on minor syntax issues over important architecture concerns.
|
||||||
|
|
||||||
|
Wirth’s Law — Software slows down more quickly than hardware speeds up.
|
||||||
|
|
||||||
|
Zawinski’s Law — Every program attempts to expand until it can read email.
|
||||||
|
|
||||||
|
Atwood’s Law — Any application that can be written in JavaScript will eventually be written in JavaScript.
|
||||||
|
|
||||||
|
Bell’s Law of Computer Classes — New computer classes emerge as technology advances and costs decrease.
|
||||||
|
|
||||||
|
Brandolini’s Law — Refuting misinformation takes significantly more effort than creating it.
|
||||||
|
|
||||||
|
Campbell’s Law — Metrics used for decision-making become corrupted and distort processes.
|
||||||
|
|
||||||
|
Clarke’s Third Law — Advanced technology is indistinguishable from magic.
|
||||||
|
|
||||||
|
Gallagher’s Law — Inefficiencies grow unnoticed until they become critical problems.
|
||||||
|
|
||||||
|
Gresham’s Law (applied) — Lower-quality practices tend to drive out higher-quality ones if unchecked.
|
||||||
|
|
||||||
|
Hanlon’s Razor — Do not attribute to malice what can be explained by incompetence.
|
||||||
|
|
||||||
|
Metcalfe’s Law — The value of a network grows proportionally to the square of its users.
|
||||||
|
|
||||||
|
Moore’s Law — The number of transistors on a chip doubles roughly every two years.
|
||||||
|
|
||||||
|
Ninety-Ninety Rule — The final 10% of a project takes another 90% of the time.
|
||||||
|
|
||||||
|
Sturgeon’s Law — Ninety percent of everything is of low quality.
|
||||||
|
|
||||||
|
The Law of Large Numbers (applied) — Outcomes become more predictable as the number of trials increases.
|
||||||
|
|
||||||
|
Zipf’s Law — In many systems, a few items are extremely common while most are rare.
|
||||||
|
|
||||||
# Project Rules
|
# Project Rules
|
||||||
|
|
||||||
Dump in rules that I come across - could be anything, specific or general.
|
Dump in rules that I come across - could be anything, specific or general.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user