Sometimes (usually once or twice a month) I have days when I'm in the mood to do nothing. When I feel like this, my work is sloppy and it takes 1-2 hours to clean it up the next day.

This is really annoying and, more importantly, not good for my career. I am pretty sure I am not the only one with this "disease".

What can I do when I have days like this? Is there any possibility to avoid them?

3 Answers 3


If you know when you're most likely to write buggy code, you're already a bit ahead of the game! ;)

1) what to do on those days

Do you have non-coding tasks you could be doing? Update your priority list or schedule, review meeting notes, catch up on documentation, answer emails, etc. I usually go with those things when I'm unmotivated, and it leaves me happier and more productive the next day because I don't have those boring tasks hanging over me.
If that's not an option, try to find a coding job that's reasonably simple and self-contained, if you have any of those.

If your work hours are flexible and you're really having trouble being productive, you could go home early - no point in training yourself into staying at work when you know you're not getting much useful stuff done.

2) how to avoid them

This is a much trickier question. Do you have any idea what causes them? Is there any pattern you noticed? Lack of sleep or exercise, too much partying the day before, personal issues distracting you from work, a feeling that you're not sure what you should be working on, simply burnout from a too-heavy workweek? The solution will obviously depend on all those.

Some things I would try, if you're not sure what the problem is:
- review your priorities to make sure you have a clear idea of what you should be doing - personally when I'm feeling unmotivated it's often because I'm feeling too overwhelmed by my task list.
- go for a long walk, or better yet go to the gym if you can. The added energy may help.
- go for lunch or coffee with a coworker you like - interesting conversation may be enough to snap you out of the mood.
- try a "30 minutes of work, 15 minutes of fun" schedule for a while (adjust the numbers to whatever works for you) - maybe you'll do better at concentrating on work if you know you're only doing it for a short time, and 30 minutes of focused work are probably better than an hour of unmotivated staring at the screen.


a) bearing with weronika's superb answer - keep a list of maintenance things to do, so that you can have it on hand when you feel unproductive - e.g. backup, unresponded emails, documentation, searching the web for better software tools, etc;

b) other than that: help others. Even though it might be absolutely the same task if done on your own or done to help somebody else, the different perspective could dramatically change enthusiasm levels and creativity. Go around colleagues, visit some online community (e.g. Stackoverflow), answer easy questions, answer hard questions.

I do not know if there is a special explanation for that, but I have found, at least for myself, that I would go beyond my comfort zones when dealing with someone else's request, simply for the sake of helping him/ her. (Nobody is paying me to answer this question of yours, right? :) Yet, I would be more than glad if my answer helps you and I would compulsively check my reputation status for changes, as well.)

Helping someone in your professional field, apart from giving your brain some refreshment time, may also bring you a different and better perspective on your desk tasks or let you learn something new or at least help you systemize your current knowledge better in your mind.

  • 3
    +1, for helping others. This will create an immediate sense of accomplishment and "recharge your batteries" and, of course, actually HELP the organization.
    – Angelo
    Jul 3, 2012 at 12:04
  • 1
    +1, helping others and searching the web for better software tools are both great ideas.
    – weronika
    Jul 3, 2012 at 15:31

What can I do when I have days like this? Is there any possibility to avoid them?

My best advice is to accept that you will have some days that are better than others, and not beat yourself over it.

In various sports, even the best players go into "slumps" -- times when their performance is far below their usual standards. For the few that don't, I suspect it is more an inherent quality than execution of a strategy for avoiding it.

That being said, if you notice you're in a slump, it's probably a cue to break up your routine. If the last time you've hit "compile" you have a page-full of compile errors from typos, it's probably time to take a walk or maybe pick up a non-coding task for a while. Trying to grind through it is likely only going to produce similar results.

More important that avoiding bad days is not letting bad days dominate your vision of yourself (or those around you). You (I suspect) are a good developer who occasionally has bad days, not a bad developer. You have this in common with almost everyone else in the world.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .