Hacker News new | ask | show | jobs
by mannykannot 1883 days ago
It's not quite that simple: it is not unusual for an overall-clean solution in response to new requirements to require refactoring the existing codebase, even if that is a clean and minimal solution for the requirements up to that point.

Even if you had anticipated that these additional requirements were likely, preparing in advance for their possibility would often mean over-engineering for the initial requirements, which would likely delay the initial release.

If there wasn't a genuine conflict of interests here, we would not still be wrestling with it.

1 comments

The problem with over-engineering is also that it makes other refactoring harder at later stages, or just discourages change. Some degree of shittiness actually improves agility, and encourages change.
Amen, I have been guilty of this as well. It is a hard line to walk between over engineering and future proofing something.