Take the 2-minute tour ×

Let's say that you are idling. There is no ongoing project and you are left nothing to do sometimes. Or there are probably some project is running but you can't proceed. So, you have nothing to do and you are bored. In these kind of situations, what are the things that you will normally do to kill the time?

What I normally do is:

  • Read some books. But it makes me sleepy sometimes, and I got bored easily on some books.

  • Browse SE sites and trying to answer some questions. This will probably kill some minutes.

  • browse for anything that is interested to read on (things like physics, how things works, biology etc)

  • programming puzzles.

I'm probably running out of topic or things to do. And it's in an office, so, watching, facebooking, or gaming is not a good idea.

share|improve this question
I'm kind of thinking that this should be a wiki post because there might be more than one acceptable answer. –  Charles Jul 14 '11 at 16:07
Cruise stack exchange. –  Joel Etherton Jul 14 '11 at 16:09
Stackexchange sites can kill HOURS. –  user31358 Jul 14 '11 at 17:46
Stackexchange is up there with Wikipedia and TVTropes for time killing. –  ssube Jul 14 '11 at 17:57
@Mark, the question is for programmers, and it is asking for programmers related things to do. How can it be answered by non-programmers? –  Charles Jul 15 '11 at 0:21
show 2 more comments

closed as off topic by Walter, Jonathan Khoo, Mark Trapp Jul 14 '11 at 23:09


13 Answers

up vote 28 down vote accepted

If your employer isn't giving you work and they haven't let you know that it will be temporary, then you should probably be gearing up for a job hunt. I'm speaking from experience - the longer you sit around doing "nothing", the harder it is to find work when you make that decision.

However, while you are waiting for work either in your current job or a new job, try to do things that will improve your abilities as a developer.

  • Read development-related books
  • Learn a new technology that you would like to use in future work
  • Try reading and answering questions on development sites like SO
  • Create new applications in a domain you are interested in
  • Clean up and organize your work environment (papers on desk, files on PC, etc.)
  • Create / enhance your profile on LinkedIn
  • Seek out training opportunities (there are sometimes free events hosted during work hours)
  • Take a problematic application and do things to make it less problematic (i.e. add automated testing or something else that is low impact and not likely to cause additional problems)
  • Find an interesting open source project and familiarize yourself with it. If your employer lets you, try participating in the project by fixing bugs and such.
share|improve this answer
it's a contract, long way to go!! –  Charles Jul 14 '11 at 16:12
add comment

Find an overworked coworker and take some peice of grunt work off their plate.

Also, it won't help you now, but in the future keep a small notebook of rainy day ideas and to-dos. Such as:

  • Things you want to try but didn't have time for when trying to meet a deadline
  • Projects that you felt like should be cleaned up or better documented
  • Processes that could benefit from automation
  • Tools that you would like to have

Add things to the notebook as they occour and then when you get / need a break form your current work then pick and item and take care of it.

share|improve this answer
add comment

It definitely depends on the type of down time I have, and the moment of the day.

Let's qualify the types of down time first:

  • Known Duration vs Unknown Duration
  • Short (minutes) vs Long (hours)

A Long Known shortage of work allows: Learning, Tooling and Refactoring.

  • Learning: self-education either by books or on the Internet, at work I consider it fair to do anything related to your field, but I strongly suggest avoiding hobbies.
  • Tooling: there's always some script begging to be polished or be written.
  • Refactoring: how many FIXME or TODO do you have in your code :) ?

And then the moment of the day:

  • Goodbye Time (evening)
  • Meeting Time (a meeting is looming ahead)
  • Pause Time (mid-period, lunch time)
  • Work Time (you just resumed work)

A Short shortage of work allows a pause: if Goodbye Time or Pause Time, then just quit early; if Meeting Time, prepare it a bit more; if Work Time, well just idle quietly (SO is quite nice during compilations* ...).

And then there is the dreaded Unknown Long shortage. You feel like it will be long, but you know that as soon as it ends (you finally get the response you needed) then you'll need to resume working asap, no dallying or finishing up what you had begun.

For those you need to do some work that can be interrupted without notice:

  • work that does not require much time to get into (else you'll lose it)
  • work that can wait and won't erode OR that can be stopped and commited as is in a matter of minutes

It's perhaps time for some comment cleanup, or for commenting some code that deserve it, looking up for those logging messages that are subpar, etc...

Personnally, I keep a little TODO file around in which I note things I will want to get done in the future, both important things and inconsequential things. In a time of shortage, I dig into it and try to find a task suitable. It works pretty well for me :)

* compilations: I am working in C++ :p

share|improve this answer
+1 for refactoring, and known / unknown & short / long breaks –  Ethel Evans Jul 14 '11 at 17:38
add comment

