For a complete list, see Wikipedia:
- https://en.wikipedia.org/wiki/List_of_software_development_philosophies
- https://en.wikipedia.org/wiki/Software_development_process
DRY - Don't Repeat Yourself
Rule of Three - Repeat yourself twice
YAGNI - You Ain't Gonna Need It
KISS - Keep It Simple Stupid
DTSTTCPW - Do The Simplest Thing That Could Possibly Work
POLA - Princple Of Least Astonishment
WIB - Worse Is Better (simplicity beats correctness, in some contexts)
SSOT - Single Source Of Truth
RERO - Refactory Early, Refactor Often
Brooke's law - adding manpower to a late software project makes it later
Conway's law - organisations design systems that mirror the organisation's own communication structure
- Each program should do one thing and do it well
- Write programs to work together
- Output will become input, so make it easy to parse
- Handle text streams, because that is a universal interface
- Use automation to avoid drudgery
- Everything is a file
- ... and many more ...
-
SOLID:
- Single Responsibility Principle
- Open-closed principle - Open for extension, closed for modification
- Liskov substitution principle
- Interface segregation principle
- Dependecy inversion principle
Agile software development
Lean software development (and lean startup)
Extreme programming
Scrum
MoSCoW - Categories for Prioritising: Must have, Should have, Could have, Won't have (this time)
Pareto Principle - 80% of the effects come from 20% of the causes
Poe's Law - It's impossible to detect sarcasm on the Internet
Godwin's Law - "As an online discussion grows longer, the probability of a comparison involving Nazis or Hitler approaches 1"
Moore's Law - Processing power doubles every 2-3 years (until a physical limit is reached)
Jevon's Paradox / Induced Demand - Consumption often rises to meet capacity