A controversial precept of
software engineering design,
first articulated under this name by
Richard Gabriel
in a talk and paper presented at the
EuroPAL conference in 1989 called
"
Lisp: Good News / Bad News / How to Win Big".
(Gabriel has since written several other essays arguing alternately for and against the idea; see his website at www.dreamsongs.com for details.)
The original essay
compares and contrasts two schools of thought:
The "MIT/Stanford" approach to software design and the "New Jersey" or "Worse is better" approach.
The key contrast is that the MIT/Stanford school insists that a design be maximally correct, consistent, and complete even if it ends up being a little more complex than you'd like it, while the New Jersey / worse-is-better school values simplicity above all else, even if it means that a design is mildly incomplete or inconsistent, or even slightly incorrect.
(I'm not doing Gabriel's arguments justice with this overly brief summary.
There are plenty of copies floating around on the web, if you want to read the whole thing; just search for "worse is better".)
Needless to say, the significance of the "New Jersey" reference is that C and Unix were developed there, at Bell Labs in Murray Hill, and their success is responsible for the rampant popularity of the "worse is better" approach, to the exasperation and disgruntlement of all the crusty old "MIT/Stanford" proponents out there.
The thing is, even though the inconsistencies and other shortcomings of "worse is better" systems really do end up causing problems -- for example, it's hard to make Unix perfectly secure, and C programs have become notorious for their buffer overflows -- these systems really are "better".
For one thing, they hit the ground running, earlier, meaning that you can find out how well they work, and hone them in light of real-world experience, and you can always fix their shortcomings later. (Well, most of them, anyway.)
MIT/Stanford systems, on the other hand, are too often inapproachable ivory-tower edifices, or else they never get finished at all, so mightily do they strive for that last iota of correctness...
[Disclaimer: I'm not trying to take sides here.
I really like the "New Jersey" approach, but I really like completeness and correctness, too, and my own designs almost always end up being too complex for their own good, and, heck, I actually went to MIT...]