Reading Old Code
Old code is easier to understand when I read it as a record of constraints.
Old code is easy to judge too quickly.
When I slow down, I usually find that strange code is a record of constraints. A deadline, a missing primitive, an unclear requirement, an integration that behaved differently in production, a bug that only one customer could trigger.
That does not mean the code should stay as it is. It means the first job is understanding what problem it was protecting against.
Refactoring without that context can remove the scar and reopen the wound.