Alexander Ryzhov
Feb 2, 2025

Worse is better

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. – Wikipedia

Good tool has following characteristics:

  1. It is right.
  2. It is simple.
  3. It is fast - not “blazingly fast”, but fast enough.
  4. It has only required functionality. Additional functionality is entirely optional and not in the sight of undecided user.
  5. Distractions are reduced to a minimum.

From the point of view of development, additional features:

  • Introduce complexity.
  • Introduce bugs.
  • Introduce regressions.

Best way for a software, as i see it - start with minimal viable product, and develop extra wrapping only after core validation. Extra wrapping should never stand in the way of core functionality. Users must be able to use core functionality in the same way despite the number of additional features.

Good implementation of such pattern - plugin architecture. If you want extra - you enable extra.