Is it better for software to be simple or consistent? Richard P. Gabriel suggested that simplicity was the most important aspect of software design, more than consistency, correctness, or completeness. He called it “worse is better.”
The “worse is better” approach ranks these four aspects: simplicity, consistency, correctness, and completeness. Simplicity comes out at the top, and completeness is only a worthwhile target if it doesn’t affect the other three aspects. According to Gabriel, software created in this way will be more successful with its users, and therefore in the market.
I think I need an example of something that’s more simple than it is consistent. How does the user have a simple mental model of inconsistent elements?
Likewise if the user has to handle complex workarounds for incorrectness, that’s hard to be simple.
In practice “worse is better” I only ever see used on the simplicity/completeness tradeoff, where it makes a lot more obvious sense.
Well, I’ll admit to not being an expert in this matter (or hardly any matters to be honest!), but the exact wording in Gabriel’s description is “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 implementational complexity or inconsistency.” I wonder which cases he had in mind?