kewms wrote:And if the power drops while the temporary file is being written?
Then there's still the original file.
Design#1: Program auto-saves every 5 minutes. If the power drops, the most you lose is the past five minutes. On restart, the program will tell you there was a problem. Either the original or the auto-save will be available. The most you lose is five minutes of your work.
Design#2: Program will only do a backup upon exit. If the power drops in the wrong moment, you might lose the entire session as files are overwritten directly. File will be corrupted and crash the application upon launch - but you will only find out when you actually launch the file, as the application won't automatically tell you. To rescue the project and "only" lose a day's work (or more if you don't typically shut down your machine over night), you will have to poke around in a folder that may or may not be on the computer you're actually working on (worst case you just left for a working holiday and when you try to boot up you discover that the working copy is corrupted and the backup is on your home computer).
Which one would you choose?
kewms wrote:Consider the case of a novel reader who says, "I just didn't find the protagonist believable." Now, as the author, fix the character. Good luck.
I'm afraid that's just not a valid comparison. What I call a "design flaw" in this case is not about errors (which may or may not be due to issues that neither the programmer nor the user can control - like power outages), but how those errors are handled to minimize the negative effects. Totally different ballgame, and I don't see how there would be an analogy in writing or character development.