The New Jersey Philosophy of Software Engineering
The “New Jersey philosophy of software engineering” famously refers to the “Worse is Better” design paradigm coined by Richard P. Gabriel in his essay on the rise of Unix. It prioritizes rapid deployment and simplicity over absolute correctness or completeness.
The core tenets of this philosophy are ranked in order of importance:
- Simplicity: The design must be simple, both in its interface and implementation. A simple interface is prioritized over a simple implementation.
- Correctness: The design must be correct in all observable aspects. However, compromises can be made to favor simplicity.
- Consistency: While consistency is vital, the design can be slightly less consistent if it significantly improves simplicity.
- Completeness: The design must cover as many practical and expected situations as possible, but not at the expense of simplicity.
Core Philosophy: The 50% Solution
At its heart, the New Jersey approach argues that it is better to get roughly 50% to 60% of the “right” software built and widely distributed quickly rather than waiting for a flawless, 100% complete product. By getting a minimal, usable creation out into the wild, it can spread rapidly. Once users are heavily reliant on the software, developers can take the time to incrementally improve it, eventually reaching a state that is largely correct and deeply adopted. This contrasts directly with the “MIT/Stanford” (or “The Right Thing”) school of thought, which posits that a system must be perfect, fully comprehensive, and completely consistent from day one, even if it takes significantly longer to release.
You can explore the foundational text of this mindset by reading Richard Gabriel’s original Worse is Better Essay on his website.

















