Have you ever started to ask a question and stopped halfway through because you realized that you answered your own question simply by asking it?
Often, a thorough and detailed question will reveal its own answer without ever needing a response from someone else.
Welcome to the concept of Rubber Duck Debugging—whether you are familiar as a developer with this problem-solving technique or are hearing about it for the first time.
Rubber ducking is the problem solving process by which questions are formulated out loud (often by talking to a, you guessed it, rubber duck) in as detailed and thorough a manner as possible with the understanding that you may answer your own question simply through vetting your issue.
(There should be a footnote here: Rubber ducks not required.)
What matters with rubber ducking is not the object itself—you could talk to a teddy bear or a coffee cup or that Troll doll that’s been collecting dust on your desk.
Another term for this method of problem solving is cardboard programmer.
What matters with this technique is the talking through of the issue in order to get your brain thinking about the solution in a new way. In order to articulate your message, speaking forces you to organize your thoughts, assists in uncovering assumptions, and engages different parts of your brain.
So, become best friends with your nearest inanimate object and get to talking.