

Refactoring: When is it appropriate to not rewrite code as a Freelancer? - ziyadb
http://swizec.com/blog/are-you-a-boy-scout-coder/

======
mgkimsal
I usually _don't_ rewrite, unless the client specifically agrees to that work.
Often it's not much extra work, but it's still over and above what they've
asked for.

Instead, I'll usually write some documentation explaining what I've learned
about how the system works. If it takes me a few hours to reverse engineer a
particular set of code, documenting that up often only takes a few minutes,
and will save me and future people a lot of time. But... I've not had to
change _how_ the system's working.

In almost all these cases there's 0 tests - in some cases the code isn't
really even _testable_ in the first place. If I think I'm going to have a long
term relationship with the project/client, I may push for refactoring or
rewriting, but if this is a short 'add a feature', I just document what I can
that will be useful, and do the work.

