I have an apple sitting on my desk right now. As I was looking at it, wondering if I'm going to eat it before it rots I couldn't help but think of that time lapse photography where you see fruit decaying.
You've probably heard about bit rot. So, I was thinking how does this apply to software? What can we do to preserve the fruit. I didn't like the notion, that no matter what you do, the apple is going to rot. Then I thought, hey maybe software is more like a new car. If we take care of the car, keeping it clean and maintaining it we're going to have a useful automobile for many miles. We may eventually choose to replace it because of upkeep costs or changes in style... people are fickle aren't they?
Now, the car that doesn't get the maintenance... it rusts, it fails, it falls apart...and it's like the "broken window" idea... as it decays we want to take even less care of it. We want it to fail so we can replace it with something new. Or because it is in such poor shape, when the mirror busts off we just slap on another that doesn't really match. But, we don't care because everything is in such a poor state anyway.
Or maybe the car was put away in the garage because the original owner is gone...and it doesn't age gracefully.
These are things that happen to software. What can we do? Take care of our software. As we learn new concepts keep our systems polished. Revisit the application with code reviews, this also helps out the new people on the team. Then you don't have to worry about not having available the one person that knows the code. If the system was developed with n-tier design then maybe a new paint job (GUI) is in order? I am sure you can think of other things you can do to keep your systems from rotting.
So, keep your systems clean, polished and maintained!