Skip to content

Becoming unstuck

In my previous post I talked about being bored and dealing with that, now its time to talk about being stuck and how to deal with it effectively.  For me there is a few flavors of being stuck:

  • The brick wall: you’re working fine and then suddenly you’re stuck and you’ve no idea how to continue.
  • Recursively stuck: this one is hard to spot. You’re trying solutions to something but each attempt takes so long to work through that by the time you’ve tried it you’ve forgot what started that attempt, you then try the first thing that comes to mind which often is the last thing you tried, repeat until you notice…
  • Too many options: something that appeared straight forward on closer examination has multiple potential solutions and you’re not sure which.

My approach to becoming unstuck is as follows:

  • Take Notes: As soon as I realise I’m stuck I start taking notes: what I think I know, what I suspect, what I’ve tried and what I want to happen.  Doing this helps me prevent myself getting bogged down by attempting the same solution repeatedly. Also by recording what you think and what you’ve tried you give yourself an agenda of potential solutions to work through as you attempt to solve the problem, as once you’ve ruled everything on your list out what you are left with is usually the issue, although at times that may seem ridiculous!
  • Ask Google: There are very very few new problems in the world that haven’t already been encountered by someone else and chances are there is something Google can find for you that may give you the pearl of insight you need to solve your issue.
  • Ask the community: Chances are unless there is some sort of general community for the language and/or technologies you are dealing with, which you can ask via email, forums or IRC about your issue.  A lot of the time Google will give you results from these communities if their archives are somewhere the Google spiders can reach.
  • The cardboard programmer: This solution sounds silly but it works, find anyone (they don’t need to be technical at all) and then step through your problem with them talking over the source code. A lot of the time you will realise your error mid way through your explanation!
  • Ask an experienced co-worker: Find a more experienced co-worker and ask them about your problem in an intelligent fashion e.g, giving details on the issue and what you’ve tried.

My golden rule for becoming unstuck is:

  • Never be stuck for long! I can’t emphasise this enough, this is an industry where programmer productivity is the number one priority, not solving the issue yourself.  If you’re totally stuck don’t sit for more than an hour (ideally half an hour or less) before you start involving more experienced people in finding a solution.  Don’t believe me?  Watch the most productive programmers around you, I would put money on them never sitting for long if they are stuck before they start asking for help, it is not a weakness, it is simply more efficient!

One Trackback/Pingback

  1. Note Taking at Endlessly Curious on Friday, September 26, 2008 at 03:49

    [...] taking is something I’ve touched on before as part of problem solving when stuck, however I believe it is a topic that deserves a post of its [...]

Post a Comment

Your email is never published nor shared. Required fields are marked *
*
*