We get sad, sad stories in tech support several times a month. The other day a customer called wanting to know how to recover source from an AVR for .NET binary. A PC crashed and, even though they had been doing backups "regularly," no backup of the project could be found. Alas, while there is a nominal way to recover C# source from a compiled AVR binary, it’s not really a suitable source for recompiling the application.
When it comes to source code, keep a good backup. This applies even if you’re pushing every change to a cloud-hosted source control service like GitHub. You don’t push 100% of a project to GitHub–you omit (or at least you should) assets that surface private credentials and other important parts of the app.
A few days later another customer called. This time it was a contractor, working for a client. The client used an old AVR Classic app to manage local government-issued permits. The client had been doing backups "regularly" for years. A ransom attack rendered their server inoperable, and with it their ASNA DataGate for Windows and Servers database.
When it comes to data, keep a good backup. The contractor called to ask if we knew any tricks for recovering the data. The only "trick" we know for that is a regular and reliable backup.
In both cases, regular backups were being performed. In the first case, they failed to include new directories for a new set of projects. So, yes, they were doing backups–highly ineffective backups, but credit due, they were doing backups.
In the second case, although they were running the command to start the backup every day, at some point directory names changed on the server but they didn’t modify the backup procedures with these new directory names. Each day, the backup would immediately fail. But no one looked at the logs or otherwise noticed the problem–for 18 months!
Backup is very important, but restoring is even more important
The takeaway here is that doing a backup isn’t of any merit if you don’t regularly ensure the backup contains what you think it contains and if you don’t have regular fire drills to ensure you can restore data from that backup.
Don’t be a sad story in tech support! Do backups and frequently ensure their veracity!