Bvckup Support Forums - Not logged in
Topic   Bvckup / General Discussion / Short history of Bvckup
By apankrat  at  2009-07-30 22:23 Edited 2010-07-14 06:48
Prologue

Bvckup started as a small folder cloning program that I wrote for my own personal use some time ago. It automated the way I was doing the backups at that time, which was by copying selected directories with my working files and software settings at fixed intervals to a NAS device on my home network.

Fast and intelligent

After several iterations over a prototype it became clear that the software needs to be a cross between a traditional backup and modern folder synchronization software. It should provide the reliability and precision of former, and the speed and the reaction time of latter.

Specifically the changes should be detected (almost) instantaneously and the amount of data being copied should be minimized. Latter was important in case of network backups, especially when the backups were done over WiFi connections.

Naturally the next thing I did was look at the existing software. Lots of it. Lots of very well done and capable programs. And virtually all of them were packed choke-full of features that I didn't need. While it was nice to have an option of doing FTP backups over SSH tunnel, it wasn't something that I would use. The presence of all these extraneous features created a general feeling of a bloat. It was like buying a computer when all I needed was a calculator. An overkill.

User interface

It also became apparent that the user interfaces of the programs that came close in functionality had lots to be desired. In one word they were cluttered. Lots of "visual noise", not well fit for a routine day to day use, when the eyes get used to the layout and the appearance of the interface and start paying attention only to the selected parts of it.

This looked like an interesting challenge. To design a streamlined interface for something as mundane as a backup tool.

Back when I was working on the Hamachi project I had designed an ultra simple interface for an inherently complex technology, the virtual private networking. And that just seemed to hit the nail on the head. The software was both very simple and very useful and this combination was ultimately responsible for its exponential adoption rate.

The simplicity and clarity is the key to a successful user interface design. A great deal of restraint is required not to succumb to a temptation of adding all possible features to the program. The program needs to stay focused to be instantly usable. Ideally it should solve just one specific problem, but do it really well. There is an excellent expression that goes like this:
                         Perfection is achieved, not when there is nothing more
                         to add, but when there is nothing left to take away.


This is the design principle behind Bvckup's interface. At any given moment there is everything you need, nothing you don't. The summary of status and commonly used settings are at the top, arranged for an easy visual digestion. Additional information and settings are tucked away, but still are easily accessible when needed.

Design process

The design of Bvckup was split into two parts - that of a core features dealing with the actual backup activity, and that of the user interface. Interestingly enough the first part was the easiest,  bulk of its time going towards the testing. The interface design is where it got interesting. Multiple iterations over numerous window layouts, window by window, field by field.

Gathered a lot of feedback, initially from the friends, internally in the company and then by polling people via online feedback services. All in all, there were probably a few dozens of users actively commenting on the UI design throughout the prototyping process. If you are reading this, you know who you are :-)

The feedback loop is always on. For example, the backup settings window is currently at its 12th major revision, which was made only recently in a response to some comments received during an early beta.

Design goals

At some point we stopped prototyping and penned down the core set of features. Four items came on top:

* Continuous backup - must pick up and propagate changes in real-time
* Fast copying - must minimize the amount of data being copied
* NAS friendly - must keep local state and not require an access to the backup folder when deciding what to backup
* Great UI - must be a pleasure to use

With three more making the next batch:

* File filters - must allow excluding and including files from/to the backup
* Periodic backups - must support scheduled operation as an alternative to the real-time mode
* Software updates - must provide an easy way to update an installation from within a program itself

It was implied that the file copying would take care of not just the file contents, but also their miscellaneous information such as attributes, timestamps, ownership info, etc. The file would be replicated, rather than copied.

Closing comments

I am hoping that by providing some insight into how the program came about and what its design priorities were, it will be clearer what sort of usage Bvckup is best fit for and who its target users are.

We started with a program that solved one specific problem for just one person. It proved to be very convenient and useful, and so it was only natural to share it with more people. I think we managed to do just that.  The result is light and uncomplicated software that is fast and highly focused on one specific task of making exact replicas of the folders. Hope you find it useful.

Alex
Jul 30th, 2009

Powered by mwForum 2.18.1 © 1999-2009 Markus Wichitill