Hacker News new | ask | show | jobs
by ghiculescu 1760 days ago
This misses the point that overengineering takes longer to do, so it adds costs to the initial development process. Unsurprisingly there’s less cost later - you’ve already paid a lot of it!
3 comments

That seems like the best case scenario — the over-engineering is costly upfront and worth it later on. But if there’s a problem in the over-engineering, e.g. mistaken assumptions, fixing it is another round of expense.

So over-engineering is “expensive now and hopefully cheap later”, while under-engineering is “cheap now and maybe expensive later”. In one scenario you get 1-2 rounds of expensive. In the other you only get 0-1 rounds of expensive.

With that in mind, under-engineering the first implementation might be the sensible default choice.

You're absolutely right, of course. :) While this was not the point of this article, I just added a remark about this important fact nonetheless: https://github.com/Dobiasd/articles/commit/2a251204183cb45e7... Thanks!
This pretty much just comes down to estimate how much you're going to need and then go for that in the first place.

Which I imagine is what people would be aiming for anyway? I don't think anyone is using YAGNI knowing they are in fact going to need it.

The other issue is most engineers want to over-engineer. So anything that encourages that without noting the real costs should probably be tampered down.
> The other issue is most engineers want to over-engineer.

My experience is that everyone wants to engineer to their own standards. When it's in a team setting, people with different standards (and tastes) results into "over-engineered" code base.