Data loss: A blind-spot in my backup strategy
Last week I suffered a catastrophic disk failure, leaving my 1TB NVMe drive completely unreadable. Luckily I have backups, I thought.
Only wimps use tape backup: _real_ men just upload their important stuff on ftp, and let the rest of the world mirror it 😉
Linus Torvalds
I don’t, in general, backup my git projects. All of my personal projects are open source, so I always push my code up to an online repository. I don’t feel like paying to backup a couple of dozen python
.venv/
and JavaScript
node_modules/
directories full of other people’s code, so I exclude my projects directory from my backup plan.
I’m a little bit of a perfectionist and I don’t like publishing something in advance of announcing and publicising it. Therefore, I tend not to create a project for something on an online repository until v1.00 is ready to deploy. I still commit everything to a local git repository so I can roll back breaking changes, try out multiple different approaches, etc. I just wait until I’m completely finished before I push it out to the world.
These two choices came to bite me last week. I had three projects under development; one was about 50% there, another was about 90% done and one was 100% finished except for the blog post to announce it. All three were in local git repositories saved to my 1TB NVMe drive. All three had yet to be pushed to an online repository. All three were excluded from my backup plan. All three were lost when the drive failed.
I felt sick.
Although I’m an IT Manager now, I come from a background of agile software development. Its practice of Radical Honesty, that should be found in trusting teams and retrospectives, is why I’ve written this post. I similarly believe in Throwaway Prototyping and that its use can be one of the best ways to prove an idea works or is worthy of further development. Even still, I can’t bring myself to work on those three projects again, yet.
Instead, I’ve revised my backup plan, decided to get over my aversion to “private” projects on online repositories, and started another project to take the sting off things. I still won’t be publishing publicly until I’m ready to publicise it, but at least it’s saved in three different places now!
2024-04-01