The last weeks a fair amount of requests for UI improvements have been made. Changes to the UI are probably the hardest part of software development, because this is very subjective. Right now, there are 414 registered users, I estimate there are about 410 opinions of how a good user interface should look like.
This made me think about how to meet the preferences of most users. A good approach could be to compile a list of general requirements for all upcoming UI changes.
Here’s my - subjective - list, in order of importance:
1. Clean look
For me, this should be priority #1. How the interface looks like, makes or breaks the complete program.
When I’m looking for a particular application, the first things I look for is a features list and the screenshots. If the screenshots don’t look nice, I probably search for another similar program.
So the most important goal for UI design should be: at first glance everyone should love it!
Some ways to accomplish this are:
- positioning items. Try to arrange items nicely. Make use of available space, try to deal with limited space.
- use large fonts and clean, minimalistic graphics. Don’t display more information than needed, but try to be clear what function is launched by clicking on an item.
- Don’t use more colors than strictly needed.
2. Intuitive interface
Everything should be in the right place. Nothing is more frustrating than clicking every single link to find a specific function. If a major design change is made in a specific part of the UI, it should be implemented in all other parts. In other words: everything should work the same way everywhere.
A well-implemented improvement was the Restore item in the main menu. In older versions, this item was only for restoring directly from a destination. For restoring specific files from a backup that is made at the same host, you had to click “Restore files” under the backup name. This was quite confusing, because if you want to restore something, clicking “Restore” is the most obvious thing to do.
3. Functionality
The GUI should be able to handle at much as possible functions that are supported by the commandline tools. However, this should never be at the expense of 1. and 3. Adding as much as possible functions to the GUI without taking appearance and ease of use into account, will not improve the UI, but will cause confusion.
If adding a new part to the UI touches requirements 1. or 2., another way for adding the feature should be searched for.
4. Usability
Controlling the features that Duplicati offers, should be as easy as possible. If mouse clicks and/or opening submenus can be eliminated somehow, this should be done. But only if requirements 1, 2 and 3 are not violated.
The interface should be equally comfortable for all environments, including touch environments.
If a new feature or modification of the UI is requested, I suppose most users will see it as an improvement if all these 4 requirements are met.
Of course this is a very personal view to how improvements to the UI should be judged, so feel free to comment on my opinions!