It is no secret that many developers do not pay enough attention to the usability of the product for various categories of users. Some of them skip the interaction design phase, which results in the software being too hard to master or requiring too much effort for performing some routine operations (which is especially typical for specialized and non-commercial products). Others emphasize the convenience for new users which makes things harder for those using it on a daily basis, resulting in visually attractive interfaces overloaded with animations, visual hints and welcome screens, but lacking a way to optimize the workflow. Still others leave interface setup to the user. As a result, it is extremely difficult for a novice to get used to the interface designed for a professional. Some developers clutter the interface with technical details that make no sense to a typical user. Some others, by contrast, hide important information and frequently used functions deep inside the interface.
For example, recent changes to the authorization interface of the Jenkins continuous integration system included unchecking the ‘Remember Me’ checkbox and moving it below the ‘Enter’ button. Despite the fact that the new GUI is visually more attractive, it is now not enough to enter the username, press Tab, enter the password and press Enter to log in permanently using the new form. After entering the password, the user has to press Tab twice, check the box by hitting the Space key and then press Enter. Another option is to use the mouse to check the box. Both options require additional time (when pressing extra keys or moving the hand from the keyboard to the mouse) that could have been avoided. After all, the CI environment is hardly ever used by inexperienced users accessing it from a public computer.
The updated interface of Skype messenger shows a welcome screen featuring the ‘Enter or create’ button when launched. This screen does not even give the user a choice, since both operations are performed with the same button, and the workflow splits later. Instead, it requires the user to click on a button, and then the application wastes even more of the user’s time loading the next screen. Removing the welcome screen would not deprive the user of any features, but it would eliminate the need to perform a routine operation that changes nothing. Another problem with Skype is that after logging in, it always starts with a small window in the center of the screen, even if the user always expands it to the full screen. Finally, the application does not remember which screen it was last used on: after each relaunch it still shows up on the main screen, making the user move it manually each time.
The interface of xWiki was designed without having any usage scenarios in mind. Every time the cursor hovers over the page text editor, a ‘This is a textarea’ screen prompt appears covering part of the text. The hyperlink insertion window forces two extra clicks when inserting an external link instead of an internal one, despite the fact that this operation is performed frequently. The first click is required to expand the drop-down list with link types and the second one selects a web link, even though entering a URL instead of a page name already indicates the use of an external link instead of an internal one. Once the user selects the required link type, the link address field becomes filled with trash characters which should be removed before any value can be entered.
It is not uncommon for usability issues to arise after clumsy attempts to improve the GUI. For example, the interface of the Russian Federal Tax Service’s website requires the user to provide taxpayer ID when entering their account. To help the user avoid any mistakes when entering it, the input field ignores all non-digit keys, including those used to paste the text. This forces the user either to use a context menu for pasting the ID or to type all digits manually. The date input field in VTB bank’s online business account also features protection against entering incorrect data, which, unfortunately, is activated every time a key is pressed. Replacing the date in a copied document, which is a typical operation, looks like this: the user enters a two-digit date and the cursor moves to the first digit of the month. If the user needs to replace ‘9’ with ’10’, the system perceives it as ’19’, changes it to ‘01’ and moves the cursor to the first digit of the year. After this the user has to click twice to go back two steps, press ‘1’ once again, and then press ‘0’.
Image galleries are a classic example of poorly designed GUIs. When you click on an image, it expands full size. Many galleries activate a timer that opens the next image automatically. If there is no pause button and the user wants to see a specific image in detail, they have to press the ‘Previous Image’ button every few seconds. Sometimes manual navigation to another image doesn’t reset the timer so, as a result, if the manual transition is performed shortly before the timer is triggered, the image flashes on the screen and immediately changes to the next one, without giving the user a chance to view it.
No operating system can guarantee good usability with all its GUIs. However, it can let the user choose which interfaces to use. Sivelkiria does this in a few ways.
First, the ability to use any GUI module with any compatible program allows the user to choose a messenger window to their liking without having to change platform. The situation where the user can replace a computer but cannot avoid using an application with a GUI that has an irritating color scheme is a bit ridiculous. The ability to select an interface triggers the laws of supply and demand: if a default solution (in this case – an interface) is not convenient enough for a statistically significant number of people, an option arises to satisfy their needs. Unlike classic operating systems, this operating system does not require changing the entire workflow for the sake of app replacement. The interface can be changed, but the functions the program performs remain the same.
Second, the operating system allows you to apply global and local settings that affect the look and feel of programs. These settings define how much technical information is shown, whether these programs are optimized for the mouse or for the keyboard, whether they look bright or create minimal visual impact, whether numeric information is displayed in digital or graphical format, whether a markup or WYSIWYG editor is used when working with formatted text, whether the user sees a full list of each operation’s parameters or the GUI is optimized for the most frequent cases, whether the controls are animated, and so on. The use of this feature is optional (by default, windows are arranged optimized for an average user), but experienced users can customize the appearance of programs to match their preferences. Besides, anonymous statistics can be collected and sent to the program’s developers so they could understand the needs of the users.
Third, all existing controls and other interface solutions are available in a single place, the main repository. Developers of new programs can choose ready-made, tried and tested solutions to save time.
Finally, for each interface component available on the platform, usage statistics are provided, including the number of times users replaced the component with another one, as well as a complete history of changes, including information about all improvements. This allows interface developers to choose the best components for their solutions, and component developers can use global experience to improve their own solutions.