compulsory rests for code monkeys

im a pretty good coder. i can code pretty much anything, and it turns out pretty good most of the time.

but one thing that keeps popping up is I find myself too close to the problem. I get this kind of tunnel vision thing happening, where I see a complex solution and go for it. And my mind gets taken up with the complexity of implementing the solution. And at the time, it appears the only solution to the problem.

unless I go for a walk. If I go for a walk, or a run, sit in a park, soak up the ‘sun’,  often a new, more elegant, simpler solution will just present itself. I don’t even need to look for it, it just turns up. I sorta go “Hey man, I was expecting you”, and I implement the new solution, it works and is orders of magnitude better.

So I’m trying to train myself to go for more walks while developing. Sit in more parks when I have something complex to do. Its sometimes difficult, because as with my previous post, its impossible up-front to always appreciate the complexity of a given task, but I’m trying. Because the solutions found this way save massive amounts of time and money, and exponential amounts of maintenance down the track.

Now, imagine what this looks like to anyone ‘managing’ me.

“See you!”, I call cheerfully as I wander out the door, “I’m off to sit in the park for an hour or so… I’ll still be charging BTW!”

compulsory rests for code monkeys

10 thoughts on “compulsory rests for code monkeys

  1. The more complex the problem, the more often this happens. In my research, I don’t think I’ve ever had a significant idea while at work.

    So we should spend more time relaxing then?

    Well, yes and no. In my experience, this process works best when you’ve been stuffing your head full of some problem and have started thinking about it when not at work. You probably even dream about it. Then, one day in the shower or while walking somewhere… you see the solution! Sadly, all that beating your head against the problem to start with seems to be a necessary first step.

  2. I always find theres a moment where I think “gee, this is quite hard”. Not really explicitly, but more of a feeling that… its just difficult, and probably more difficult than the universe intended it to be…

    So im trying to listen to that feeling a bit more, and sit in parks. Maybe I’m really just trying to sit in more parks!

  3. Kerry says:

    The other approach that I find useful it to talk to someone about the problem. Often they’ll suggest something different or say something that triggers a different thought path.

  4. Kerry! Sounds like you’re an advocate for peer programming!
    Talking to others can definitely help here, if it is a problem that other people know about. I find there is generally quite an overhead bringing others up to speed though.

    so more reflection, time sitting in the park, or in the shower (I do a lot of thinking in the shower!) thinking about things, not necessarily the problem seems to do the trick… its a bit of a hard sell to people who are ‘managing’ you though!

  5. Greg, I think this is fairly well-established as an optimal way of thinking/working/problem-solving in brain science (as is “sleeping on it”), so if one’s manager was so ignorant as to think a walk in the park or going to sit in a cafe is not “working”, then one could always cite research/books/articles to support this approach! In nice readable popular non-fic terms, Malcolm Gladwell’s “Blink”, or Guy Claxton’s many great books (an educationalist from the UK).. or any number of readable science magazine articles…. 🙂

  6. One could cite research, but… one would have to have some kind of manager who gave a…

    The problem for managers of IT staff is simply that most of the time they have no idea what their staff are doing. At least if you’re in the office, they can pretend that they know you’re doing the right things. It looks better on the Gantt chart.

    I’ll check out Guy Claxton. Gladwell is pretty entertaining, a bit light on … most things, but entertaining!

  7. I think the real issue is how we measure the output from knowledge workers and how we pay them for it. We want to measure and pay people for thinking. If we are manufacturing, it seems quite reasonable to pay someone per hour of activity, since the person arrives and provides a measurable number of hours of activity. This doesn’t translate well to thinking. It doesn’t really make any sense to provide 8 hours of ‘thinking’. I am sort of like you Greg, I do all my best thinking in the shower (which also explains some of my very long showers), though it would be very difficult to consider this as billable time. On the flip-side, there are many times when people go to work and they are not thinking, though they may be going through some motions such as drinking coffee and sitting in meetings. So I think the real issue is that we want to measure and pay for thinking, though we can only easily measure the amount of physical presence and activity that someone provides. Though I don’t have any solutions for this, I think it is a really hard problem.

  8. Kerry says:

    It’s the bringing up to speed that is often the trigger for new ways of thinking. You don’t need to describe your solution so much as the problem area to trigger new ways of thinking about it. The whole process of verbalisation uses different parts of the brain which in turn results in different pattern matching.

    Not a big advocate of peer programming – it puts too much focus on being at the keyboard typing and not enough on thinking by yourself or responding to blog comments (which is another alternative to taking a walk in the park or talking to others)…

  9. Falafulu Fisi says:

    Sometimes solutions just come to my mind when out drinking in town or watching rugby (super-14 or test matches) in a bar. The first thing I try to get is a pen and a piece of paper so that I can write those thoughts down, since they will be forgotten the following day if I don’t write them down.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s