Welcome to pay attention to the public account “JAVA Front” to view more wonderful sharing articles, mainly including source code analysis, practical application, architecture thinking, workplace sharing, product thinking and so on, at the same time, welcome to add my wechat “JAVA_front” to communicate and learn together
0 Article Overview
Think about a situation at work where a colleague tries to explain a story to you for a long time with lots of facts and figures, but you have no idea what he’s trying to say. A colleague wrote a technical solution with a lot of ink, not only with words and charts, but you still don’t know exactly what the solution is to solve and how to implement it after reading it.
The reason for the occurrence of the above situation is that the expresser does not use structured methods to explain, and the information seems very rich but chaotic, which makes it difficult for people to grasp the key points, so we need to introduce structured thinking methodology.
Pyramid theory is a structured thinking methodology proposed by Barbara Minto, which has been popular in the world for 50 years and has achieved great results in various industries. In this paper, we use the pyramid principle to analyze a technical system optimization program, and see how to implement, and finally summed up a closed-loop thinking tool.
1 How to ask a good question
Everything we do at work is, in essence, a solution to a problem. Whether we’re proposing a solution, optimizing a scenario, or solving a problem, the first step in explaining what we’re doing is critical.
So how to clarify the problem? We can use the structured expression SCQA tool proposed by the pyramid principle. The four letters stand for background, conflict, question, and answer.
The context (Situation) is the context in which this problem arises. Our description of the environment must be true and simple. Everyone agrees with this description, and even can resonate with it.
There are three common types of conflicts that occur in this context: what expectations didn’t meet, what processes didn’t go smoothly, and what hazards remain.
Questions are spontaneous questions raised based on context and conflict. There are four common types: what should be done, how should be done, whether should be done, and why it happened.
Answer is the Answer given to the above four types of questions, and the Answer is the central idea of the pyramid structure.
If you want to explain to your colleagues how the technical solution should be implemented, the first step should be to explain exactly what the problem is being solved, and wait until there is some consensus on the problem before discussing the technical solution:
Background: The amount of service data is increasing
Conflict: The response often times out and the existing system cannot support it
Question: What should be done to support the subsequent business
Answer: We should optimize the system
At this point it becomes clear what the technical solution is intended to solve, and the answer to this question is the central idea of the pyramid structure. Now we are going to structure this central idea using the pyramid principle.
2 Structure your answers in a structured way
The core idea of the pyramid principle is not complicated: a single event can lead to a central idea supported by three to seven arguments, each supported by three to seven arguments. The basic structure is as follows:
It is not enough to analyze the pyramid principle only here, but also to further analyze the internal structure of the pyramid principle, and the internal structure can be analyzed from the horizontal and vertical dimensions.
2.1 Longitudinal Structure
The vertical structure of the pyramid embodies two principles: conclusion first and top-down, and we analyze them separately.
2.1.1 Conclusion first
Conclusion first is to present the main idea in a clear way so that the audience can understand the main idea at the beginning of the communication. However, if you hide the main idea in the communication process, the audience may be distracted by too much information or lose focus and have no idea what you are talking about. Conclusion There are six aspects as follows:
- First important, then secondary
- Frame first, detail later
- Aggregate first and subdivide later
- The argument is followed by the argument
- Conclusion before reason
- Result first, process later
Suppose a colleague’s code went live and caused the system to fail. Without using a structured approach, it would be expressed like this:
I saw that the monitoring found that the database load increased, which may be caused by not adding indexes. I find that I receive repeated messages frequently. Is there something wrong with the messaging middleware? The monitor also shows that a large number of threads are being created. Is this thread pool misuse? Troubleshooting is difficult to reach a conclusion in a short time, so let’s roll back the code to the previous version
The central idea of this colleague is that the cause of the problem is difficult to troubleshoot, and the code should be rolled back before analyzing the problem. However, he puts the most important point of view in the last, and he does not know what he should do until he hears it. How should he express the conclusion first?
We should immediately roll back the code, because troubleshooting is more complex, or restore the system and troubleshoot the problem. The possible problems fall into three categories: first, database problems caused by improper use of indexes, second, middleware problems causing a large number of repeated messages to be received, and third, improper use of thread pools causing a large number of threads to be created. We’ll go through them one by one as we get back to normal
By comparing the two paragraphs, it is not difficult to find that the structure of the second paragraph is much clearer and the efficiency of information transmission is significantly improved, which is the advantage of conclusion first.
2.1.2 The above rules the lower
Let’s analyze an example to illustrate: Xiao Wang needs to buy beef, eggs, radish, juice, cabbage, milk, vegetables, chicken and yogurt today, but he can’t remember so many dishes. Please try your best to help Xiao Wang.
The first step is to summarize dishes from bottom to top, which is a process of finding rules. The second step is to help remember by structuring the expressions above and below.
It is not difficult to find from bottom-up polymerization that beef, chicken and eggs belong to meat and eggs, cabbage, green vegetables and radish belong to vegetables, and milk, juice and yogurt belong to drinks. After such polymerization, we can carry out structural expression from above to below.
The above example is relatively simple, because the association between elements is easy to find, but the real scene is not so simple, the association between elements is not easy to establish, so how should we expand from the central idea to the second layer?
The pyramid principle recommends the use of question-answer dialogue, in which the structure unfolds downward by asking questions. So what questions should be asked to cover the main points? We can refer to the 5W2H analysis method and try not to miss key points:
-
What are you doing
-
-Blair: Why
-
-Penny: Where do you start
-
When: start and end time and milestone
-
Who: Who is responsible for, Who does, Who checks
-
How: How to do it, How to do it, where to start
-
How Much do you do
On the basis of this model, we can simplify, thus reducing the number of elements, so that it is easier to structurally express and memorize. We generally select What, Why and How as three core elements to form 2W1H model.
2.1.3 Practical application
Let’s look at the practical application of conclusion preemption and continuity. According to the first chapter, we used the SCQA tool to get the answer, which is the central idea of the pyramid structure, so according to the principle of conclusion first, the central idea should be presented at the top of the pyramid. We then use the 2W1H model to organize the argument, and here a basic structure of the pyramid has been built:
2.2 Horizontal Structure
Now we need to think about how to organize arguments, using two principles of horizontal structure: grouping and logical progression. Let’s do it separately.
2.2.1 Classification and grouping
(1) Inductive reasoning
We usually use inductive reasoning and deductive reasoning to categorize groups, so let’s start with inductive reasoning.
Inductive reasoning refers to the induction of observed facts and laws into a theory. This method of reasoning is not rigorous, because the conclusion of inductive reasoning is not necessarily correct as long as the observed facts and information are limited. This is a common type of logical error: false attribution.
Europeans saw swans all white, so they concluded that all swans were white. This conclusion is disproved when a black swan appears, which is a black swan event.
Of course, it is impossible for us to observe all the facts and collect all the information. In general, in order to solve a specific problem, we will collect information focusing on a certain Angle and establish a specific model to analyze and solve the problem, which is also an effective method.
The inductive reasoning of pyramid principle generally has the following four dimensions: time dimension, structure dimension, degree dimension and experience dimension. The time dimension is based on the natural time line, the structure dimension is based on the organizational structure, the degree dimension is based on the degree level, and the experience dimension is based on the existing experience. Let’s take a look at some common types of these four dimensions:
Time dimension
- Before, during, after
- Short term, medium term, long term
Structure dimension
- Information Department, Administration Department, Human Resources Department
- Development group, Test group, operation and maintenance group
The degree of dimension
- Advanced, intermediate, elementary
- Important, secondary, don’t
Experience dimension
- 3C theory of market strategy
- The 4P theory of market decision making
- High scalability, high availability and high performance
We chose the time dimension and the structural dimension to analyze an example: how to reduce code on-line errors. From the perspective of time dimension analysis, code testing needs to be done before the event, key indicators need to be monitored during the event, and analysis needs to be reviewed afterwards. From the perspective of structure, developers need to do unit testing, testers need to do boundary testing, and operation and maintenance personnel need to improve the monitoring platform.
(2) Deduction
Deductive reasoning refers to making inferences or judgments to reach conclusions based on axioms, theorems or ideas one believes in.
This approach is logically rigorous. Proposition A is true, and it follows that proposition B is true, because the truth of proposition B is contained in proposition A.
Note that being logically rigorous doesn’t necessarily mean that the conclusion is correct. For example, if an idea you believe in turns out to be wrong, then it’s wrong to draw a conclusion.
Standard deductive reasoning consists of major premises, minor premises and conclusion: All birds can fly, and this is a bird, so it can fly.
Deductive reasoning can also be divided into three elements: phenomenon, cause and solution: the phenomenon is the low quality of the developed code, the reason is that there is no unified code specification, and the solution is to develop a unified code specification.
This is a top-down method of reasoning, working down from known axioms, theorems, or ideas. Using this approach requires some experience and accumulation in the area where the problem arises.
2.2.2 Logical progression
Logical progression means that each thought needs to be arranged in a certain order. For example, the time dimension is arranged in advance, in the process and after, and the degree level is arranged in advanced, intermediate and primary. The advantage of such arrangement is that it conforms to the habit of understanding and memorizing.
3 Comprehensive Examples
In the previous chapter, we introduced SCQA and the pyramid principle. In this chapter, we use an example to implement the structured thinking methodology and summarize a closed-loop tool.
3.1 Asking Questions
The first step is to use SCQA to ask questions and elicit answers. The background is that the amount of business data is increasing, the conflict is that the response often times out, the existing system is difficult to support, the question is what should be done to support the follow-up business, the answer is that we should optimize the system, and the answer is the central idea of the pyramid structure.
3.2 Answer
The second step is to use the pyramid principle to organize answers. In the longitudinal structure, we ask three questions in 2W1H:
In terms of horizontal structure, we organized arguments according to certain dimensions. I selected the experience dimension and selected the 3H theory to guide the optimization work in terms of how to optimize, which includes three dimensions of high expansion, high availability and high performance.
High scale emphasizes system extensibility, including clear domain boundaries, appropriate design patterns, rational component abstraction, and compliance with uniform code conventions.
High availability emphasizes the protection of the system. In the face of the nonlinear pressure that may be brought by large traffic, we need to do a good job in degradation, delay, isolation, redundancy, alarm and response to prevent system collapse.
High performance emphasizes the performance of the system. We first understand the system capability by analyzing indicators such as delay, load and pressure measurement performance, and then consider the optimization scheme from the data layer, cache layer, service layer, WEB layer, front-end layer, client and proxy layer.
Because we need to organize and express more information, we can choose to rotate the pyramid 90 degrees, which is just to display the information more conveniently, and logically does not change the pyramid structure.
3.3 Landing Execution
We have structured the answer, now we need to think about how to implement the answer. I think we need to think from the following four aspects.
Team: How many people can contribute to the project, what is the composition of the staff, for example, there are several servers and several front ends, and the amount of manpower directly affects the execution pace.
It is necessary to make clear where to start. For example, when we do system optimization, we can start with an interface that takes the longest time and has the worst performance, and verify the feasibility of the solution with this interface.
Rhythm: Limited by the number of developers, project schedule and other factors, it is difficult to optimize the system in one step. Therefore, we can set several milestones and plan short-term, medium-term and long-term goals, so that the big goals can be divided into several small goals to be realized one by one.
Result: what is the Result of system optimization? What is the output of so much time and energy invested? These are the questions that must be answered. We can examine what expectations are not met, what processes are not smooth, and what hidden dangers still exist.
We combine SCQA with the above four dimensions to form SCQATPRR closed-loop tool, which can help reduce missing links in the scheme and thus form a closed-loop.
4 Article Summary
This paper first analyzes the SCQA structure tool, asking a good question is the first step to solve the problem. After the initial answer is given, we can proceed to the second step of using pyramid structure to organize the answer. The vertical structure should conform to the principle of conclusion first and above and below, and the horizontal structure should conform to the principle of inductive grouping and logical progression. The third step is to put forward the four dimensions of team, tangent point, rhythm and result, and combine SCQA tools to form a closed-loop tool.
It should be noted that the structural thinking tool is just a tool, and the key to solve the problem is that we should study and improve in our professional field, and also pay attention to summarize scattered professional knowledge at ordinary times, so that the combination of professional knowledge and tools will play a greater role. I hope this paper will be helpful to you.
Welcome to pay attention to the public account “JAVA Front” to view more wonderful sharing articles, mainly including source code analysis, practical application, architecture thinking, workplace sharing, product thinking and so on, at the same time, welcome to add my wechat “JAVA_front” to communicate and learn together