One of the criteria for good software is that the software is usable. If it is difficult to use, it will meet one of several fates: either it won’t be used, or it will take much longer to use than it should, or it will be used in the wrong way and will produce invalid results. None of these outcomes is desirable.
When looking at usability, it is important to consider all the possible users, their goals in using the software, and the context in which they use it. For instance, technical terms that are second nature to one group of users might be totally meaningless to others. This is particularly important for user-developed software, such as spreadsheets, where the developers often have a very different outlook to other users.
Usability means making it easy for the user to do the right thing, and difficult for them to do the wrong thing. It can be affected by the physical layout of the interface (whether graphical or text based), the wording of any text, the order in which operations must be performed, and many other factors. One of the trickiest aspects of achieving good usability is that it is often difficult to predict how users will react, especially if you are not a typical user yourself. The only way to get it right is to test the software with real users, and take note of what they say.