Principles. Decomposing Problems

12009

Overview

Complex business problems often contain many uncertainties that can affect the speed and quality of problem resolution. Before implementing a solution, breaking down the problem into smaller components allows the team to better understand the business and identify risks earlier. Enterprises should firmly believe that even large issues or extensive changes can be decomposed into a series of smaller changes, allowing for quick resolutions and feedback, thereby eliminating risks as early as possible. Instead of designing a large number of features and planning a one-time release that lasts for months, it is better to continuously experiment with new ideas and release them independently to users.

Application

When developing an e-commerce website, if the entire project is viewed as a single problem, it becomes very complex, encompassing many parts such as user management, product display, shopping cart management, order processing, and payment processing. Attempting to solve all these issues at once can lead to a chaotic and unmanageable development process.

In this case, the "decomposing problems" principle involves breaking this large problem down into a series of smaller problems. For example, each part such as user management, product display, shopping cart management, order processing, and payment processing can be treated as a separate issue and addressed individually. This way, each smaller problem becomes easier to understand, manage, test, and fix. Once all the smaller problems are resolved, the entire large problem is also solved.

The "decomposing problems" principle is also widely applied in object-oriented design. In object-oriented design, a large problem is typically broken down into a series of smaller objects, each with its own responsibilities and behaviors. This allows each object to be designed, implemented, and tested individually, making the overall design and development process of the system clearer and more efficient.

Decompose and Rapid Experimentation

"One-stop" solutions often require high implementation costs, and the actual effects they bring are highly uncertain. Due to the high upfront costs (i.e., sunk costs), even if this solution fails to deliver the expected results, the team is often reluctant to abandon it; decision-makers typically choose to retain it or continue optimizing it, leading to unnecessary product complexity and maintenance costs.

If we can shift our thinking and utilize more low-cost rapid experimentation methods, we can try more approaches and iterations at the same cost, which means potentially greater returns. Although rapid experimentation may result in more failures, it can also yield more successful ideas within the same cost framework.