When I have a programming problem I talk it over with someone who knows nothing about programming. Often times they ill provide the incite I need to solve the problem.
I believe people call that the Dr House Effect.
And by people, I mean me, because I just made that up.
And typing up my problem to someone else online who has no idea about programming at all always helps me. Usually they have nothing to say, but just the process helps.