Recommendations for the design of user interfaces (according to Raskin's book “Interface”). Introduction
The material I'm going to present is a generalization of the book by Jeff Raskin, supplemented by some reasoning based on my own experience.
Earlier, I, like some other programmers, did not attach much importance to the user interface of my programs. Much more important seemed to be the development of the program’s functional capabilities, algorithms, and class systems. I consider all this important now, but I have revised my attitude to the interface. The following considerations made me do this.
Firstly, an interface is (by definition) the only thing that is available to the user when working with the program. Therefore, no matter how wonderful the algorithms the program uses, no matter how rich the functionality it has, if the user cannot access all these features due to the complexity of the interface, this is equivalent to the lack of these features. Imagine: you did something, tried, but did not bother to provide a convenient interface for this - and all your efforts will disappear, they will become useless to anyone (unless you yourself). It's a shame, isn't it?
Secondly, I began to think about the practical benefits of applications for people's lives, and at the same time the benefits that I bring to others as the creator of these programs. Not many programs have a direct impact on the real world - these are mainly programs that control robots and other machines. Most programs themselves do not bring any direct benefit, since they do not produce any real things and do not transform reality. Well, even the best text editor cannot feed, or put on shoes, or educate at least one person. A person can benefit from a program only when using it himselfsomething will create. For example, he will write a novel that will bring something reasonable-good-eternal to the world, and to the writer - some equivalent of goods and services, thanks to which you can live for some time. Therefore, as a programmer, I can bring some tangible benefits only by creating convenient programs that other people can use as a tool to create something really useful (even if only for themselves). In other words, the benefits that the program can bring are inseparable from the users of this program. No matter how obvious it is, but programs are written for people, therefore, it is not the person who needs to adapt to the program, but the program to ensure the convenience and efficiency of the person. Quite succinctly, this reasoning is formulated in this quote .
All these thoughts are quite commonplace, however, I realized the importance of developing a convenient interface, only fully realizing all of the above. Since I could not say I had experience in developing good user interfaces, I began to study various works on this topic. As a result, I found and read the great book by Jeff Raskin - “Interface. New directions in the design of computer systems. " Many other works on interface development offer only general considerations and some rules of thumb. Against their background, this book stands out in a systematic way. Raskin in his work is based on the psychology of human perception. He formulates the principles of interface design in accordance with the laws of perception of information, and further discusses various practices for building interfaces based on these principles and laws. So, the material that I am going to present in this series of posts (for one post of the text it was still a bit too much) is, for the most part, a generalization of the book of Jeff Raskin, supplemented by some reasoning based on my own experience. I hope that my work will be useful both to people just starting to be interested in issues of interface design, and to those who already have some knowledge and experience and want to either refresh some specific questions in memory or summarize the information received. Anyone interested strongly recommend reading the book. generalization of the book by Jeff Raskin, supplemented by some reasoning based on personal experience. I hope that my work will be useful both to people just starting to be interested in issues of interface design, and to those who already have some knowledge and experience and want to either refresh some specific questions in memory or summarize the information received. Anyone interested strongly recommend reading the book. generalization of the book by Jeff Raskin, supplemented by some reasoning based on personal experience. I hope that my work will be useful both to people just starting to be interested in issues of interface design, and to those who already have some knowledge and experience and want to either refresh some specific questions in memory or summarize the information received. Anyone interested strongly recommend reading the book.
The structure of the material to be described is presented in the following diagram.
All text will be divided into 3 parts.
1. The first part will describe the features of human perception that are important for designing an interface, as well as the principles of building an interface.
2. The second part is devoted to compiling a catalog of elementary actions and measuring the quantitative characteristics of interfaces.
3. The third part will criticize some existing practices for building interfaces and describe some useful ideas proposed by Jeff Raskin in his book.
I would be grateful for any constructive criticism.
Earlier, I, like some other programmers, did not attach much importance to the user interface of my programs. Much more important seemed to be the development of the program’s functional capabilities, algorithms, and class systems. I consider all this important now, but I have revised my attitude to the interface. The following considerations made me do this.
Firstly, an interface is (by definition) the only thing that is available to the user when working with the program. Therefore, no matter how wonderful the algorithms the program uses, no matter how rich the functionality it has, if the user cannot access all these features due to the complexity of the interface, this is equivalent to the lack of these features. Imagine: you did something, tried, but did not bother to provide a convenient interface for this - and all your efforts will disappear, they will become useless to anyone (unless you yourself). It's a shame, isn't it?
Secondly, I began to think about the practical benefits of applications for people's lives, and at the same time the benefits that I bring to others as the creator of these programs. Not many programs have a direct impact on the real world - these are mainly programs that control robots and other machines. Most programs themselves do not bring any direct benefit, since they do not produce any real things and do not transform reality. Well, even the best text editor cannot feed, or put on shoes, or educate at least one person. A person can benefit from a program only when using it himselfsomething will create. For example, he will write a novel that will bring something reasonable-good-eternal to the world, and to the writer - some equivalent of goods and services, thanks to which you can live for some time. Therefore, as a programmer, I can bring some tangible benefits only by creating convenient programs that other people can use as a tool to create something really useful (even if only for themselves). In other words, the benefits that the program can bring are inseparable from the users of this program. No matter how obvious it is, but programs are written for people, therefore, it is not the person who needs to adapt to the program, but the program to ensure the convenience and efficiency of the person. Quite succinctly, this reasoning is formulated in this quote .
All these thoughts are quite commonplace, however, I realized the importance of developing a convenient interface, only fully realizing all of the above. Since I could not say I had experience in developing good user interfaces, I began to study various works on this topic. As a result, I found and read the great book by Jeff Raskin - “Interface. New directions in the design of computer systems. " Many other works on interface development offer only general considerations and some rules of thumb. Against their background, this book stands out in a systematic way. Raskin in his work is based on the psychology of human perception. He formulates the principles of interface design in accordance with the laws of perception of information, and further discusses various practices for building interfaces based on these principles and laws. So, the material that I am going to present in this series of posts (for one post of the text it was still a bit too much) is, for the most part, a generalization of the book of Jeff Raskin, supplemented by some reasoning based on my own experience. I hope that my work will be useful both to people just starting to be interested in issues of interface design, and to those who already have some knowledge and experience and want to either refresh some specific questions in memory or summarize the information received. Anyone interested strongly recommend reading the book. generalization of the book by Jeff Raskin, supplemented by some reasoning based on personal experience. I hope that my work will be useful both to people just starting to be interested in issues of interface design, and to those who already have some knowledge and experience and want to either refresh some specific questions in memory or summarize the information received. Anyone interested strongly recommend reading the book. generalization of the book by Jeff Raskin, supplemented by some reasoning based on personal experience. I hope that my work will be useful both to people just starting to be interested in issues of interface design, and to those who already have some knowledge and experience and want to either refresh some specific questions in memory or summarize the information received. Anyone interested strongly recommend reading the book.
The structure of the material to be described is presented in the following diagram.
All text will be divided into 3 parts.
1. The first part will describe the features of human perception that are important for designing an interface, as well as the principles of building an interface.
2. The second part is devoted to compiling a catalog of elementary actions and measuring the quantitative characteristics of interfaces.
3. The third part will criticize some existing practices for building interfaces and describe some useful ideas proposed by Jeff Raskin in his book.
I would be grateful for any constructive criticism.