On good structure

Yarn

There is a strange quirk of the human condition: that being the desire to impose order and control over what is uncertain. I think it is due to this that humans have a strange impulse of defining rigid structure as early on as possible.

In programming this look like: class hierarchies, elaborate abstractions, and exhaustive edge-cases handling.

It feels productive, but it's not. It's overengineered, overly complex and usually unnecessary. We trick ourselves into thinking we can anticipate the future, but we're just avoiding it.

We can't anticipate the future, we shouldn't pretend, but we can deal with the present when it presents itself to us. You don't need structure, and when you do, it'll be obvious.

This isn't unique to programming. Our desire for structure applies everywhere else in our lives. You don't need structure, and if you do, you'll know it.