Appendix B. Facts, Laws, Rules, and Definitions
This appendix lists every single major fact, law, rule, and definition covered in this book:
Fact: The difference between a bad programmer and a good programmer is understanding. That is, bad programmers don’t understand what they are doing, and good programmers do.
Rule: A good programmer should do everything in his power to make what he writes simple for other programmers to use and comprehend.
Fact: Everybody who writes software is a designer.
Rule: Design is not a democracy. Decisions should be made by individuals.
Law: The purpose of software is to help people.
Law: The Equation of Software Design:
This is the Primary Law of Software Design. Or, in English:
The desirability of a change is directly proportional to the value now plus the future value, and inversely proportional to the effort of implementation plus the effort of maintenance.
As time goes on, this equation reduces to:
Which demonstrates that it is more important to reduce the effort of maintenance than it is to reduce the effort of implementation.
Rule: The quality level of your design should be proportional to the length of future time in which your system will continue to help people.
Rule: There are some things about the future that you do not know.
Fact: The most common and disastrous ...