4 ms·
It's a shame that you're getting downvoted, because I see what you're getting at, but I don't think you're talking about the same things. I think you mean YAGN
by Cpoll 6y ago
It's a shame that you're getting downvoted, because I see what you're getting at, but I don't think you're talking about the same things.
I think you mean YAGNI, and I agree. I've seen plenty of over-engineered solutions.
On the other hand, when the parent say "future change is contained," I take that to mean separation of concerns, plugin-based architectures, decoupling of business logic, etc. And I can also say I've seen plenty of under-engineered solutions, where you need to change constants in five places, and twenty different if-blocks just to add a simple feature.
An experienced developer who's been using the codebase a long time can sometimes spot when an abstraction is needed right away. Conversely, an inexperienced developer won't write twice and make an abstraction, they'll write five times and make a headache for everyone.