Or, “What seems to be the problem?”
In this blog post, I will attempt to share some of my current thoughts and related ideas on “problem-solving”.
Problem-solving begins with problem-understanding
Anyone who has visited a doctor may have heard them ask, “What seems to be the problem?”. I have.
To me, one of the interesting things about that question are the words “seems to be”. Those 3 little words can mean a lot of different things. They might be intended and/or interpreted as polite, detached, reassuring, derogatory, and more.
However, when a doctor asks “What seems to be the problem?”, it might mean that they are just beginning to probe in order to discover the problem symptoms, uncover the problem causes, and diagnose the true nature of the problem so that they can provide the best treatment or cure. The doctor recognizes that 1) what seems to be the problem might not actually be the problem, and 2) before attempting to solve the problem, they should first understand the problem.
There are many strategies and techniques for understanding a problem. However, at a high-level, problem-understanding is simply spending time and effort to deeply and sufficiently investigate, analyze, and truly comprehend a problem.
Problem-understanding is important part of problem-solving and is recognized by scientists, engineers, and many more professional problem solvers. And, in my opinion, problem-understanding should be an important part (and start) of any software professionals approach to problem-solving, as well.
However, in my experience, problem-understanding is frequently neglected.
Purported and Primary Problems
In my experience, problem-solving often begins by asking “What is the problem?” (or worse, claiming “I have a solution!” - both of which suggest that problem-understanding is complete), and ends with shallow and insufficient problem-understanding.
Sometimes, what seems to be the problem isn’t really the problem, at all. Sometimes, what seems to be the problem is actually, only superficial symptoms, signs, manifestations, or indicators (what I call “Purported Problems”) of other underlying, causal, or root problems (what I call “Primary Problems”).
Neglecting problem-understanding is a problem itself because it can put focus on only addressing Purported Problems, rather than Primary Problems, which could result in Specious Solutions.
Specious Solutions and Real Resolutions
In my experience, when problem-understanding is neglected, and focus is put on addressing only Purported Problems rather than Primary Problems, it usually results in ineffective, temporary, or sub-optimal solutions (what I call “Specious Solutions”).
These Specious Solutions are referred to by other names, as well, like “quick-fixes” (expedient but temporary solutions which fail to address underlying problems), “kludges” (hastily improvised and poorly thought-out solutions to a fault or ‘bug’), or “band-aids” (makeshift or temporary solutions to a problem).
Sometimes, Specious Solutions can actually be harmful, counter-productive, and exacerbate a problem. However, other times, Specious Solutions can be ok. Ineffective, temporary, or sub-optimal solutions might be reasonable goals in some contexts.
However, if more effective, permanent, and optimal solutions that address Primary Problems (what I call “Real Resolutions”) are the goal, then more deep and sufficient problem-understanding may be necessary.
Purported Problems are myriad, as are their Specious Solutions. I’ve encountered many of each throughout my software testing career, such as “We’re finding too many bugs”, “The tool doesn’t allow multiple work assignments”, “We’re running out of money”, and “There is a bottleneck in the process during review”.
On the surface, each of these problems might seem to be evident, and the solutions might seem to be obvious. However, in each case, problem-understanding was neglected which put focus on only addressing Purported Problems, and resulted in Specious Solutions (“reduce testing”, “find a new tool”, “borrow more money”, and “eschew review”, respectively and sadly, all true). Perhaps had problem-understanding not been neglected, it might have instead led to the discovery and address of Primary Problems, and resulted in Real Resolutions.
In my experience, many Purported Problems are caused by just a few Primary Problems that are often related to some very fundamental concepts. Focusing on and addressing these Primary Problems through increased understanding of these fundamental concepts has led me to more Real Resolutions.
Purpose: Is considering “why” before “what”, “how”, “who”, or “when” important?
Models: What are models? What are their characteristics, benefits, and limitations?
Knowledge: What is explicit, implicit, and tacit knowledge? How are they different and why does it matter?
Wants, Needs, Expectations, and more: What does it really mean to want something? To need something? What is the difference? What are different types of expectations? And what about ability, justifications, appropriateness, deservedness, and other considerations?
Trade-offs: Why is compromise important? What should you balance, and how?
Relativism: Why should you consider perspective?
Context: Do circumstances matter? And if so, why?
Algorithms and heuristics: What are different problem-solving approaches and when are they appropriate and useful?
Cognitive Biases: What are these mistakes in reasoning? How do they work, what are their effects, and how can you learn, identify, and manage them?
Communication: What are the technical and social aspects of imparting and exchanging information?
Miscommunication: What causes it? What are the effects? And how can you identify and avoid it?
Linguistics: Words matter. How can language help you better understand others and be better understood?
Semantics: Why is the relationship of words and meaning so important?
Who makes the rules? Which dictionary should you use? Is there a difference?
How are words made? How do they change?
What are literal and figurative meanings, and how can you identify each?
Why are some words/meaning disputed, and why is it important?
What are the advantages and disadvantages of labels (names, categories, stereotypes)?
What is reification, and how can it be harmful?
Shared language: What are the benefits and limitations of a common language, and how is one created and shared?
Metaphor and analogy: How can understanding something in one context help understanding in another?
Improv: How can principles of improvisation help in non-improv contexts?
Oops-ortunity: What is the value of looking for and finding the good in the bad? How do you do it and how should you react?
Today is the Day: How and when can focusing on the present be advantageous?
Create a Shared Reality: How can you effectively create a useful model?
Share a Created Reality: How can you best communicate a model with others?
Yes, And: How can agreeing and building on ideas be beneficial?
Explore & Heighten: How can reasonable & unreasonable reactions inspire?
Listen: What is the importance of listening? What is “whole body” listening?
No Driving: What are cognitive biases? How can you identify them, how do they affect you, and how can you manage them?
Wait for it…: What are the benefits of “pausing” and reflection, and when should you do it?
Questions: What are the advantages and disadvantages of different types and timing of questions?
The Spice of Life: What is visible and invisible diversity, and how can it help make a stronger team?
Know the Performers: What are the benefits of empathy and truly knowing your coworkers?
Know the Characters: What are the benefits of knowing your customer archetypes , and how to do it?
Focus on the Relationship: Why is emphasizing the relationship between characters essential?
Know the Audience: What are the benefits of perspective and knowing your customers?
Know the Environment: How can considering your physical and virtual working space help?
Get Ideas: What are different ways to generate ideas?
Contemplate Death: What are indicators of a good/bad performance, and what can you do about it?
Rehearsal: How important is practice to developing knowledge and skills
I've found that better understanding of these fundamental concepts has helped me 1) more deeply and sufficiently investigate, analyze, and truly comprehend problems (problem-understanding), 2) address underlying, causal, root problems (Primary Problems), and 3) provide more effective, permanent, and optimal solutions (Real Resolutions).
And so, much of my study, offerings, and work are focused on these fundamental concepts in an effort to help others, as well.
Whether learning, training, or consulting, I always try to begin with “What seems to be the problem?”