Finding analogies for programming is very important for training programmers, for communicating to other programmers, to communication to customers and end-users, and to help a programmer’s understanding of their own code and goals for their code.
One thing to remember about analogies: They always brake down. An analogy is a “comparison” – and all comparisons will fall apart eventually, unless the things being compared are identical. In other words, at some point the comparison falls apart because the two subjects are different. This is okay, because we are just using this “comparison” mechanism for learning and understanding, we are not using this comparison to make the plans for the next space shuttle.
Example: A car needs new wiper blades, brake pads, and tires. And just the same, a web application or other application needs some basic maintenance.
Example: A car needs oil, fuel, brake fluid, automatic transmission fluid, wiper fluid and many more things to run properly. An application needs sufficient memory, disk space and system resources to run properly. Over time, the application and other softwares on the system use up these limited resources, and they must be replenished. This could mean deleting log files, and stopping unnecessary programs to free up more resources (ie. fixing problems to improve your gas mileage). This could also mean upgrading one’s server (ie. replacing an engine or large component, or getting a new car).