Personal story: I spent a couple of years in a shop where I'd regularly finish my assignments before my supervisor had come up with a new list. When there wasn't anything pressing to read up on for something farther down the pipeline, I'd clock out and go jogging. (And tell my supervisor what was up so he'd be aware I was ready for more work. He'd usually have something by the time I got back.)

It's really the only way I can "get in the zone" for more than three-four hours in the day, take a break to run. Then I can settle down for something else focused. That really only works on an hourly job though, people might start resenting a salaried worker who takes off in the middle of the day.

Though seriously, I do not understand how people can spend 8-5 in the same building, especially if most of the day is spent sitting. It is incomprehensible to my monkey brain.

share|improve this answer
add comment

It's better to shift gears than hit your own projects:

  • Find someone you respect who is overloaded and help them out.
  • Find someone that needs a mentor and help them out.
  • Go for a walk and find out what is happening in the rest of the organization.
  • Train your replacement so you can move to new challenges.
  • Lastly - work on your dream project - the one the company needs but hasn't realized you are the person to make it happen.
share|improve this answer
add comment


Read up on - and practise with - techniques & technologies you use in the job, things you know you will be using, or things you think you should be using.

The key to this is the "and practise with" part, reading alone isn't sufficient, most learning comes through doing.

share|improve this answer
that's what I do. but sometimes I ran out of resources. I'm a PHP programmer, any good resources suggestion? –  Charles Jul 14 '11 at 16:06
I no speaky the PHPy. However if you run out of PHP stuff, look at Ruby stuff, Java stuff, .Net stuff, functional programming stuff. There's lots of stuff out there. –  Binary Worrier Jul 14 '11 at 16:08
yeah, that's a good idea. Should go back to read some books about android again :) –  Charles Jul 14 '11 at 16:10
add comment

Other than hit up SE and check the news occasionally, I prototype little one off things and try to find better ways to solve problems that have already been solved in the product you are working on.

We have all been in that situation where you see something in the code or design that seems unnecessary or inefficient or potentially problematic, and when you ask the developer who has been working on the product for a while WHY he either blows you off, tells you its the only solution and any other way is impossible, or he just flat out says that he has no idea why it was done that way.

I aim to try and do it a better way in a prototype and sometimes you will come up with something epic and others you have a "lightbulb" moment where you finally realize that what was there WAS the best way.

You either improve the product, or you learn something valuable or both.

share|improve this answer
add comment

I assume that you are not self-employed.

Your boss should really know if you are suffering from 'I have nothing to do' problems. He or she may not be aware that you do not have enough work. Or, if they are nonchalant about wasting their money, leave to join an employer who makes better use of their resources.

share|improve this answer
not the best advice - decide what is best to do with your time and send your boss a FYI on your plan just in case there's something else needed that you can do. Keep her in the loop, but be proactive about it. Solve your own problems and communicate is better than asking your boss to solve your problems. –  bmike Jul 14 '11 at 16:22
I agree, going with a plan is better than going with no plan at all. I have modified the answer to make it explicit that the important thing is to ensure that the boss is aware of the issue. –  JW01 Jul 14 '11 at 16:39
add comment

I start looking for a new job. If my employer doesn't have enough work to keep me busy, then it's a good bet that it won't be long either I or one or more of my colleagues will be shown the door.

share|improve this answer
add comment

I always like to have this sort of personal side-projects, which allows me to try new technologies or different ways to achieve something specific, without actually risking putting something experimental in an actual work-related project.

It's a great way of spend some free time without actually feeling like you're wasting your time.

share|improve this answer
add comment

Lull periods come and go. I generally see them when we're finished (or close to finished) coding on a release, in the time before any results come back from QA. I find that that's a good time to work on reducing technical debt in the project. There's always room for improvement, and lull periods can be a good time to do the stuff you didn't have time for because you were trying to get the project finished.

share|improve this answer
add comment

Find something on your own that needs fixing and then find a solution.

  • Shows initiative
  • You'll hopefully learn something along the way
  • It won't be broken anymore
share|improve this answer
add comment

Below are some of the things that I and my colleagues do in our company:

  • Read blog posts of visionary geeks like Martin Fowler, Ola Bini, Chad Fowler, Yehadu Katz, etc
  • Do code kata if I can find another idle developer
  • Write blog post on any of my recent learnings.
  • Possibly read code of any of the open source that I have used recently to try and understand the author's mind on his coding style, design etc
  • Contribute to any open source projects. We for instance as part of social initiative contribute to projects like OpenMRS, RapidFTR etc
  • Pair up with another developer in getting things done in his project. Pairing is one awesome thing to do. You get to both learn and teach!
  • Have a pet project in mind and continue translating the idea to reality.
  • Get a book from library and read it
  • Play a game or two of Table Tennis. We make sure we do this especially when the client is at our place. It would be a nice ice breaker and rapport building exercise. Benefits both :)

And actually the list is endless...the list is limited to only what your mind can imagine ;)

share|improve this answer
add comment
