Fishermen are familiar with tangled lines. They may not happen when they are actually fishing, but take a length of line and store it out of sight, give it a little time and it seems magically to get itself into a mess.
Just like the fisherman, Software has an incredible habit of doing the same. It starts out being carefully designed and nurtured, with everything neatly in its place and catalogued with the changes made to each file. If it is lucky, the software may arrive at the end of the development phase untangled, but all too often it slides down the slippery slope to entanglement before it ever gets there.
Lets be generous, and suggest that we have arrived at the post development stage relatively unscathed. At this point the erudite first team are itching to be off to pastures new, leaving a new group of people to look after it. I have yet to be involved in a handover that was truly effective, because the first team have forgotten the history that has brought them to this point in the development, and they usually struggle to impart the detailed knowledge that is essential to maintain the code.
Time passes, and with it support engineers come and go,...