I think a real issue we developers face is the management and client attitude that software does not require maintenance. Time and time again, the fact that our completed projects require maintenance or they simply fail with newer systems is greeted with shock, debate and accusation of deceit.
Imagine you brought your car for an oil change and the mechanic says "uhh yeah maybe you can get new oil next year but for the next few months we need to... Uh... Address technical debt in your car... So umm... It's gonna cost you thousands of dollars and you aren't going to get anything you perceive as a change"
You'd think they are ripping you off.