[English source]: 21 laws of computer programming
[Source of translation]: It comments for external journals
Any experiencedProgramMembers know that software development follows unwritten rules. However, if you do not follow these rules, it does not mean that you will be punished. On the contrary, sometimes you will get unexpected benefits.
The following are 21 rules in software programming:
- once deployed, any program becomes obsolete.
- it is easier to modify the requirement specification to adapt to the program than to do it in turn.
- if a program is useful, it is doomed to be replaced.
- if a program is useless, it will certainly have good documentation.
- only 10% of Code in any program is executed.
- the software expands until all resources are exhausted.
- Any program with some value may have at least one bug.
- the degree of prototype perfection is inversely proportional to the number of people examined. The inverse ratio increases with the number of funds involved.
- the most serious problem of the software is discovered until it is converted into a product running for at least six months.
- the forms of errors that cannot be detected are infinite, but the opposite is true. The definitions are very limited.
- efforts to fix an error will increase exponentially over time.
- the complexity of the software increases until it exceeds the endurance of the person who maintains the program.
- I don't know any program of my own. It's written by others for a few months.
- there is a huge program in any small program that is too stupid.
- the earlier the encoding starts, the longer it takes.
- A careless project plan will take you three times more time to complete. A careful project plan will only take you two times more time.
- adding manpower to a large project will delay the project.
- a program can complete at least 90%, but never exceed 95%.
- if you want to handle the problem automatically, what you get is automatically generated.
- develop a software that a fool can use. Only a fool is willing to use it.
- users do not really know what to do in the software unless they have used it.