Troubleshooting Rule #6: Who haven't you talked to?
Maybe you’ve been troubleshooting for a while on your own. Or maybe you’ve discussed the trouble with someone else, but not the right someone else. Who could you talk to?
The simplest form of this is rubber duck debugging—where you tell your problem to someone, but it doesn’t really matter who it is, or even whether they respond at all, because the act of describing the problem reveals the solution in some way. So, you could talk to a rubber duck and it would still be useful.
Another form of this is the classic RTFM - the “manual” here is documentation written by a person, and was an attempt to capture things that are important and relevant, so why not go back through it carefully, line by line, and ponder what could apply to your situation? Of course, manuals are written decreasingly often now, and have less information in less precise language, but there are some realms where you can still find a good manual (data sheets for microcontrollers are a useful holdout, if you can find them in English).
This rule also applies when you have discussed the problem with someone who is handy—maybe your immediate coworkers—but there’s someone else who could really give you insight—an expert in a particular field, or the owner of that module, or someone who knows the person well with whom you’re in conflict, or someone who’s had a similar problem in the past. Many programmers have already checked on Stack Overflow by this point in the process, but is there another way to find an even more “right person” to ask?
In interpersonal contexts, it deserves to be said: it is very common for smart people to try everything except talking honestly to the person who is most directly involved. It’s also important to talk in a useful way; how to do that is a huge topic, but I personally find Non-Violent Communication very useful and a good starting point if you’re having trouble.
Who’s at the crux of this issue?
Last rule: Simplify!