The golden three steps to solve the problem: define the problem-break down the problem-classify and group

We often say that there is no silver bullet in software development. Indeed, looking at the software field alone, few methodologies are universal. However, if you go a little higher and jump out of the scope of software, there are some things that are universal, such as the "Tao" that Lao Tzu said.

Okay, "Tao" is a bit big. However, I did have a new discovery recently- I found that "categorization and grouping" play a huge role in our problem solving . The "problem" here is not limited to software design, from daily life and product design to corporate strategy and biological classification. All have its presence.

Why is this? There may be two reasons:

1. Classification and grouping is an important method of abstraction, and we cannot do without abstraction to solve complex problems.

2. Classification and grouping is an important step in structuring, and structured expression cannot be separated from classification and grouping.

Of course, the classification and grouping must first have materials that can be "categorized". Therefore, the complete methodology is like this. I gave him a nice name—the golden three steps to solve the problem: define the problem—decompose the problem—categorize and group .

The detailed operations of these three steps are as follows:

  1. The first step is to define the problem: that is, to be clear about what problem we want to solve?
  2. The second step is to decompose the problem: analyze and disassemble the problem to form multiple sub-problems. This step can diverge as much as possible.
  3. The third step is to classify and group: summarize and prune the sub-problems, and merge the convergent sub-problems into one type of problem.

image.png

As shown in the figure above, after three steps of gold, we can get a structure similar to a "pyramid", which is what we often call a pyramid structure. Depending on the complexity of the problem, the pyramid structure may have three levels, or two and multiple levels.

Will the seemingly simple three-step operation have such a big effect? Don't talk nonsense, just go to the case.

Use in daily life

You go out to buy newspapers. Your wife said that the refrigerator at home is empty. Bring something back by the way. She gave you a list of grapes, oranges, salted duck eggs, potatoes, and eggs. Did you say that's all? She said that you can buy some apples and carrots. When you were about to go out, she said that there was no milk and yogurt at home, and it was best to buy some back.

Do you think you can buy everything that your wife confessed? I think it is difficult because our brain's short-term memory cannot accommodate more than 7 memory items at a time. When more than 5 memory items are exceeded, we will begin to classify different items into different logical categories to facilitate memory .

If we combine grapes, oranges, milk, salted duck eggs, potatoes, eggs, carrots, apples, yogurt. According to the logical relationship, classification and grouping, such as grapes, oranges, and apples as fruits, and potatoes and carrots as vegetables, can greatly help us improve memory efficiency.

Note that the function of classification here is not just to divide a group of 9 concepts into 3 groups with 4, 3, and 2 concepts in each group. Because this is still 9 concepts, what you have to do is to raise an abstract level. , Turning 9 items that the brain needs to process into 3 items.

If you have done this, congratulations, you are already practicing the golden three steps:

  1. Defining the problem: The refrigerator is empty and needs to purchase supplies.
  2. Break down the problem: what do you want to analyze and buy?
  3. Classification and grouping: In order to facilitate memory, the 9 things you will buy are divided into three groups according to their nature, forming the following pyramid structure.

image.png

This is structured thinking. Next time you receive a "need" from your wife, remember to use this methodology, and she will definitely look at you with admiration.

Use in work report

Define the problem

"Xiao Zhang, the customer is dissatisfied with the sales report and inventory report. What are the reasons for you to see." Faced with this typical work problem, how do you plan to deal with it?

Break down the problem

First of all, you must investigate the reasons for customer dissatisfaction. After investigation, you find that customer dissatisfaction is mainly caused by the following reasons:

  1. The reporting period is inappropriate;
  2. Unreliable inventory data;
  3. Too late to obtain inventory data;
  4. The inventory data does not match the sales data;
  5. The client hopes to improve the report format;
  6. Customers want to remove meaningless data;
  7. The client wants to highlight special circumstances;
  8. The customer wants to reduce manual calculations.

Although you have done a lot of work, the investigation is also very adequate. However, if you report these 8 reasons directly to your boss, it is estimated that the effect will not be very good. You can do an experiment by yourself and read the list above for 3 minutes. What can you gain from it? In the same way, your boss will be confused when he sees such a list, and he doesn't know the point.

