Rubberducking
Rubberducking is the simple technique of explaining your code, or whatever you’re working on, to a rubber duck and, in the process of explaining it, finding the answer yourself.
Have you ever been called over to someone’s desk to help them solve a problem, and as they explain the problem to you or demonstrate it, they figure out the answer themselves? It happens all the time to me, particularly when someone's showing me how something doesn't work, and it magically works just by having me watch over their shoulder. The rubber duck technique is as simple as that, except that instead of calling someone over, you can simply replace the person with a rubber duck, teddy bear or heck, even your stapler.
Rubberduck debugging is a term from software development where this sort of scenario happens a lot. Rubberducking is surprisingly effective and way cheaper than hiring a contractor for the day.
There is also the related empty chair technique for psychotherapy.
Rubberducking is not to be confused with "rubbernecking", which is slowing down to look at an accident as you drive past—a common cause of traffic jams.
Also see: