Sometimes it feels like there are just two types of developers: the architecture astronaut who over-engineers the simplest problems, and the code cowboy that always takes shortcuts to solve the problem at hand while ignoring maintainability.

But you need a bit of both!

If a piece of software can be expected to evolve in a certain direction, then make your code flexible enough to accommodate those changes.

But if there's straightforward code that supports all real use cases, then please avoid the overhead of more modularity.

Arguing against either ignoring real-world use or ignoring future maintainability often gets you lumped in with "the other side", but... It's a spectrum, people!

Discuss user experiences and implementation trade-offs, then find the middle ground you're comfortable with.

Sign in to participate in the conversation

The original server operated by the Mastodon gGmbH non-profit