分类:
2009-07-09 03:45:44
The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time.
It always takes longer than you expect, even when you take Hofstadter’s Law into account.
Adding manpower to a late software project makes it later.
People under time pressure don’t think faster.
A technique to prioritize delivery requirements during development. MoSCoW stands for:
M - MUST have this.
S - SHOULD have this if at all possible.
C - COULD have this if it does not affect anything else.
W - WON’T have this time but WOULD like in the future.
Keep It Simple, Stupid. In other words: avoid complexity, embrace simplicity.
A complex system that works is invariably found to have evolved from a simple system that worked.
Describes how a seemingly “inferior” product can be better from a user perspective. A limited but easy-to-use software may be more popular among users than a “better”, more comprehensive one.
Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp.
(A funny note is that there are no preceding rules, only the tenth. According to Philip Greenspun, this was because he was “just trying to give the rule a memorable name.”)
Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced by ones which can.
Given enough eyeballs, all bugs are shallow.
Anything that can go wrong, will go wrong.
Go where the money is.
(When attempting to diagnose a problem, confirm the most likely diagnosis first (i.e. test the most likely solution first). Named after Bank robber Willie Sutton, who robbed banks “because that’s where the money is”.)
Software is getting slower more rapidly than hardware becomes faster.
Any piece of software reflects the organizational structure that produced it.
(Interesting example of how this can cause problems: NASA’s Mars Climate Orbiter crashed because one development team used English units while the other used metric units to control the thrusters.)
Don’t call us, we’ll call you.
(Instead of your program running the system, the system runs your program.)
The most ineffective workers are systematically moved to the place where they can do the least damage: management.
from: http://www.webguild.org/2009/07/quirky-but-mostly-useful-software-development-rules.php