Solving Complex Problems

From Javul
Revision as of 22:32, 25 May 2018 by Usmaan (talk | contribs) (Created page with "==Effective approaches for solving complex problems== Solving complex problems is something that has been addressed in many other places. This page is just meant to give some...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Effective approaches for solving complex problems

Solving complex problems is something that has been addressed in many other places. This page is just meant to give some general advice for solving complex problems, why complex solutions are needed for solving complex problems, how problem-solving evolves from a simple to a complex solution and some general tips.

To understand complex problem solving, we can look at the example of anti-spam. Assume we're in the era when spam just started. At the time spam was simple and a set of a few rules was enough to deal with most of it. As time went on, spamming methods changed and evolved and anti-spam had to change and evolve in response. New spamming techniques were observed over time and anti-spam was adjusted accordingly. Compared to original anti-spam rules, today's rules are complex. It is the only way to deal with spam of different types that use new spamming techniques. No matter what, sometimes valid email gets marked as spam and that doesn’t mean we should get rid of anti-spam rules. People accept a solution that works most of the time and fails for a small percentage of the time. We can take the example of a tree. There are many branches and paths. If the anti-spam solution in the early era of internet was compared to the today's solution, we can compare a small plant to a large tree. Complex problems have complex solutions and almost always there will be some cases which cannot be treated as intended and that is ok and it doesn’t invalidate the solution.

Similarly, complex problems in the real world can only be solved using a multi-faceted complex system that starts out simple and evolves continuously over time as new problems are observed.

In today’s era, we cannot use simple black/white rules to deal with spam. This would result in a lot of false flags, more than current levels. A complex system is necessary. Likewise we cannot use simple methods to solve complex problems in other areas of life although our solutions will start simple. As we work on the solution, it will get more complex with time.

We cannot reject a solution because new problems are observed or because there are some situations where the solution doesn’t work. We have to be willing to evaluate multiple solutions at the same time. We have to expect that new problems will always come up during problem solving. One wrong and short-sighted approach is to reject a solution because it does not immediately solve the main problem. The correct approach to complex problem solving is to be persistent and explore all possible options and paths and only give up on a certain path when we know for sure we have exhausted all possible options.

A solution should not be rejected because it does not apply in another separate situation.

Solutions should not exclude satisfying sizable segments of the population. They should be applicable to a wide range of people, not just to a small segment of the population. In other words, multiple solutions should be implemented to cater to different target audiences.

Complex problems take a long time to solve and they are often solved in stages. Sometimes a problem takes 10’s of years to solve and may involve multiple generations. For example if a solution has 20 different stages we cannot implement stage 7 before implementing the previous stages. Often times people resist implementing big changes because they feel threatened in some way or they disagree with the solution for whatever reason. We have to be careful. We must work on the first stages of a problem and we have to be cautious about trying to implement certain solutions too early. With problem-solving comes the necessity to understand the environment and the people involved, the variety of opinions that exist and how to best work as a team in the forward direction at the best possible speed and not risk alienating team members and segments of the population and therefore impeding progress.

Here are some general tips for problem solving:

  • Be persistent and believe that solutions can always be found or things can always be made better.
  • Realize that complex problems have complex solutions
  • Detach your personal biases and opinions from the situation. Think with an objective rational mind.
  • Focus on problems at hand. Reduce personal conflicts and keep them out of the situation.
  • Accept that others will always have views that are different from yours. Don’t let that affect cooperation and teamwork.
  • If you're passionate and strongly determined to solve the problem, you will have no issue preparing for a long fight. You realize that the result will be worth it.
  • Keep your eyes on the goal. Don't let anything distract you or affect your energy.
  • Take care of yourself, take breaks and make sure your mind is refreshed when you need it.
  • There will be some cases where the current solution doesn’t work. Treat that as a separate problem. A problem/solution ‘tree’ can be created where sub-problems are treated separately successfully. After we’ve tried our best, we’ll still find some cases where the solution doesn’t work. That is ok and is not a reason to invalidate the full solution tree.
  • Different segments of the population may need different solutions. We don’t have to use one solution scenario for everyone.
  • Understand differences of opinion and think about how to work as a team while keeping your eye on the goal.

In short, we have to be persistent, flexible and open-minded for finding solutions.

Problem Tree

Any complex problem can have one or more solutions and usually there will be one solution that works the best. The main problem can be broken down into smaller sub-problems which have to be solved. We need an interactive, graphic interface to help visualize problems and understand them better. People can define a main problem and suggest solutions try the different paths to the solution and figure out which path is the best and leads to the best solution.

The diagram below shows a problem tree. A problem (P1, red in the center) has 3 viable solutions (S1,2,3 colored in green). Intermediate solutions are denoted by orange nodes. Grey nodes are dead ends, meaning no further progress was possible from those nodes. There may be one best solution. It is up to people to decide what these paths are and which solutions are the best. As an example, S2 is assumed to be the best solution for this problem.

(DIAGRAM)

In most situations, problem P1 Is only one node in the problem tree. There will be multiple problems connected to each other. Different solutions to one problem affect how other problems can be solved.