As a kick-off for this, I’d like to go over some basics, which could help just about any OSS projects.
Usability is a quality attribute that assesses how easy user interfaces are to use. The word also refers to methods for improving ease-of-use during the design process. More broadly defined, it means making products and systems easier to use, and matching them more closely to user needs and requirements.
While many people believe that usability is solely focused on ease-of-use, it goes much further than that, encompassing the whole experience of a system. Too often, systems are designed with a focus on developer goals, fancy features, and the technological capabilities of hardware or software tools. All of these approaches to system design omit the most important part of the process – the end user. In Usability Engineering, Jakob Nielsen mentions five concepts to remember when it comes to usability:
- Learnability: How easy the system is to use.
- Efficiency: How well the systems’ interface maps to what someone is trying to do.
- Memorability: How well the system allows people to remember how to do things.
- Errors: How well the system prevents errors and allows recovery from them.
- Satisfaction: How satisfied a user is with the system
We will examine each of those points over the next few days, providing a basic framework into usable systems. Along the way, I will touch on some of the open source pieces of software currently available and offer potential solutions to some of the usability problems they have.