SimpleThingsFirst, they say. But simple systems have other benefits over time.

Simple user interfaces are easier to learn. Fewer elements mean fewer interactions to consider, fewer meanings to learn, simpler models one makes of the internal state of a system.

Simpler solutions are easier to modify. Modification is how we adapt our solutions to changing circumstances. If software or business processes grow in complexity, when they have many interdependent parts, many people in charge along the way, or many modules and libraries required, it gets hard to change because every change must not break any of the connected parts, must get the agreement of all the involved parties. Breaking changes not only need the agreement in principle but the agreement to a particular timetable.

Simpler solutions have fewer incompatibilities. Complex solutions need complex data structures, from instruction manuals to databases, from forms to job profiles. If you need particular data structures, if you need to write custom manuals, if you need to hire specialists, then training has reduced value over time, spare parts need to be kept. The past, present and future are incompatible with each other. We can still read ASCII text, but it gets hard to read cassette tapes, floppy disks, Word Perfect files, find parts for complex machinery, and so on.

Simpler solutions have fewer failure states. They might still fail, and fail often, of course. But it’s easier to reason about their failures. Compare with How Complex Systems Fail by Richard I. Cook, MD.

What is simpler?

new: 2020-12-18 03:54 UTCLionKimbro:

Additional items:

  • Simpler systems are easier to replicate. (How many text editors are there?)
  • Simpler protocols are easier to export things to, and to receive data from.

And references:

  • ChuckMoore is 簡単の神, God of Simple. He had a quote (I don’t know his actual quote, so I’m citing from memory here) – something like: “In most systems, you can do Everything. I write systems, such that you can do Anything.” (Or maybe: “Most systems try to do Everything – in my system, you can do Anything.”)

It’s that difference between anything and everything, that I think is so powerful.


EditNearLinks: ChuckMoore WikiMarkup