The convenience of use

Good software is designed with computer user experience (UX) in mind, and this is a pretty broad topic with a lot of research and results. The more lessons learned from these studies are taken into account, the better the software will be in use.
Let me give you a couple of examples so you can get a feel for why this is important:
Well-designed software in user input forms will not be case sensitive in the email field and will remove leading and trailing spaces. There is no need to make life difficult for users due to the fact that they have CAPSLOCK enabled: the email address is case-insensitive. If the program accepts new email addresses, check them in advance and inform the user in understandable language that they may have entered an incorrect address. This also means common mistakes – for example, the absence of the @ symbol – and less obvious ones: for example, the misspelling of the popular domain: “gmail.ocm”.
If the user needs to be redirected somewhere, a good program will remember the starting point and, after performing the necessary actions, will return the user there. She will also remember already known data and interactions that need to be associated with subsequent steps of the user. For example, suppose you searched Expedia for flights as a guest without logging in, and then decided to create an account. All previous searches in the new account will be saved, and you can use them from other machines.
Good software is developed taking into account the real scenarios of users in it. You can’t just add some features – you need to put yourself in the user’s shoes. I booked a United Airlines flight the other day and forgot to add my frequent flyer number. After receiving confirmation, I went to the United Airlines website to add this number to the flight, and it took me ten minutes. There was no obvious way to add this number, so I had to climb through all the links that, as it seemed to me, could lead to the desired functionality. Finally I found the page I needed: it turned out that the last time I did not notice the required field, because it was buried deep in a large form. As a result, I needed to edit the passenger data, scroll through 20 input fields on this form, select the desired number type and be sure to enter the phone number – otherwise the form could not be sent. This is an example of a program that could be developed by a person without trying to think from the user’s point of view.

