Fog Creek Software
Discussion Board




Age old Comp. Sci. laws and corrolaries

Ok, in an attempt to get back on track with computer science discussions, I'd like to hear people's favorite technology laws.  I especially request any relating to project management.

I will start:    Metcalfe's Law states that the usefulness, or utility, of a network equals the square of the number of users.

http://www.mgt.smsu.edu/mgt487/mgtissue/newstrat/metcalfe.htm

Bella
Saturday, July 13, 2002

http://www.google.com/search?as_q=law&as_sitesearch=www.tuxedo.org

Christopher Wells
Saturday, July 13, 2002

"Read your Knuth's!!"

"Premature optimization is the root of all evil"

Alex Russell
Saturday, July 13, 2002

Quoting from my own website:

You can't give an estimate until you've come up with a design.

You can't come up with a design until you understand the requirements.

You won't really understand the requirements until you've finished the project.

By the time you finish the project, the requirements will have changed.

http://home.swbell.net/mck9/cobol/cobiron.html

Michael C. Kasten
Sunday, July 14, 2002

I like this one.  In general, people will "need" what they have available. 



Parkinson's Law of Data prov.

"Data expands to fill the space available for storage"; buying more memory encourages the use of more memory-intensive techniques. It has been observed since the mid-1980s that the memory usage of evolving systems tends to double roughly once every 18 months. Fortunately, memory density available for constant dollars also tends to about double once every 18 months (see Moore's Law); unfortunately, the laws of physics guarantee that the latter cannot continue indefinitely.

http://www.tuxedo.org/~esr/jargon/html/entry/Parkinson's-Law-of-Data.html

Bella
Sunday, July 14, 2002

I offer three chunks of information, two which could be laws, one which is little more than a quote:

`Worse is Better' -- Richard Gabriel http://www.jwz.org/doc/worse-is-better.html

`Fast, cheap, good: choose two.' Sometime appears as `Fast, cheap, correct: choose two.' I have no idea where this first appeared.

The last is little more than a bit of good advice, from Forth creator Chuck Forth. `You can do three things with a computer. You can try to make money and that is unlikely. You can try to become famous and that never happens. And you can have fun and that always works.'
http://www.ultratechnology.com/color4th.html

Link Fairy
Monday, July 15, 2002


For XProgramming.Com: *My Paraphrase*


1) Early Estimates will be inaccurate ...
2) There are four things management can control on a project:

    - Time
    - Money (Resources, People)
    - Scope/Feature
    - Quality

There are ONLY four things.  If the project is running late, mgt can extend the project's delivery date, hire more staff (which may violate moore's law, but there are ways around that), decrease the scope or featureset, or decrease the quality.

Most of the time, mgt will simply insist that that project be delivered on time, under budget, feature complete.  As a result, the project is a _little_ late, cuts a _few_ features, runs a _bit_ over budget, and has incredibly poor quality, because that's the hardest to measure and easiest to skip.

but that's just me. :-)

Matt H.
Monday, July 15, 2002

Your software can be:

on time
cheap
high quality

Pick two.

Dan Sickles
Monday, July 15, 2002

Next time I'll read ALL the other posts first.

Dan Sickles
Monday, July 15, 2002

heh. Earlier, when I mentioned Moore's Law, I ment Brook's (As in Fred Brooks, as in Mythical Man Month, as in "Adding people to a late project will invariably make it later.")

Matt H.
Monday, July 15, 2002


Hey Dan, any relation to the Civil War General that lost his arm at Gettysburg?

Matt H.
Monday, July 15, 2002

The laws:
1. F=ma
2. E=IR
3. You can't push on a rope.
4. No magnetic monopoles.

The principle (there is only one):
Keep It Simple Stupid.

Nat Ersoz
Monday, July 15, 2002

"Build a system that even a fool can use, and only a fool will use it."

Joe AA.
Monday, July 15, 2002

"Deliver your software a month late, and your
customers will hate you for a month. Deliver bad software on time and your customers will hate you for a year."

Or whatever your release period is.

David Clayworth
Monday, July 15, 2002

["Build a system that even a fool can use, and only a fool will use it." ]

Oh man, this has to be true because I am surrounded by fools on the beltway everyday. Even worse, according to this law I am one of them. But I'm not Not disagreeing.

Ian Stallings
Monday, July 15, 2002

I am also not disagreeing.

Ian Stallings
Monday, July 15, 2002

Larry Wall says of Perl, "easy things are easy, and hard things are possible."

This is often quoted for applications also.

Dan Sickles
Monday, July 15, 2002

"If you want it bad, you'll get it bad and the worse you want it, the worse you'll get it."

"Everything should be made as simple as possible, but no simpler."

"Doubling the size of code will quadruple its complexity."

"Hard work pays off in the long run, but procrastination pays off right now."

"Software will always bear the blame for poor hardware."

"If the wheel had 32-bit API's, we'd re-invent that too."

"You can't 'test in' quality."

"Finding bugs in the code means you have bugs in your process."  (i.e. design review failed)

William Frantz
Monday, July 15, 2002

>> "Finding bugs in the code means you have bugs in your process." (i.e. design review failed)

TRUE!  And worse than just a design review faling it may mean more fundamental things like:
. Your developers don't care about finding/fixing bugs.
. Your developers' unit tests need improvement.
. Your testers aren't catching bugs (if they didn't catch it).
. Someone doesn't understand the system its deployed in.

Nat Ersoz
Monday, July 15, 2002

"You can't polish a turd." - Unknown

"Never send a monster to do the work of an evil scientist." - Water, Water Every Hare

Contrary Mary
Monday, July 15, 2002

Rule 1: DOW=7500
Rule 2: NASDAQ=700

Principle:
Your stock options are worthless.

Nat Ersoz
Monday, July 15, 2002

"If you rush miracles, sonny, you get rotten miracles."

Alyosha`
Monday, July 15, 2002

I believe the quote is, 'Don't rush a miracleman, son.  You get rotton miracles."

Does anyone else refer to non computer savvy people as Muggles?

adam
Monday, July 15, 2002

The ""Everything should be made as simple as possible..." quote was Einstein IIRC

fubar
Tuesday, July 16, 2002

>I believe the quote is, 'Don't rush a miracleman, son. You get rotton miracles."

Princess Bride?

Jutta Jordans
Tuesday, July 16, 2002

Dan Sickles quoted Larry Wall as saying, "easy things are easy, and hard things are possible."

I believe that Alan Kay used this earlier as a description of what should be possible with a system. It might have developed from the old military boast, "The difficult we do immediately, the impossible takes a little longer."

My two favorite project management sayings are:

"If the minimum weren't good enough, it wouldn't be the minimum."

and

"If you can't get your work done in a 24-hour day, work nights."

Steve Wheeler
Tuesday, July 16, 2002

Over my desk there is a sign spelling:
"It wasn't me and I won't do it again."

Jutta Jordans
Wednesday, July 17, 2002

I used to have the following Despair.com poster prominently displayed in my office:

"MEDIOCRITY: It Takes a Lot Less Time and Most People Won't Notice the Difference Until It's Too Late."

Alyosha`
Wednesday, July 17, 2002

One I have (to go back to the original topic) is:
Design should be complete and minimal.

The first thing is hard enough, but a lot of problems I have come across in my career were caused by overdesign rather than underdesign.

Jacco
Wednesday, July 17, 2002

"Design should be complete and minimal.

The first thing is hard enough, but a lot of problems I have come across in my career were caused by overdesign rather than underdesign."

Very true. I have the following quote from C.A.R. Hoare's Turing Award lecture hanging in my office:

"I conclude that there are two ways of constructing a software design:

One is to make it so simple that there are obviously no deficiencies, and the other is to make it so complicated that there are no obvious deficiencies."

Steve Wheeler
Thursday, July 18, 2002

*  Recent Topics

*  Fog Creek Home