But first we need to defines some terms.
Individual applications have user interfaces (UIs). A user interface can be instantiated or managed by a user interface management system (UIMS). Making these can be considered an engineering discipline: designing useful artifacts.
A UI should fit its users well. To make this happen the design process requires knowledge about how computers and humans interact interact, which is created by a scientific process that investigates humans & computers as they interact, seeking universal laws that describe the interaction
The computer executes a sequence of instructions, manipulating its internal state, consuming input and producing output.
N.B. At this point the development of computers bifurcated!
Single programmers are able to create these superb artifacts out of the most malleable substance yet discovered.
N. B. The branches will be seen to be rejoining one another toward the end of computer evolution.
The compiler is used to assemble program fragments into a program.
Operating systems provide the ability to manage on-line, multiple (independent) computations (multi-programming).
N. B. Changes associated with the invention of operating systems influence how the compiler is used. (E.g., the teletype makes possible the screen editor.) The recursive nature of computation means that examining a program (the listing) or changing it (the card-deck) can now be done by running a program under the supervision of the operating system. What's important here is that interface innovation is cumulative.
Databases provide wide access to schema-structured data. This is sometimes called client-server computing. Each individual record of data is interpreted by means of a schema that is global to the entire system.
These are tools for manipulating documents that are semi-structured. The program determines part of the structure; the user determines the rest. The first part of the structure is global (to the program); the second part is local (to the document).
These are applications, like web-browsing, that require wide-area access to semi-structured data. This data is very similar to the information stored in the human brain; to use it effectively it is necessary to compete successfully against human memory.
Buzzword: User Centred Design
How does this procedure fail when we try to use it in the real world?
Things that can go on during the design of an interface
In fact only inspiration is cheap and easy enough for most interface design. More elaborate design methods are useful for resolving problems and disagreements. A designer with good inspiration must be able to put themself into the place of a range of users using only his or her imagination. (That's the way scenarios get created and elaborated.) What would you do in order to develop that ability in yourself?
To understand the second point we have to think a little bit about how users change.
"Knowing how" can be divided into four different categories
Note. Testing the solution is a normal termination step in many learning processes. How many times should a solution be tested? What determines how many times a particular piece of learning should be tested?