Canary in the code mine

Problem solving

Problem vs exercise

If you have a problem and take away the information that is used to formulate the problem, it becomes an exercise. In the real world success depends on the ability to use the information required to formulate the problem. In schools, children are taught how to solve exercises that are given to them--or worse, they are taught to solve exercises in the way the teacher expects them to, killing all the creativity they have. But in the real world you have to take the problem and formulate it in a way so taht you can do something about it. Problem vs Puzzle example: statistician friend Problem vs Puzzle example: daughter

The word "problem" should not have adjectives in front of it

One way to take away information that could be useful to solve a problem is by putting an adjective in front of it and calling it a marketing problem, engineering problem, architectural problem, economic problem, moral problem, frontend problem, backend problem. Those adjective tell you nothing about the problem, just the persons point of view who is looking at it. A problem is just a problem, and in order to solve it, you have to look at it from a wide variety of perspectives, and find the most effective one. We don't want handicaps when solving problems. In order to solve problems we have to look at it from different points of view.

  1. Absolution: ignore the problem, and hope that it will go away, solve itself.
  2. Resolution: appears in different ways
    • usually a modification of a solution to a different similar problem you had, that gets a result which is better than doing nothing (satisficing).
    • find a source of blame, and remove it.
    • continually fighting fires, but not tracking them to their source.
    • this is how most problem solving is done in the world.
  3. Solution: do something that yields the best possible outcome, or approximates it as closely as possible, use scientific research, experimentation, quantitative analysis, and optimizing techniques
  4. Dissolution: redesign the system that has the problem or its environment so as to eliminate the problem.
    • Dissolution may incorporate all the other ways of solving a problem.

Nature does not come to us in disciplinary form. Phenomena are not physical, chemical, biological, and so on. The disciplines are the ways we study phenomena; they emerge from points of view, not from what is viewed. Hence the disciplinary nature of science is a filing system of knowledge. Its organization is not to be confused with the organization of nature itself...In brief, the need to assemble knowledge of our world into one cohesive view derives from the necessity to take it apart in order to penetrate it in depth -- Russell Ackoff: On Purposeful Systems

Four ways to solve problems

Champion paper example

Russel Ackoff example of helping champion paper company The video above is an example of how Prof. Ackoff solved a problem for a paper company, from here on I will reference the story from the video, to illustrate Solution, and Dissolution. Prof. Ackoff was hired by the plant director to solve the problem with the symptom of decreased productivity in the plant. Since he was a known pioneer of operations research at the time, the director asked him to solve it with optimized scheduling. This is the analytical approach to problem solving: Solution. However what Prof. Ackoff eventually did, is solve it with Dissolution, by going up into the containing system (the whole company) understanding that the increased product variety was the actual cause, and find a way to reduce it, by restructuring the compensation of salespeople. He changed the embedding system in a way that the problem dissolved Some important notes:

Databases example

Most RDBMS espouse ACID guarantees. (I say espouse, because they don't usually deliver on that primise)

So it seems that we are torn between Scylla and Charybdis

Most of the problems and complexity that exist in traditional DBMSs was designed out of Datomic.