Understandability is the concept that a system should be presented so that (somebody) can easily comprehend it. The more understandable a system is, the easier it will be for engineers to change it in a predictable and safe manner.

infoq


A system is understandable if it meets the following criteria:

  • Complete. The system must be presented using a predefined set of sources (source code, documentation, etc.) to cover all key information. No critical pieces of information may be left to the engineer’s imagination.
  • Concise. The system source code should not bury the user with an excessive amount of detail. This is where separation of concerns and abstraction come into play, allowing the engineer to focus on the task at hand.
  • Clear. Use a presentation methodology that is easy for the reader to scan. This is where consistency, coding conventions, source-code formatting, code comments, and syntax highlighting make a huge difference.
  • Organized. The engineer should be able to easily locate cross-referenced information within the system. This is where modularity, software documentation, source-code navigation controls, and source code management tools allow engineers to find their way around the system.

infoq

This specifies the requirement for the product to be understood by its users. While “usability” refers to ease of use, efficiency, and similar characteristics, “understandability” determines whether the users instinctively know what the product will do for them and how it fits into their view of the world. You can think of understandability as the product being polite to its users and not expecting them to know or learn things that have nothing to do with their business problem. Another aspect of politeness is that the product should not expect the user to input any information to which the product already has access.

Volere Version 2.0