Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

When I am in a code or design rut, I tend to find a non-dev coworker to discuss the problem with. It forces me to explain the problem in great detail and I'll usually find something I missed in the process.

What are your "unsticking" methods?

share|improve this question
    
Will take a walk along and chat about some thing irrelevant to technology come back again read the complete requirement and think in a different way to achieve it. I do the same and reasonably succeeded. –  Tech Jerk Sep 3 '10 at 5:31
    
Browsing Facebook :) –  Antoops Sep 8 '10 at 13:48
    
When I feel stuck on a project, I read tech blogs. –  jean27 Sep 13 '10 at 9:22
    
So you think non-dev coworkers are rubber ducks? :p –  Dimitri C. Sep 13 '10 at 9:41
    
Seems obvious to me: write a question of StackOverflow or any other appropriate forum :) –  nanda Sep 13 '10 at 10:08
show 2 more comments

closed as off topic by Yannis Rizos Apr 4 '12 at 12:43

Questions on Programmers Stack Exchange are expected to relate to software development within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

12 Answers

up vote 17 down vote accepted

Some of my tactics:

  • Explain the problem to someone, or even no one. My girlfriend used to explain problems to a potato she kept.
  • Work on something else for a bit (if opportunity allows)- some other functionality or even another project. Get your ming off the current project. A lot of times problems that seem impossible at 4:30pm seem trivial at 9:30 am the next day.
  • Go to the pub (if possible). Same principle as above.
  • Beat your head against it. This isn't often that productive for solving the problem, but at least for me, I tend to learn a lot. If my gridview isn't auto-sorting, I'll try and read everything I can about the problem. It'll still take me 3 hours to solve a stupid error on my part, but by the end, I'll have learned everything there is to know about gridviews and how they bind to data- I'll be able to solve any number of similar problems in the future.
  • Get another input- preferably someone who knows at least something about the context of the project. Most of my errors are stupid ones that only require a few minutes from a second set of eyes to solve where it would take me hours.
  • Isolate the problem. I keep a folder labeled "proof of bugs" where I keep a pile of project that each reproduce a specific issue outside the overall context of the large, complex project. This can be a little time consuming, but it allows you to narrow down the cause of the issue independent of the bazillion interfering factors of a large project.
share|improve this answer
6  
+1 for the potato idea. it's commonly known as rubber duck debugging: en.wikipedia.org/wiki/Rubber_duck_debugging. –  GSto Sep 8 '10 at 19:13
add comment

I'm a big fan of stepping away from the computer and doing something else for a while. Fresh eyes and a clear brain work wonders on a problem.

share|improve this answer
add comment

I imagine the person in my life who could best help me solve the problem, and assuming they aren't available on short notice to help me, go find a place where I can be alone, and explain the problem out loud as if I'm talking to that person. Eventually, in the course of trying to convince them that I /really/ have a problem, I usually come to the same advice that they would have given me.

share|improve this answer
add comment

Talking it through with someone is the best solution, but often just stepping away from your computer for a while and looking at it with fresh eyes helps too.

Also a lot of my design insights often come when I'm taking a shower or a bath :)

share|improve this answer
add comment

I try to have two or three decently sized tasks before me at all times, so if I get stuck on one, I can take a break and work on the other. This allows me to be productive towards some goal, even if it isn't my primary task at the time. However, if I hit a wall really hard, sometimes I just need to walk away - take 15 minutes, grab a cup of coffee or a soda, take a walk, etc.

share|improve this answer
add comment

Keeping some good music (slow volume) so you keep in the mood.

When you feel that you are not able to concentrate on whatever you are doing. Trying to move your legs or tap them or bounce them for a while that will make your blood flow wild again. The reason for you becoming disturbed is the reason so some tensions or lack of blood flow in body as the body is staying in a same position for a time. Try to circulate your blood better and u get your job done.

Try to talk to someone about what you are doing (someone close to you, in my case my fiance). Its not important if the other person understand it or not but get a good feel for sure.

If you get stucked get your pen paper and get the thing visualized with some boxes, names, arrows etc try to understand the flow. Rethink over it.

Get something to eat and just sit and eat for a while an idea might struck you :P.

Get a screwdriver and open you machine or laptop or notebook and try to find out what wrong with it...??? why its not giving me expected result :P (kidding)

The one that i personally do most of the time when i get stuck, funny though - get a mirror start looking on to it. Make faces, talk to myself, start wondering keeping it in front of me. keep staring at myself. That help me out to get fresh again and increase my power again. Wierd eh....but works for me.

share|improve this answer
add comment

I try writing about it. First I collect all the the relevant information and list everything I've considered and why it doesn't work. I find it much easier to think when I have it written down all in front of me.

share|improve this answer
add comment

If you are working at home, you can go do jogging outside or take a walk. It's good for your health and it helps to think about the problem on which you are stuck on. If find this to be effective, because it helps me get a better overview of the problem. Sometimes your just focusing on the wrong part of the problem and when you get a better overview of the problem, the solution is easier to find.

share|improve this answer
add comment

Good sleep helps.

Sometimes I have been stuck on a problem and worked out the solution in my head while I sleep. I literally wake up with an aha solution. Sometimes you just need to reset your brain.

share|improve this answer
add comment

I'm a fan of changing my work location, even if for only a couple of hours. Sometimes just a little nudge like that will help me see the problem/project with a different view. My favorite spots are my deck, the library or a conference room with a whiteboard to myself.

share|improve this answer
add comment

Just as another tool, you could get a set of the Oblique Strategies cards.

Oblique Strategies [...] is a set of published cards created by Brian Eno and Peter Schmidt first published in 1975, and now in its fifth edition. Each card contains a phrase or cryptic remark which can be used to break a deadlock or dilemma situation. Some are specific to music composition; others are more general.

The authors are/were musicians that used the cards to foster creative thinking.

You pick a random card and get a 'dilema' statement. For example:

"Remove specifics and convert to ambiguities"

Although some times they are just nonsense if you are not trying to compose music, the simple exercise of trying to understand what the card suggest might help you unlock your mind from your current thoughts and help you think from an unrelated, unexplored path.

There are some downloadable versions, and also a couple of web sites where you can read them online. I'm pretty sure you can get them also as an iPhone or Android app, but I haven't looked for them. I have them as a Mac OS X Dashboard Widget called 'Oblique', but I just searched for the link and it seems it is not online anymore.

share|improve this answer
add comment

One of my client said, when he stuck on projects, he used to feel like someone is pulling down his trousers. That was fun.

I move out of the place, speak to people, read..mostly it worked when I come back to sit and solve.

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.