Prototype Yodabox::A
From Inforail
Philosophy
- Almost no questions asked
- most of the choices are determined automatically
- reasonable default values will be proposed
- Completely unobtrusive
- makes itself visible only if something is wrong
- conservative use of system resources such as bandwidth, CPU cycles or RAM
- As automated as possible
- Simple
- rely on third party tools for scheduling, synchronization, compression, integrity checks, encryption, etc
- sacrifice uber-flexibility; pretty not bad backups are better than no backups at all
- Reliable
- handle edge cases well
- if failure is the only option, fail gracefully
- Proactive - predict failure before it occurs
- warn that there might be no space for the next backup
- increase the postpone delay if there were several postpones already
- check if the target device is available
- Clear and humane - when something doesn't go well, make it clear what exactly is wrong
- which files were not copied, why it happened
- do so without using tech-slang
Assumptions
- People will be willing to buy an external storage device large enough to hold their data, as long as they can be certain that data are safe
- for a regular person, it is cheaper to buy a bigger hard disk than to think about delta backups
- An Internet connection is available
- It may not be very fast
- But people are willing to wait, as long as:
- it is clear how long they have to wait
- it is guaranteed that when the process is finished the data are safe
What it is not going to do
- Backups on CD/DVD - because finding something on a disc is very difficult
- People prefer a one backup to rule them all approach, rather than
- having try multiple discs before stumbling upon the right one
- or consulting an index in order to find where the file is supposed to be (assume that the index will always be lost)
- Large files that span across several discs are difficult to handle and involve additional complexity
Edge cases
- a file is locked by a process
- wait, try later
- stop the process in a polite way
- kill the process of all else fails
- target disk not connected
- low free space
- network connection down
- abort the backup process in case of emergency
- misalignment of planets
- power outage
- battery on laptop is about to die