4 ms·
I tend to see this in a different way. In most of the difficult architectural decisions I have encountered, there is a slider that goes from "complex" on one e
by munchbunny 8y ago
I tend to see this in a different way.
In most of the difficult architectural decisions I have encountered, there is a slider that goes from "complex" on one end to "aspirational" on the other. I see this trade-off much more often than I see things getting over/under-engineered, though I've definitely also seen that.
"Complex" tends to be actually easier to design: you adapt the existing somewhat complex system, add a couple things here and there, and you have a workable solution to the problem at hand, even if it feels a bit kludgy.
Simple tends to be harder to achieve because reality is complex, and designing a small number of abstractions to encompass a complex system requires willingness to spend blood and sweat in "meatspace" to reign in the complicating factors. Don't want to support XYZ? Well, you're going to have to get people to stop using XYZ first.
I don't think this extends beyond software architecture, but that has been my experience working on living codebases.