Classification

So we need to add the third step to further classify and group the questions. We can summarize the 8 questions into 3 groups:

  1. The report contains unreliable data;
  2. The format of the report is confusing;
  3. The report was generated too late to take effective measures

After grouping, we can get the following pyramid structure:
image.png

This structured expression clearly makes the statement of the problem clearer. Leaders can quickly grasp the main points of the problem and make corresponding decisions. Of course, this is to focus on the classification and grouping. For the real report, you have to provide the corresponding solutions, and then let the boss do the "multiple choice".

Use when writing code

You encounter a very complex business scenario, in which a large number of checksum execution operations are involved. This kind of code, without a certain strategy, can easily be written into a big ball of mud.

Define the problem

For example, in our business, there is an operation of putting goods on the shelves, which is a very complicated business operation.

Break down the problem

The decomposition of this kind of business problem is usually the responsibility of the product manager, but as an engineer, you cannot completely rely on PRD . Because the product perspective and the engineering perspective are still different.

For "commodity on the shelf", we have made the following functional decomposition:
image.png

Classification

Similarly, after decomposition, we need to have a classification and grouping process. Otherwise, the tiling of these steps will make the code appear messy and inconvenient to remember and maintain. Through analysis, we can divide the decomposition steps into three stages:

  1. Initialization phase
  2. Verification phase
  3. Execution phase

Through the golden three steps, we can get the following pyramid structure:
image.png

Finally, we organize our code according to this structure, the entire code structure will be clearer, and the maintainability of the code will be much better.
image.png

Use in application architecture

The application architecture mainly solves the problems of module, component definition and the relationship between modules and components.
image.png

From a macro level, the architecture design also follows these three steps. For example, how to layer our architecture, sub-modules, sub-components is doing problem decomposition. Then, at which level the modules and components should belong to, and how to name them, we are doing abstraction and classification and grouping.

After comprehensively considering functional attributes + quality attributes, and then through the golden three steps, we can get the architecture design we want. For example, our COLA 2.0 architecture is also completed under the guidance of this methodology.

image.png

Use in product architecture

Define the problem

"Xiao Zhang, in order to do new retail, we plan to make a smart Internet POS machine. You first do product design."

Break down the problem

Through research, you find that as a POS machine, its core function is cash register and operation management. So at least it needs to include cashier functions, service verification functions, commodity management functions, inventory management functions, and so on.

But if it only meets these functions, it is not much different from traditional POS. In order to meet the requirements of "smart" and "Internet", you can go to Baidu to find out the functions that smart POS should have, which roughly includes the following functions:

  1. Face payment
  2. Support brand marketing;
  3. Support independent marketing;
  4. Smart pricing;
  5. Takeaway docking;
  6. Lottery docking;
  7. Virtual recharge and so on.

In the problem decomposition stage, we should collect as much information as possible, diverge more, and brainstorm more.

Classification

After the divergence, we still have to take it back. Before convergence, let's take a look at what the product framework should contain. Generally, a product framework must contain at least three levels:

  1. User perception layer (in what scenarios and how to reach users);
  2. Function module layer (which function modules realize the core functions of the product and which external platform functions have information interaction);
  3. Data layer (where does the product data come from and where does the product data accumulate).

On the basis of these three levels, we then group the modules in each level. For example, at the function module level, we need to classify the functions so that the scattered function points can be aggregated into larger product modules (reflected in the user interface, which is often the relationship between the first-level menu and the sub-menu).

For example, for the cash register product module of POS, we can provide the following product functions:

  • Alipay cash register
  • Cash register
  • WeChat cashier
  • Pay by face
  • Bookkeeping, etc.

Through hierarchical division and module division, we can get a relatively clear product architecture. Taking smart POS as an example, we can draw the following product architecture:
image.png

Classification is science and art

Through the above case, I think you have already understood the three golden steps: defining the problem-breaking down the problem- the essence of classification and grouping . Among them, the first two steps are relatively intuitive, and the third step is often a key step that is not easy to do well and is easily overlooked.

