Simple Is Hard
2 min read
Any fool can make something complicated. It takes a genius to make it simple.
People love making things more complicated than they need to be. We even have
an acronym for the reminder: KISS — keep it simple, stupid. A lot of advice
about simplicity involves insulting someone's intelligence, which I don't love,
but the point is sound.
Software gets especially complicated when we expose too much power to its
users. Letting people configure every option and tweak every step of the
journey can feel generous. Usually, it just turns our implementation details
into someone else's problem — and creates a much larger surface area to
support.
I prefer slim interfaces and fat implementations: a small, opinionated API
backed by code that does the hard work. Sane defaults mean most users never
need to know about the machinery underneath, and we only need to maintain the
basic interfaces that matter.
Simple software isn't always simple to build. It is simple to use because
someone chose what to leave out.