I’m curious about what people mean when they say that “under-engineering is worse than over-engineering”.

Like, how do you even under-engineer something? You deliver software that does nothing? Or errors all the time?

That’s not under-engineering, that’s unprofessional! Why would you even deploy non-working software?