I still have estimation on the mind. I saw The Impact of Accidental Complexity on Estimates and I was wondering about the effect of management on bad code. Do managers sometimes force developers to write bad code by allowing technical debt? Jay's third point implicates technical debt as a cause:
Introducing technical debt increases accidental complexity, and as a side-effect invalidates previous estimates and increases the likelihood that future estimates will differ in size drastically.
Accepting technical debt now buys you time now. It does increase time to pay back the debt later. I wonder if we have any idea how much time it takes later. I bet we underestimate how much time it takes to undo the technical debt.