There's a great post on Creating Passionate Users about "teddy bear programming" and "rubberducking." What exactly are these toy-named methodologies? Well they are actually one-in-the-same.
Many times people (me included) find that they can help solve their problems if they have to explain those problems out loud. In the post example, a person with a computer problem had to explain the problem to a teddy bear sitting on the help center desk before talking to a support person; similarly you would bounce programming problems off of a rubber duck before taking them to the programming team. The point is simply this (an I'm stealing it from the CPU post):
It's the talking that matters. Explaining your problem out loud is often enough to shake things loose in your brain, expose bad assumptions, and cause you to see things in a new way.
Pick your favorite toy and try talking out your problems to it. Even better: find someone who knows nothing about what you are doing and try talking out your problems to them; in many cases because you are trying to explain the problem to a person who has no idea what you are talking about you may just solve the problem -- just remember that it is rude to run away mid-sentence.