added rules of engineering

This commit is contained in:
Eddie Soehnel 2026-04-23 08:05:33 -06:00
parent 3d08f408e4
commit 367e714aaf

114
RULES.md
View File

@ -1,3 +1,117 @@
# Laws of Engineering
via https://lawsofsoftwareengineering.com/
Amdahls Law — The maximum performance improvement of a system is constrained by the portion that cannot be parallelized.
Becks Law — Optimism is an occupational hazard of programming, and feedback is the treatment.
Benfords Law — In many real-world datasets, lower digits appear more frequently as leading digits.
Betteridges Law of Headlines — Any headline that ends in a question mark can usually be answered “no.”
Brookss Law — Adding manpower to a late software project makes it later.
Chestertons Fence — Do not remove a system or feature until you understand why it exists.
Conways Law — System design reflects the communication structure of the organization that built it.
Cunninghams Law — The best way to get the right answer online is to post the wrong one.
Dijkstras Law — Program testing can show the presence of bugs, not their absence.
Eaglesons Law — Any code you write will eventually be maintained by someone less experienced than you.
Galls Law — A working complex system evolves from a working simple system.
Gilbs Law — Anything you need to quantify can be measured in a way that is superior to not measuring it at all.
Goodharts Law — When a measure becomes a target, it ceases to be a good measure.
Greenspuns Tenth Rule — Any sufficiently complex program contains an ad hoc implementation of Lisp.
Hicks Law — Decision time increases with the number and complexity of choices.
Hofstadters Law — It always takes longer than expected, even when accounting for this.
Hyrums 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.
Kernighans Law — Debugging is harder than writing code, so overly clever code is risky.
Knuths 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.
Lehmans Laws — Software must continuously evolve or it becomes less useful over time.
Linuss 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.
Murphys Law — Anything that can go wrong will go wrong.
Occams Razor — The simplest explanation or solution is usually best.
Parkinsons 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.
Postels Law — Be strict in what you send and tolerant in what you accept.
Reeds 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.
Teslers 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.
Wadlers Law — Developers disproportionately focus on minor syntax issues over important architecture concerns.
Wirths Law — Software slows down more quickly than hardware speeds up.
Zawinskis Law — Every program attempts to expand until it can read email.
Atwoods Law — Any application that can be written in JavaScript will eventually be written in JavaScript.
Bells Law of Computer Classes — New computer classes emerge as technology advances and costs decrease.
Brandolinis Law — Refuting misinformation takes significantly more effort than creating it.
Campbells Law — Metrics used for decision-making become corrupted and distort processes.
Clarkes Third Law — Advanced technology is indistinguishable from magic.
Gallaghers Law — Inefficiencies grow unnoticed until they become critical problems.
Greshams Law (applied) — Lower-quality practices tend to drive out higher-quality ones if unchecked.
Hanlons Razor — Do not attribute to malice what can be explained by incompetence.
Metcalfes Law — The value of a network grows proportionally to the square of its users.
Moores 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.
Sturgeons 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.
Zipfs 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.