Articles written by Scott Berkun often start from a practical point of view, such as this article: Abstract: Discussion on critical thinking in web page and interface design Critical thinking is the core of design and engineering. In many fields, from movie directors to project managers, from programmers to designers, it is very important to distinguish what is valuable. This kind of ability can be obtained by learning, but because it is independent from the technical field, it is often forgotten by our industry. However, it is obvious that most of the mistakes made in engineering, design, and availability are caused by global decision-making mistakes) both developers and designers should understand the methods and processes of critical thinking. In website or software development, critical thinking is manifested in three aspects: planning, inspiration and project management. Here we will focus on planning. In the future, I will write an article to introduce the other two aspects. The most common error in the development process is that the problem cannot be correctly defined. If the objective is vague, it is impossible to determine whether the problem has been resolved. Even if the target is correct, it may be inconsistent with the current design situation and lead to a wrong target. Well-made machine guns cannot help you repair trash tires, so the above two errors are irrelevant to the accuracy of technology. If you cannot avoid these two mistakes, even the best programmers and designers in the world won't succeed. You can write the best code and create the best design. However, if you cannot solve the problem correctly, your efforts will be wasted. Understanding Problems The first step towards critical thinking is to objectively examine the nature of the problem. As a developer or designer, you will inevitably prefer your work. You are looking at your work from the perspective of inside and outside, and it is difficult for outsiders to look at your work. In this case, you need to consider various information to find your own position, there is almost no value to look at the views of developers, managers, and an important user in an isolated manner. To find a global perspective and as many options as possible, you must directly talk to the people using your design, but do not understand the problem based on their words. Think of yourself as a politician trying to help citizens. Will you only believe what your think tank says? You must jump out of conventional thinking to do things well and see the truth of things. Another challenge is that the way you access users will affect the types of information you obtain from them. Unless you have been specially trained, everyone will inadvertently make your problem biased, in this way, you will get unreliable information. Observing and understanding users' skills is complex, which is also the primary reason for the website and software team to require availability engineers. You can learn some basic knowledge, but if you want to do some important work, you still need to ask professionals. When studying the problems you want to solve, remember the following points: • Who are our users? What skills and knowledge do they have? • What data from different sources can we use to understand their background? • What tasks or objectives do they need to accomplish when using our products or websites? • What assumptions have we made and how can we demonstrate them? • What data sources do we know? (Availability research and heuristic evaluation are both a good starting point) If you are not confident in answering these questions, it means you are not ready yet. In fact, this information is the basis of the development work. Before continuing to work, make sure you have an accurate understanding of your users. If this is your first attempt, find as many information as possible for your competitors and users. Analysis As a developer, there are many problems to solve and many new features to be added. Therefore, it is not enough to be creative. Given the requirements of investors and their limited financial support, many problems are not worth solving. Sometimes solving a problem will lead to two new problems. Therefore, a good judgment means that we can figure out what we should do from what we can do. After the data is collected, the next step towards success is to analyze: You need to filter information and determine where to put effort. Filter the information collected from users and other sources into a sentence for specific problems. These words should be written from the user's perspective. For example, "widening the edit box to 15 characters" is not a problem, but "it is difficult to enter long text" is that the difference between them is dramatic. Do not define the problem and solution at the same time, so that you will often forget the real problem. In this example, there are actually many ways to solve the problem of long text input, including changing the shape of the search box. However, if you are too limited, you will not see any other options-a good project is to understand these choices. Provide support information for each problem description, including: What kind of users have such a problem, how the problem is raised, and even the potential solution. Maybe only some users encounter such a problem, or it only happens in a certain situation. Describe as many assumptions as possible to convince others or challenge you. If you are the only person who sees such support information (such as availability research and market research ), let others get the information as well. The more open you are to these resources, the fewer questions you have. If you are working in a team, make all the problems and their support information into a small list. Examples of the problem: • It is difficult to redirect all parts of the website • Software loading takes too long • Difficult to understand security error information • Too many items are registered, so users often give up • It is difficult to find a specific product in the page index Note that user problems are different from functional bugs. I use two features to judge them: 1) failed to implement the expected functions due to code errors 2) There are obvious and simple solutions For example, if the drop-down menu cannot show 50 states, it is a bug that the user cannot find the drop-down menu or use it to reach the target. |