Don't do dull work. Seriously. It will kill you. If your work doesn't matter to you, then you will either have to find out why it matters, or find something better to do that does matter.
I like to sit down with users and talk with them. Pour a cup of coffee and talk. You'll get the coolest stories and usually, when the 3rd cup is empty, you know exactly what needs fixing. You may program computers, but the point is to shape that friggin' turing machine equivalent so it helps people.
Since when do people have a choice? Instead of "don't do dull work" (which might translate to "don't do what you are asked to do"), I say you do the stuff you hate as fast as possible. Engage it with zeal, and get it the heck over with as soon as possible.
If you avoid doing stuff you hate, the cloud of having to do it lingers over you; you are not really avoiding it, you are prolonging it. Just get it over with and move on. You'll deliver it on time (or earlier), and will have gotten past the hurdle.
We often have more choice than you might think. Here's an example - today my boss wanted me to write up a C header file - essentially I had to take an interface supplied to us by a partner, and modify it so that it respected our coding standards. Now, I could have spent 4 hours of hand-editting this (rather large) file, or, I could spend 4 hours writing a custom pretty_print in Ruby to do it for me. One way of doing it is very boring, the other is rather interesting.
More generally, boring = automatable. If the code that you are writing, or the other task you are doing is boring, it is ripe for automating - so automate it! You'll never have to do the boring task again.
I agree with you on this one. If dull work must be done, you have to do it as fast as possible and get over it. Otherwise you keep thinking on it while doing normal stuff, so you never get to rest and you are probably wasting time with other stuff (just so you don't have to do what must be done)
I like your do-the-dull-stuff-first philosophy. But you can't discount the fact that we stay in dull, drab workplaces as a matter of choice.
If you hate your work we each have the choice to go somewhere else. Be an electrician, or a garbage collector. Move to a different company that offers more compelling work, or start one that does!
I'm just saying we do have the choice to do work we enjoy, even if it means we sacrifice some security to drop the status quo and never look back.
I agree - There is no need to do 'dull' work. If it takes up more than a small portion of your day, then change what you do.
If it's a job you have, then talk to your boss about what projects you would be excited to do, and see if you could work together to change the dull/exciting mix. Offer to work extra on the exciting/challenging project to prove your capabilities if that's a necessary step.
We had a programmer who was often on 'dull' assignments worked nights on a really big problem our company was having - our new product was sluggish, and needed some serious redesign. He spent a month working on a proof of concept on his own time, and then presented it to his boss, and then the programming team.
Now he's working on future architectures and pretty high level, fun and interesting stuff.
It's dull enough to post for help on a newsgroup. Do something about it. Change your trajectory.
Start with the smallest chunk of work. If you look at it as one giant dull task, it's going to be really tough to start. You can't picture the task as moving a whole mountain at once, when in reality the only possible way to move it is a single rock at a time.
So start with a simple goal to get engaged, like fixing a single line of code, and you'll end up doing the whole task.
For me, I always have that initial adverse reaction and stop myself right there, tell myself I'm going to do it NOW, and then just get it done.
If your work is truly dull and uninspiring though, find something else. I find it hard to see any programming as "dull", because it always presents new problems that need solutions.
If it's a few things that you don't particularly want to do, but have to do: Cut out all of your distractions (twitter, e-mail notifier, digg, children, co-workers, etc) and do it in one big burst (I like mine with espresso or Code Red Mountain Dew).
If it's a bigger issue of not caring about your work at all. I agree with jlouis, do something else, or figure out why what you're doing matters.
Look for a position in an area you can care about, or make your own position, or tell your boss your work bores you. Your boss could fire you, or he could give you something interesting, I have no idea about your current situation.
Make sure you and your partner keep each other in check. No partner? Reach out to the community and provide them with updates on how your project is going via blogs, forums, etc.
Remember, we're your community too. =)
2. Plan
Plan out your game plan ahead of time. Create a draft or wire frame of how you want your project to look and feel.
3. Baby Steps
Rome wasn't built overnight. Work on the simples pieces first. That will build your moral, and you'll be ready to conquer bigger challenges.
4. Relax
A lot of times I come up with great solutions after a short break. When I'm sitting for a long period of time in front desk, my mind feels confined and tired, which can be demoralizing. Hence, small breaks are good for re-energizing your mind and moral.
I find that by ensuring I have time set aside for specific tasks, that I get more accomplished and that sense of accomplishment helps keep me motivated.
For example - I try to limit the time spent on certain personal activities (scouring websites) to specific times, that way I dont find myself losing track when I have work to get done.
Also, one of the side effects of setting a limited timeframe to do work in, is that you end up doing better quality work out of necessity more than anything.
I also found that I'm generally most creative in the mornings and late evenings - so I schedule coding time around then... so I dont end up wasting time chipping away at something and getting nowhere.
It is easy for me to find energy when I imagine myself working for a company where I never do any interesting work. Where I sit there watching youtube for hours because I know nothing I will do there will matter anyway. Where the best way to get ahead is not by creating real wealth, but is to jostle with my coworkers for the favor of the people handing out the wealth.
In addition to periodically taking a mini-vacation; I also find it helpful to take a change of scenery. If I'm getting fatigued by working at my desk, going to get some work done at a cafe or meeting with someone helps get my energy going again. Maybe it's the caffeine, but I suspect it's something more. Nothing is more draining than spending 12+ hours a day, day after day, in front of one (or two or three) computer screen(s) at one desk.
for stuff like this, i spend a lot more time really clearly designing the solution.. then you've got an end in sight, and you just have to plug through the todo list (when it's fun work i just play around and try things, since i don't mind backtracking in those cases).
also, i make incredibly specific todos when i'm in a slump - dull work is way easier when you're constantly finishing little parts of it and crossing them out.
I like to sit down with users and talk with them. Pour a cup of coffee and talk. You'll get the coolest stories and usually, when the 3rd cup is empty, you know exactly what needs fixing. You may program computers, but the point is to shape that friggin' turing machine equivalent so it helps people.