General Principles

From perpendicular angel knowledgebase
Jump to navigation Jump to search
  • Doherty Threshold - Productivity soars when a computer and its users interact at a pace (<400ms) that ensures that neither has to wait on the other.
  • Every Page Has a Hero - Any given presentation of information should consist of one primary user goal that stands out.
  • Fitt's law - The time to acquire a target is a function of the distance to and the size of the target.
  • Gall's Law: A complex system that works is invariably found to have evolved from a simple system that worked. The inverse proposition also appears to be true: a complex system designed from scratch never works and cannot be made to work. You have to start over, beginning with a working simple system.
  • Hick's Law - The time it takes to make a decision increases with the number and complexity of choices. 
  • Jakob's Law- Users spend most of their time on other sites. This means that users prefer your site to work the same way as all the sites they already know. 
  • Law of Prägnanz- People will perceive ambiguous or complex images as the simplest form possible, because it is the interpretation that requires the least cognitive effort of us. 
  • Miller's Law (Seven plus or minus two) - The average person can only keep 7 (plus or minus 2) items in their working memory. 
  • Occam's razor - Among competing hypothesis that predict equally well, the one with the fewest assumptions should be selected.
  • Pareto Principle - For many events, roughly 80% of the effects come from 20% of the causes. 
  • Parkinson's Law - Any task will inflate until all of the available time is spent.
  • Peak-End Rule - People judge an experience largely on how they felt at its peak and its end, rather than the total sum or average of every moment of the experience.
  • Progressive Disclosure - Advanced or rarely used features to a secondary screen, making applications easier to learn and less error-prone.
  • A Sense of Place - Humans need to have a sense of environment, direction, and available tasks to accomplish their goals.
  • Separation of Concerns - software should be architected in a way that ensures each piece is separated from the others based on the kind of work it performs. For example, business logic should be in a separate project from interface logic, because the business logic is not dependent on the interface logic and vice versa.
  • Serial Position Effect - Users have a propensity to best remember the first and last item in a series.
  • Set users up for success - Provide users the ability to avoid errors; don't provide them an interface that invites failure then chides them for failing.
  • Single Responsibility Principle - A software module should be responsible to one, and only one, reason to change. Put differently, if a module that creates a report can both require rewriting because someone needs to change its data or change its format, it should be broken into two modules, one for changing the report's data, and the other for changing the report's format. Similar to the Separation of Concerns (above) but at a slightly lower level.
  • Staged Disclosure - Staged disclosure is a variant in which users step through a linear sequence of options, with a subset displayed at each step. Wizards are the classic example of staged disclosure.
  • Tesler's Law (The Law of Conservation of Complexity) - For any system, there is a certain amount of complexity that cannot be reduced.
  • Von Restorff Effect (The Isolation Effect) - When multiple similar objects are present, the one that's the most different will be most likely to be remembered.
  • Zeigarnik Effect - People remember uncompleted or interrupted tasks better than competed tasks.