Worse is better (also called the New Jersey style[1]) is a term conceived by Richard P. Gabriel in a 1989 essay[2] to describe the dynamics of software acceptance. It refers to the argument that software quality does not necessarily increase with functionality: that there is a point where less functionality (“worse”) is a preferable option (“better”) in terms of practicality and usability. Software that is limited, but simple to use, may be more appealing to the user and market than the reverse. (View Highlight)
In The Rise of Worse is Better, Gabriel identified a “Worse is Better” (also the “New Jersey style”, “Berkeley”, or “West coast”[4]) model of software design and implementation which has the characteristics (in approximately descending order of importance):
Simplicity
The design must be simple, both in implementation and interface. It is more important for the implementation to be simple than the interface. Simplicity is the most important consideration in a design.
Correctness
The design should be correct in all observable aspects. It is slightly better to be simple than correct.
Consistency
The design must not be overly inconsistent. Consistency can be sacrificed for simplicity in some cases, but it is better to drop those parts of the design that deal with less common circumstances than to introduce either complexity or inconsistency in the implementation.
Completeness
The design must cover as many important situations as is practical. All reasonably expected cases should be covered. Completeness can be sacrificed in favor of any other quality. In fact, completeness must be sacrificed whenever implementation simplicity is jeopardized. Consistency can be sacrificed to achieve completeness if simplicity is retained; especially worthless is consistency of interface. (View Highlight)
Gabriel contrasted his philosophy with what he called the “MIT/Stanford style of design” or “MIT approach” (also known as the “east coast” approach[4] or “the Right Thing”), which he described as:
Simplicity
The design must be simple, both in implementation and interface. It is more important for the interface to be simple than the implementation.
Correctness
The design must be correct in all observable aspects. Incorrectness is simply not allowed.
Consistency
The design must be consistent. A design is allowed to be slightly less simple and less complete to avoid inconsistency. Consistency is as important as correctness.
Completeness
The design must cover as many important situations as is practical. All reasonably expected cases must be covered. Simplicity is not allowed to overly reduce completeness. (View Highlight)
Gabriel argued that “Worse is better” produced more successful software than the MIT approach: As long as the initial program is basically good, it will take much less time and effort to implement initially and it will be easier to adapt to new situations. Porting software to new machines, for example, becomes far easier this way. Thus its use will spread rapidly, long before a program developed using the MIT approach has a chance to be developed and deployed (first-mover advantage). Once it has spread, there will be pressure to improve its functionality, but users have already been conditioned to accept “worse” rather than the “right thing”:[5] (View Highlight)