XP teams prefer simple solutions where possible. Here are four criteria used to evaluate the simplicity of a design:

  1. Appropriate for the intended audience.It doesn’t matter how brilliant and elegant a piece of design is; if the people who need to work with it don’t understand it, it isn’t simple for them.
  2. Communicative. Every idea that needs to be communicated is represented in the system. Like words in a vocabulary, the elements of the system communicate to future readers.
  3. Factored. Duplication of logic or structure makes code hard to understand and modify.
  4. Minimal. Within the above three constraints, the system should have the fewest elements possible. Fewer elements means less to test, document, and communicate.

Originally published at