Rolf Molich and Jakob Nielsen developed a set of heuristics for interface design in 1990. In 1994, Nielsen refined these heuristics into 10 key principles: (1) keep users informed of system status, (2) speak the users' language with familiar words, (3) allow easy exit from unwanted states, (4) be consistent in design standards, (5) prevent errors from occurring, (6) make objects and actions visible to minimize memory load, (7) support both inexperienced and experienced users, (8) avoid irrelevant information for clean design, (9) help users recognize, diagnose and recover from errors, and (10) provide help that is easy to search and focused on tasks