In fact, it is our human nature to classify and group things. The human brain automatically organizes everything it finds in a continuous way. Basically, the brain will think that there is a certain connection between everything happening at the same time, and will organize these things in a certain logical pattern.

For example, the following picture:
image.png

No matter who it is, at the first sight of the six black dots, they will think that there are two groups of ink dots, three in each group. The main reason for this impression is that the distance between some black dots is greater than the distance between other black dots.

Space is a relatively intuitive logical relationship. However, not all logical relationships are so explicit. In fact, many concepts will be cross-coupled in multiple dimensions, which brings great challenges to our classification and grouping.

Biological taxonomy

Biological taxonomy is usually called taxonomy directly. It is a basic science that studies the similarities and differences between biological groups and the degree of similarities and differences, and clarifies the genetic relationship between organisms, genetic inheritance, species evolution process and development law.

The most popular classification is the Five Realms System. It usually includes seven main levels: Kingdom, Phylum, Class, Order, Family, Genus, Species. Species (species) are the basic unit, closely related species are grouped into genera, closely related genera are grouped into families, families are under orders, orders are under classes, classes are under gates, and gates are under boundaries.

However, taxonomy is not a very rigorous "science". As Bill Bryson said in "A Brief History of Everything":

Taxonomy is sometimes described as a science, sometimes as an art, but in fact it is a battlefield. Even today, that system is more chaotic than many people think. Take the division of doors that describe the basic structure of living things as an example. Many biologists insist that the total number of doors is 30, but some believe that there are 20 doors, and Edward's "Diversity of Life" book put forward the number as high as 89 doors.

This shows that the classification is not as simple as we think. We observe things from different perspectives, and our understanding of the problem is different, and the resulting classifications are likely to be completely different.

Especially when there are crossovers between concepts, classification becomes more difficult. For example, in your notebook, there are two parallel categories: "reading notes" and "philosophical notes". At this time, you read a philosophy book, then you will put the reading notes of this book in which category What?

Principles of Classification

The basic principle of classification is the MECE law. Seeing the world through the structure is the MECE law .

The MECE law is the abbreviation of mutually exclusive collectively exhaustive. It is a thinking tool proposed by McKinsey consultant Barbara Minto in the "Pyramid Principle". It means "independent and completely exhaustive" and is often called "non-overlapping" , Do not omit".

image.png

The quintessence of the MECE principle is to analyze a thing in a full-dimensional manner, without any omissions or repetitions.

We can use the existing structured thinking model (classification framework) to analyze the problem and ensure that there is no duplication or omission between each layer of elements.

Classified thinking model

In fact, we have already mentioned some classification thinking models above. For example, in application architecture, we usually have presentation layer, control layer, application layer, domain layer and basic implementation layer; in product architecture, there are user perception layer, function module layer, and data layer. These frameworks can effectively guide our work in their respective fields.

There are many classification thinking models similar to this, such as:
1. The "4P" model for formulating marketing strategies, namely Product Strategy, Price Strategy, Place Strategy, and Promotion Strategy ( Promotion Strategy).

2. The "5W2H" model for analyzing the problem, namely Why, What, Who, When, Where, How and How much.

3. Thinking about the "7S" model of organizational strategy, namely, business strategy (Srategy), organizational structure (Structure), operating system (System), business style (Style), staff (Staff), organizational skills (Skill) and shared values ​​( Shared value).

4. The SWOT model for analyzing competitiveness. SWOT analysis represents the analysis of the strengths, weaknesses, opportunities, and threats of an enterprise (Strengths), Weakness (Weakness), Opportunities (Opportunity) and Threats.

5. The SMART model of setting goals, that is, setting goals should satisfy certainty (Specific), measurable (Measurable), achievable (Attainable), relevance (Relevant) and time-based (Time-based).

These thinking models are valuable experience summaries, which are equivalent to helping us do the third step of "classification and grouping". We only need to fill in the elements according to the framework established by the model.

So make good use of the model and make use of the framework. It can greatly improve our problem-solving efficiency, and at the same time help us do more comprehensive and structured thinking. Do "no omissions, no repetitions" .

Guess you like

Origin blog.csdn.net/significantfrank/article/details/100526155