views:

1583

answers:

18

As a programmer I sometimes find myself in the position of being dealt a task which is utterly tedious and downright boring. This is not surprising, it would be odd if all aspects of programming were fantastically challenging and fun, but that doesn't change the fact that I wish I could live without these types of assignments.

For the most part, I manage to just power through by simply finishing the task as quickly as possible, but other times it's just not that easy. I find myself doing anything but finishing the boring assignment, taking on multiple other assignments if I have to, just so I get a reason for not finishing. This is of course affecting my professional life, as I'm constantly jumping from challenge to challenge, leaving a trail of unfinished blah behind me.

How do you cope with coders coma? Are there any tips on how to be more productive when it comes to finishing boring stuff?

+20  A: 

One thing that I do when I know I'm putting off doing something (either by doing other tasks or just slacking in general) is to write down a schedule on a piece of paper for what I'm going to do for that day. It sounds stupid, but try it. Just write down what you're going to do and in what time range. The feeling of crossing an item out on your list is great, but the feeling of throwing out that entire list is even better.

ryeguy
This is by far one of the best possible solutions! Tasklists are a really good way of self-management and getting to tick things off is amazingly rewarding => less tedium.It's also very important to split the stuff into tiny tasks, so that you get the feeling of accomplishment as often as possible. The worst tedium comes when you slave for days on end on something that never gets finished. If you learn to appreciate the midterm-goals too, you're motivation will improve.
Tommi Forsström
Also a very good tip, thank you!
Banang
This method really doesn't work for me. When I see a schedule/tasklist, first thing I do is cross things that I will NOT be doing, so it defeats the purpose.
Ivan Vučica
Do you need to finish all items before throwing out the list to get the good feeling?
Thorbjørn Ravn Andersen
A friend prefers to call it "coming attractions" not a do-list or task list.
DarenW
+13  A: 

If the task is tedious because it is repetative, I write a program to do the task for me. ;-)

Kramii
great answer, even if I spend more time doing the program it's funnier so the time spend faster => In your mind, you complete your task faster :D
Nicolas Dorier
If you do this, the task is now *solved*, and you can get on with other, more interesting things (like improving efficiency of the automation :D ) if the task ever comes up again.
secoif
+1 Sometimes this is possible some other times it isn't. When it is I take that programming language I have always wanted to learn to do the task. It usually takes me the same time or a bit more, but it is definitely more exciting. At the end I've learned something new.
OscarRyz
Only a programmer responds to 'do the dishes' by Googling for cheapest Lego mindstorms supplier as a start to building an awesome domestic robot.
Martin Beckett
+4  A: 

Amp...lots and lots of Amp....a good sugar buzz is all the motivation I need sometimes...

theG
ADD + Amp = CoderComaFix
Tom Anderson
Are you talking about amphetamine? If so, I'll pass :/ Plenty of other more sane drugs out there to use first ;-)
Nah, just regular old mountain dew amp.
theG
Ah, don't have that where I live. At least I haven't seen it. Similar drinks exists of course.
I hear Cocacola's expansion plan includes on selling mountain dew under rocks.
secoif
+2  A: 

There's no one simple way. The worst thing to do is to start multitasking to avoid tackling the boring stuff. The best way by far is to just do it as soon as possible and as quickly as possible, to get it over with. This becomes a problem if the task is pretty huge, say a weeks or even months worth of work, since it's really difficult to motivate yourself to work with tedious crap day-in, day-out.

Then again, it's all part of the job. You could as well be working at a Kwik-e-mart or sweeping floors somewhere. Tedious tasks need to get done too, unfortunately and there's no quick and easy way out of it.

Tommi Forsström
+7  A: 

Pass it on to one of the Interns

TStamper
like the way you think :)
dr. evil
I wish I had an intern...
rotard
our intern isn't a programmer, but hey, he's gotta learn some day!
Nicky De Maeyer
This is great, except when .. you're the intern :( ...Probably that's how you got the tedious task in first place. :)
OscarRyz
I did that once! But I felt a bit guilty..
Andrei Rinea
+3  A: 

I generally try to solve the problem in a new way. For example use something you've just learned. Obviously expects bug and longer development time, but at least it'll be still fun.

Or you can just hire some cheap programmers from the other end of the world to finish the job for you :)

