As a programmer, it’s a hundred times more important to not over-engineer than to “avoid tech debt”.

You will have to refactor and throw away code in the future one way or the other because it’s impossible to know what requirements you may have.

The less code you have, the easier it is to replace.

And don’t forget to write those tests, and not only unit tests, but also high-level functional, system and integration tests.

Show thread

@rick_777 That's why I like Rails so much, it comes with all of this out of the box.

@thomasfuchs I'd add that it's also important to accept you won't always get it right the first time and the simplest solution sometimes takes a couple of attempts

But it's especially important to finish refactoring work because unfinished refactors are twice as complicated as if you'd never started them

@thomasfuchs I think most developers will have differing views about what over-engineered and technical debt means. Could you give an example for an over-engineered solution? I doubt that it'll be free from technical debt.

Sign in to participate in the conversation

Server run by the main developers of the project 🐘 It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!