In my time as a developer and leader of other developers, I’ve focused a lot of my effort on understanding how people diagnose and solve problems.
This is an extremely broad topic, obviously, but still some interesting things have emerged as a fruit of my intrigue.
Here’s an incomplete list of things that make problems… well, problematic, for humans.
Mixing up recognition with diagnosis
Confusing symptoms for roots
Trusting narrative over facts
Irrational, but popular, beliefs
Each of these is hard to see if you’re in the middle of it. Extremely hard to predict. Easier to see in others, but also elusive because none of these problems presents itself perfectly.
Unfortunately this post won’t give you a silver bullet, but here’s a few things to try.
Pair awareness with humility. Know that these things exist, and that you are vulnerable to them because you are human.
Seek truth, not victory. Truth is it's own real victory - the efficient and rational victory, different from a perception-only kind of vanity-victory.
Don't despise questions. Questions are often uncomfortable, difficult to answer, and may even seem like a waste of time. They are not. Generate more questions than answers.
Always remember the dark matter. We see very little of what's going on at any point in time. Most of the time, our perception is less than the tip of the iceberg. Be happy and quick to blame randomness for a significant portion, if not all, of your successes and your failures, and then see if you can draw out similarities after you've accepted the role of the dark matter.
Fight echo chambers by making more relationships and seeking wider experiences. Typical routines and limited relationships will keep your mind in one lane. Get into another lane. Try new things, meet new people, read new books, take a new way home. Allow randomness and serendipity into your life; not because those relationships must materialize into new opportunities, but because your brain is healthier with the variety.
Separate analysis from sense-making. We crave sense-making. We instinctively search for causes to avoid future threats and compare our own situations against a good or bad outcome. In order to keep analysis and sense-making separate, use frameworks and cross-checking for analysis that doesn't produce a "narrative." (Don't forget dark matter: there may be no sense to be made.)
Beware of certainty. Notice I didn't say "beware of confidence." You can be confident, and still uncertain. You can also act in bravery. But certainty is often a sign of turning something that is gray into something that is black or white; this kind of dichotomization, when done many times over, can generate a lot of error.
Meditate on the fact that good people fail often. We don't read failure stories often enough to realize just how common they are. Very few mediocre stories make for good books, or documentaries. Remember that sometimes, despite all of your effort, failure or lackluster outcomes can still happen. Be thankful for them. If you don't choose to be thankful, you only hurt yourself.
This is a short list in a category where lists don’t solve the problem. However, if you’re reading this right now, I hope you leave this page encouraged and equally humbled at the reality of the complexity of problems we face every day. Give yourself, and others, grace. When you feel like you’ve done that, double it. We all need more grace.