The work that programmers do is not physical. Management have a hard time seeing the result of our work.
What always ends up happening because of this is that managers start to manage time spent instead of value outputted. Since the work done is all very vague for them, the best programmer is the one that finish their projects the fastest.
We do our own estimates and our subconscious is trying to "win" that race. Sometimes, we even get bonuses based on this. So we end up stamping time estimates that would only happen in a perfect world. Management use those estimates as hard deadlines. If you do not meet the deadline, it's your fault.
So you start to work crunch time at the end of months.
Since the work is virtual, nobody but the programmer cares about the quality of the work. Management pushes you to finish as quickly as possible.
You then start to work for free one or two extra hours a day every day to fix those things in the code that bring you shame.
The things management won't give you extra time to correct. You know this glaring security hole is going to end your career, even if management doesn't want you to correct it. So you correct it anyway.
You want better tools to insure the quality of your projects but since programmers have to build their own tools from scratch, management won't grant you time to build them.
You use some time out of your weekend to build them.
Nobody wants to use a dull blade so your sharpen your tools on your own time.
A few projects done the road, you work 20 extra hours a week without even noticing anything has changed.
... now imagine a new hire trying to compete without putting any extra time. On his first meeting, he gets asked why he takes double the time to finish projects. He quickly end up doing the same as everyone else. Everyone is working for free because everyone else is.
It's a vicious circle that's very hard to break. Most of the time you only notice it when you are a new hire... and nobody listens to new hire. Heck, what management would allow the situation to get back to normal? They are getting so much free work.