Every software system that is remotely successful will have to be “maintained.”  Why is that such an expensive proposition?  What can be done about it?