What a great article by Phil Factor, in today's SQL Server Central editorial (find it here).
"Don't criticize code".
We all know how time constraints work. We all wished we just had all the time needed to make the best of a tricky problem, project or set of business requirements. But sometimes we don't. Sometimes there's no available time frame, things just have to work, from a high-level perspective. What happens beneath it (read: code), stays there.
So, when you are evaluating some previous work on a legacy system, it is important to be aware of this.
Coming in and just pointing out what's wrong is easy. Bashing is easy. Destroying is easy.
Making it better, or getting it right the first time, in similar situations...not so much. Being constructive, taking a positive approach and understanding constraints is a sign of experience and maturity. Also, quite possibly, a major key factor in enabling good flows of work, organizational adoption and, overall, getting better results.