Hacker News new | ask | show | jobs
by Yoric 5 days ago
> Engineers over-engineer simple problems because their performance reviews reward technical complexity, not business impact.

Having tech led teams at both high-profile and low-profile tech companies, that is _not_ my experience.

Most engineers worth their salt value quality. Product Management generally doesn't see quality as a feature, therefore doesn't take it into account. For short-lived code, quality is indeed over-rated. For long-lived code, quality is the thing that determines whether you can keep improving or tuning other features or whether you'll miss deadlines. Sadly, retrofitting quality in an existing codebase is awfully expensive.

There's also one important, but often undervalued, aspect. Overwhelmingly, today's tech world has been built by neurodivergent engineers. In my experience, neurodivergent engineers tend to value getting to the end of things, rather than letting them drop mid-way. This can absolutely be seen as over-engineering, but it's often a cognitive scaffolding that will ensure that the work can be resumed (by them or anyone else) even after context-switching to something entirely different.

Whether it actually _is_ over-engineering often depends on how well the engineer is aware of the actual needs, rather than being spoon-fed instructions without visibility. Or on the maturity and skill of the engineer, depending on the case.