Usability in Software Engineering

Usability in Software Engineering
Photo by Mohamed Boumaiza / Unsplash

What is Usability?
Usability is the ease of use and learnability of a product, service, or system. It is the measure of how easy it is for users to interact with the software, how quickly they can learn to use it, and how easily they can accomplish their tasks. Good usability makes user interaction with a product efficient and enjoyable.

Why usability is Important?
Usability is important because it affects the user experience of a software product. If a product is difficult to use or understand, users may not use it as much as they could. A great user experience can lead to increased user satisfaction, more efficient workflows, and increased sales. Usability also plays an important role in reducing customer support costs and improving customer loyalty by making products easier to use and more intuitive.

How to measure usability?
Usability can be measured in a variety of ways. Some common methods of measuring usability include:

  1. User testing: This involves having users test the product or service and give feedback on their experience, including their ease of use, satisfaction, and overall impression.
  2. Heuristic evaluation: This involves having a usability expert assess the product or service for design elements that might cause confusion or difficulty for users.
  3. User surveys: This involves asking users to rate their experience with the product or service and provide feedback on what they like, what they don’t like, and areas for improvement.
  4. Usability metrics: This involves gathering quantitative data (such as task completion times, average time spent on a page, etc.) to determine how

What is User testing?
User testing is a type of usability testing that involves real people using a product or service, usually in the form of an experiment. This type of testing is used to measure how easy a product or service is to use and how satisfied users are with it. User testing typically involves having users complete tasks, observe their interactions, and ask them questions about their experiences. By doing so, developers are able to identify areas for improvement and create better user experiences.

How to perform user testing?

  1. Identify the user target: Define the type of users who will be using the software, including age, gender, level of education, and other relevant characteristics.
  2. Define test objectives: Decide on which areas of the software you want to evaluate, such as usability, user experience, and performance.
  3. Create a test plan: Outline the steps necessary to complete the user testing process (e.g., recruiting participants, running tests).
  4. Recruit participants: Find people who fit your target user profile and who are willing to participate in your tests.
  5. Create a test script: Develop a list of tasks that each participant will complete while using the software, as well as any instructions they should follow while doing so.
  6. Run the tests: Allow each participant to complete the tasks while you observe and take notes.
  7. Analyze the results: Look over all of your notes and determine which areas of the software users found easy to use, and which areas could be improved upon.
  8. Implement changes: Make any necessary changes to the software based on your findings, and then run another round of tests if necessary.

What is Hueristic Evaluation?
Hueristic Evaluation is a usability engineering method used to identify and evaluate usability problems in a user interface design. It is an expert-based evaluation technique that uses a set of predefined heuristics, or rules of thumb, to evaluate the user interface design of a product. The evaluator reviews the user interface and rates it against each heuristic using a rating system. The goal of this evaluation is to identify and prioritize usability issues so that they can be addressed during the development process.

How to perform Heuristing Evaluation?
Heuristic evaluation is a usability inspection method that helps to identify usability problems in a user interface design. It can be performed by a single person or as part of an expert review team.

The process typically involves conducting an in-depth analysis of the user interface design and testing it with users to identify any potential usability issues. The evaluator should focus on the following five heuristics when performing the evaluation:

  1. Visibility of system status: the system should always keep users informed about what is going on, through appropriate feedback within reasonable time.
  2. Match between system and the real world: the system should speak the users’ language, with words, phrases and concepts familiar to the user, rather than system-oriented terms. Follow
    real-world conventions, making information appear in a natural and logical order.
  3. User control and freedom: users often choose system functions by mistake and will need a clearly marked “emergency exit” to leave the unwanted state without having to go through an extended dialogue. Support undo and redo.
  4. Consistency and standards: users should not have to wonder whether different words, situations, or actions mean the same thing. Follow platform conventions.
  5. Error prevention: even better than good error messages is a careful design which prevents a problem from occurring in the first place.

Heuristic evaluation helps to identify usability problems quickly and cost-effectively, enabling designers to improve the usability of their product before too much effort has been invested in  development.

What is software usability metrics
Software usability metrics measure the ease of use, efficiency, and user satisfaction of a software product. Metrics may include measures such as task completion time, user errors, and response time. Other metrics can track user preferences for design features or ease of use. Usability metrics are useful for understanding how users interact with a product and can help identify areas where improvement is needed.

Formula to calculate usability of an application:

Usability = (Ease of Use + Learnability + Efficiency) / 3

Usability scale.
Usability scales are used to measure user experience, which can include factors such as speed and accuracy of system response, ease of use, and satisfaction with the system's overall performance. The scale consists of a number of questions that measure user experience based on responses given by users during or after use. The results are then analyzed to determine the overall usability of the software system. This metric can be used to compare the usability of different software systems, as well as to identify areas for improvement within a single system.

Usability measurement questions

  1. How easy is it for users to learn and use the system?
  2. How intuitive is the user interface?
  3. Are users able to complete tasks efficiently and effectively?
  4. Is the system providing appropriate feedback and responses to user actions?
  5. Are there any usability issues with functions, such as navigation, input, output, etc.?
  6. Are users able to interact with the system in their preferred way?
  7. Is the system accessible for all users regardless of physical ability or device used?
  8. Does using the system cause frustration or confusion for users?
  9. Is user documentation clear and helpful?
  10. Are users able to complete tasks without having to rely on external help or guidance?