Clean code is most valuable in the fact that you can add new features without old ones breaking
You should be able to write clean code from the start without it ever being classified as spaghetti as long as you stick to principles like Law of Demeter, SOLID, etc
I deal (and compete) with smart but professionally mediocre programmers (and hardware designers). Their knowledge is usually limited, but they get 80% of the job done and the customer need is addressed.
Only when the product gets used in a non-typical way or in non-typical circumstances, do the (inevitable) bugs appear. They didn't think their design choices through or they didn't know the limitations of the tool used.
So bugs are considered a known risk, and are managed. Hardware, for example, is swapped under guarantee. The most ugly bugs are fixed, and others are too costly and wait until a redesign.
But the employer likes their qualities:
- he gets a mostly rapid schedule,
- he gets an employee that doesn't get lost in abstractions, and
- he gets to charge the customer again for the next major iteration
Basically they get him an MVP, and the customer keeps paying for each design iteration. We all know how important that is to the bottom line. To him Quality is optional, like benefits are to a job: they end up being important, but the salary usually comes first.
Clean code is most valuable in the fact that you can add new features without old ones breaking
You should be able to write clean code from the start without it ever being classified as spaghetti as long as you stick to principles like Law of Demeter, SOLID, etc