Tell me more ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I work in a fast-paced startup and am absolutely in love with what I do. Still, I wake up to a bad mood as often as the next guy. I find that forcing myself to play out my day as usual doesn't help — in fact, it only makes it worse, possibly ruining my productivity for the rest of the week.

There are several ways I can cope with this, for instance:

  • dropping the current task for the day and getting that awesome but low-priority feature in place;
  • doing some pending research for future development (i.e. digging up ruby gems);
  • spending the day reading and educating myself;
  • just taking the day off.

The first three items are productive in themselves, and taking the day off recharges my coding mana for the rest of the week.

Being a young developer, I'm pretty sure there's a multitude of alternatives that I haven't come across yet. How can programmers cope with off days?

Edit:

I am looking for answers related specifically to this profession. I therefore believe that coping with off days in our field is fundamentally different that doing so in other areas.

Programmers (especially in a start-up) are a unique breed in this context in the sense that they tend to have a multitude of tasks at hand on any given moment, so they can easily switch between these without wreaking too much havoc.

Programmers also tend to work based on clear, concise objectives — provided they are well managed either by themselves or a third party — and hence have a great deal of flexibility when it comes to managing their time.

Finally, our line of work creates the opportunity — necessity, if you will — to fit a plethora of tasks not directly related to the current one, such as research and staying on top of new releases and software updates.

share|improve this question
3  
Have you looked into the root-cause of why you wake up in a bad mood? – FrustratedWithFormsDesigner Jun 23 '11 at 21:03
3  
Please take a look at the image on this meta post - meta.programmers.stackexchange.com/questions/1799/… - do you think your question fits in the "All Programmers" section or (more likely) the "All Careers" section? – ChrisF Jun 23 '11 at 21:06
1  
That's indeed a nice diagram, but I came to Programmers for a reason. I don't know much of other careers, but «dropping the current task for the day and getting that awesome but low-priority feature in place» is something that a construction worker is probably unable to do. – Júlio Santos Jun 23 '11 at 21:08
1  
@Júlio Santos: Many office jobs have the option to switch between tasks if one gets to be too much. A lawyer might start researching a different case or going through a different file if they need a mental break from the current one. – FrustratedWithFormsDesigner Jun 23 '11 at 21:15
2  
Unfortunately just adding the words "as a programmer" to a question doesn't necessarily make it on topic. If you can rework the question to make that clearer and tailor it to software development then it might stay open. – ChrisF Jun 23 '11 at 21:22
show 12 more comments

closed as off topic by Karl Bielefeldt, Mark Trapp Jun 23 '11 at 21:59

Questions on Programmers Stack Exchange are expected to relate to software development within the scope defined in the FAQ. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about closed questions here.

5 Answers

Get used to the fact that they happen and suck it up. Whereas you have the luxury of your four points right now, they ain't always necessarily gonna be there!

share|improve this answer
1  
I was hoping for something a little more constructive. What about other points I haven't mentioned? – Júlio Santos Jun 23 '11 at 21:04
2  
@Júlio I'm being dead serious. Pop in your iPod and plod through the day. Sucking it up and dealing with it is very frequently the only way through a sucky day. «dropping the current task for the day and getting that awesome but low-priority feature in place» is not necessarily a thing that a programmer can do either. What happens when you wake up on «one of those days» and it also happens to be deadline day? – squillman Jun 23 '11 at 21:11
I guess yes, in that case I will have to suck it up. But not every day is deadline day. – Júlio Santos Jun 23 '11 at 21:15
3  
@Júlio That is certainly true, but that's also just a single example. Deadline day, just found a major bug day, horrible-jerk-o-matic-problem-child-user-won't-stop-calling day, fill-in-the-blank-day, etc. This is the best, most generic way I've found. The question then becomes, "how do I make sucking it up easier?" – squillman Jun 23 '11 at 21:17

Having worked for start ups most of my career, I know what you mean. It's normal. It's called being a person.

One thing to do is look back and consider the whole of the work you have done, not just that day. If you had great days for the two weeks leading up to a slow day, the average is still bloody good. Take it easy on yourself. Don't worry about the days, worry about the weeks and months. "Did I do a week worth of good work?"

Keep track of these slow days. For me, it was an indication of stress levels. Too many and you need to deal with the root cause, once a month, just relax and go with what you have outlined above, and be thankful you have the flexibility to.

share|improve this answer

Some specific techniques when putting the big projects off won't work (e.g., you have a deadline):

  • Take frequent breaks. Devs often keep little toys on their desks for spacing out with.
  • Go for walks. Exercise releases endorphins and improves mood. I find sitting on a ball helps with this also.
  • Take a nap, if you can. I've seen Microsoft devs keep couches in their offices for precisely this purpose, though obviously not every company has a culture that supports this.
  • If things go really badly for a couple of hours, take a full 30-minute break. If you are an extrovert, take a break with someone else.
  • When you work, focus only on the work you are doing in the next 15 minutes to an hour. You don't need to get through the entire day at this moment, just work on the next little chunk. So pick one method that you will implement or one unit test that you will make pass, do that, then take 5. If you are having trouble breaking things down, work for X minutes (X = 15 is pretty good IME) and then take a break.
  • Every time you accomplish a tiny task, write it down (if you are doing TDD, your tests might be a large part of that log). This gives you something to look at to fight the secondary effects of a bad mood, where you feel like you aren't accomplishing anything.

I'm assuming here that you are salaried and are paid to accomplish things, not sit at a desk and attempt to work. If you are paid to attempt to work a certain number of hours regardless of your success, you might have to just have a bad day and maybe a bad week and keep plugging through.

share|improve this answer
+1 for «Every time you accomplish a tiny task, write it down». – Júlio Santos Jun 23 '11 at 21:49

I don't believe there is any programmer-specific way to handle this. General solutions would be to learn meditation and relaxation techniques and practice them so that you get through a lousy day easier. This is how I sometimes deal with it. I have friends in marketing, sales, banking, gardening, who all do similar things. Learning how to relax and control transcends being a programmer.

share|improve this answer

If the things you listed are how you cope, why not do those more consistently? It sounds like they make you happier. Maybe you shouldn't do it just when you're having a bad day.

Also, with regards to your edit, I think you're being slightly naive in assuming that coping with bad days is done by taking a day off. I don't think a lot of us have that luxury, and even if we did, it's not something that is immediately considered. Just my opinion though.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.