Hacker News new | ask | show | jobs
by aae42 1887 days ago
yea, but isn't the obvious logical conclusion that clean code allows you to more easily and more quickly do things that the customers do want?

this is like telling a mechanic that people don't want them to maintain their cars, they just want a reliable car that won't leave them stranded

also, why does a php and jquery app mean it isn't clean? the better takeaway is that customers don't care about your stack

1 comments

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.

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.