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.
Problem is, most people are under the illusion that software is like a woodwork or metalwork gadget: you make it once and it can work happily for 10 years without changes. Which is an extra funny thing to believe in because it doesn't apply to those physical gadgets either.
It seems people just want things to be created once and used infinite amount of times and even if I can relate to that desire, it's simply not the universe we are living in.
And in spite of countless evidence to the contrary, it's still an extremely persistent illusion that creates untold amounts of friction between shareholders and programmers every day.