dr. evil
I'd shun this approach. As professional coders we're still expected to deliver in time and on budget and it's usually not the most responsible approach to start experimenting, when you should basically just be doing your job.But in hobby-projects and such this is of course a great piece of advice.
Tommi Forsström
@Tommmi I know what you mean but sometimes when you feel like you are going to die because task you don't have so many options. I'd rather do a sloppy job instead of quitting because my job is so boring. I'm sure that my employee would feel the same way.
dr. evil
Nice. What can help you deliver "in time and on budget" more than using new skills. Of course, this is a long-term view: the shorter-term task might get slowed down. But if you stay motivated and you are learning and you are producing, isn't that a huge benefit to your client?
Yar
+1  A: 

I usually do daily pray (salat) and after that I said to my self,You not going home until Finish that, Whatever or for how log you need to stay at office.

adopilot
+2  A: 

Break the task into atomic pieces (as far as possible) and then follow ryeguy's advice of task lists. I like to use the 'Getting Things Done' approach (GTD), and just incorporate the pieces of that task into the rest of my work. Breaking it apart helps minimise the boredom and using a structured task methodology makes sure I still get it all done.

At the end of the crap task, reward yourself and use that as a driver for future tasks of the same ilk.

Lazarus
+21  A: 

I quite like Steve Pavlina's timeboxing method to get rid of tedious tasks. It applies whether you have boring code monkey work to be cracking on with or a pile of junk in the closet at home you need to sort through.

Kirschstein
This is actually extremely helpful, I had not heard of timeboxing before. Thank you!
Banang
Thanks from me, too! Seeing this in written form reassures my opinion and explains the efficiency when I apply this method.
Ivan Vučica
Looks quite interesting but.. ... I don't feel like reading it. I guess that's part of the "coders coma" :( Can anyone summarize it for me? :(
OscarRyz
Interesting idea, this time boxing. Steve Pavlina is a good writer.
crosenblum
+1  A: 

When I get like this, I think of what a Great man had to say: If not now, when? And I just do it. I find that waiting to get motivated to do things will get me nowhere. I also find that doing things, even when I don't want to, gets me motivated to keep going and to continue working on my project.

Ronnie
+2  A: 

A). Try and do something new as part of the boring task. That could be writing it in a new language or using a different framework technology. Recently I tried scratch-writing a Restful-MVC framework into .NET 2.0 for example.

B). Split my time 50/50 with an interesting project, always deferring the interesting stuff to the afternoon (better to coincide the stimulating work with that lethargic mid-afternoon brain-fail cycle)

C). If you really just have to get through it, treat yourself with things outside of work so you don't get too depressed. Junk food, sleep, xbox time, whatever. Hopefully your partner is accommodating :)

annakata
+1  A: 

If it applies and is possible, I try to explore a technology or methodology to peek my interests. However, this is not always possible.

I too have also found that breaking some huge, boring, or daunting task into smaller, easier to swallow tasks works best.

Aaron Daniels
+2  A: 
  1. Break up the task into less-annoying chunks.
  2. Occupy your brain as much as possible: if the task only requires 20% of your intellect, you can probably listen to CNN radio (in some other language that you've studied, for instance) in the background. If it requires your full concentration, listen to whatever music you can without getting distracted.
  3. Avoid simple carbs (sugars especially). This is personal, but I find that they cause me to crash and need a nap. Which is good sometimes.
  4. Fight with your husband/wife/friends/etc. beforehand. This will make it very hard to focus and then boring tasks are a godsend.
  5. Many times, repetitive tasks are better coded than performed. I end up writing a huge amount of "code" in Excel/OpenOfficeSpreadsheetThinger (Excel writes Ruby, etc. perfectly :) and using global find and replace in Netbeans. This might take longer the first few times, but these are tools that you need to learn to use.
Yar
A: 

Hey, I resemble that remark!

Caffeine Coma
+1  A: 

I pour the green stuff from a glow stick into my Mountain Dew.

Black Cat
+1  A: 

I don't get coder's coma. I get mismanaged paralysis, where I do nothing because I'm afraid that any move is wrong.

Joshua
It probably is. But that's the joy of programming: being constantly wrong, to some degree, all the time.
secoif
+2  A: 

Nobody mentioned the Pomodoro technique. Timebox 25 minutes where you want to be absolutely undisturbed, turn off email, phone, IM client, etc.

It's amazing how much you can actually get done when working only on one thing :)

More info on this page about the pomodoro technique

Jesper Rønn-Jensen
Is this the 25/5 mins work/distraction? My work always exceed 1 hr. and my amusement the rest of the day
OscarRyz
A: 

It may not be the answer people are looking for here, but I sometime write programs to automate these stuff!

fastcodejava