After shipping a release, once in two to three months, I get 10 to 15 days of free time. By free time, I mean no work, no one cares what you are doing etc., but you have to come to the office and go.

Do you get free time like that? How do you utilize this time?

I tend to read, but I feel cramming more and more information is not the best way to spend it.

  • 4
    Wow, no. Usually I get started on whatever task I'm late with because the previous task overran :P – JohnB Jul 27 '11 at 10:38
  • 19
    10-15 days of paid free time? I've never heard of this, anywhere. Yes, there are usually lulls in the work where things slow down quite a bit, but two or three weeks of no work? I think that might be a sign of poor project management. Think of what you could achieve if you started work on the next release right away - a much more relaxed pace, perhaps adding more value to the release. – Thomas Owens Jul 27 '11 at 10:47
  • 3
    Seriously dude. I never enjoyed any break in my 8 years of career! I forcefully took one week continuous holidays some 7 years back. Nothing more than that. – sarat Jul 27 '11 at 11:13
  • 4
    get some R&D work done. Research (and experiment with) some new technology developments that could be useful in future projects. Good for your personal development as well as for the company. – jwenting Jul 27 '11 at 12:08
  • 8
    Are they hiring at your company? :) – Scott C Wilson Jul 27 '11 at 12:28

It is a bit unusual. And strange, by the way. If your employer has no work for you, why does he force you to come to the office?

Improve your code

In general, there is always a work to do, even on a single project. If you have nothing to do, it means that your project is perfect. I don't believe in perfect projects, since I've never saw any. If your company has perfect projects, I wish I could take a look at how is it done.

If your project is not perfect, than you can spend this free time improving it.

  • Enforce the coding style rules,
  • Check if the comments are up-to-date and are not missing anywhere,
  • Do code review on parts which were not written by you,
  • Improve technical documentation,
  • Profile the code to see what are the bottlenecks and how to remove them,
  • Refactor your code,
  • Start to think about future features to implement.
  • etc.

Learn something new

Sometimes, you have just finished coding, you finally released the project, and the last thing you want to do is to continue to work with the code you've been on for the last three months. That's understandable. In this case, you can easily find another occupation to change your ideas and increase your knowledge. For example if you're a C# developer, learn Python, or learn how to use Reactive Extensions, or whatsoever.

You may also be tempted to do a small project for yourself during your free time. I don't advise to do that, not only because the code you write at your work generally belongs to your company, but also because you can be sued to use your enterprise hardware and other resources to do projects that has nothing to do with your actual work.

Talk to your boss

It may be a good idea to ask the question you asked on Programmers.SE to the concerned person, i.e. your boss. In fact, chances are that:

  • Either he ignores that the developers have sometimes nothing to do,
  • Or he expects you to do a precise thing.

It is especially important to know what is the situation if your boss actually expects you to do something. For example, if I had employees, I would expect them to improve the project when they have finished writing code and resolving bugs. In the same way, when I work for a company at place, I always spent all the time working on the project and improving it if there were no bugs to resolve.

There is one exception: interns usually are not expected to do additional work on their own. But at least we expect them to come and tell us when they finished what we asked them to do, so that we assign them another task.

  • 3
    " If your employer has no work for you, why does he force you to come to the office?" 'maintain team spirit', 'easy to quickly keep in contact', 'we might have something at any moment', and other excuses for "we just want to have control". – jwenting Jul 27 '11 at 12:07
  • @jwenting, +1 on your comment for "we just want to have control". This is a common attitude amongst companies that cornered a niche market and money easily flows in. Managers become less preoccupied with the concerns of clients and new opportunities and more so with controlling their little fiefdoms and the serfs that report to them. – maple_shaft Jul 27 '11 at 12:37
  • 2
    Some companies may just want someone punching a clock and to be ready should an issue with the release arise. I have had cases where I was without things to do in previous positions. – JB King Jul 27 '11 at 16:04

I actually end up having situations like that at my work. There tends to be a lull after releases for a couple of weeks while we gear up for the next release, and PM & Development managers argue about the prioritization of features for release n + 1.

I usually try to spend this time paying down technical debt that was incurred or adding features that I think are necessary, but that are never given proper resources due to the fact that they may not lead directly to revenue.


I have been in this situation more than once for more than one employer, believe me,

This is not common but certainly not unusual.

I won't go outright and say it is common though and it certainly isn't normal. This is a sign of poor management and/or project management. Here are some common themes I notice that produce lulls like this.

  • You could be in a large organization with a LOT of development resources. It becomes harder to effectively manage ongoing software projects and maintain 100% utilization of resources with a large resource pool.

  • Bad project managers. They do a terrible job of scheduling release work in such a way that resources are as close to 100% utilization as possible.

  • Maintenance/Feature project to existing software. Many times when there is a backlog of features or complex maintenance work, the work itself may not take much effort to implement, however requires a very high level of technical familiarity and business knowledge to do the work.

  • Subject Matter Expert. It is not uncommon for projects that have a wide range of technologies and/or business knowledge to have the need for small bands of teams to form around individual areas. These teams become Subject Matter Experts in their own regard and the company values them MORE for what they know and what are capable of doing than for what they are doing at the immediate moment where there is no work specifically for them.

  • 2
    You forgot to add that the customer has delayed signing the contract. Especially in the government contractor world, you can't work on the project at all without billing for it. With no contract, you can't work on the project. Thus, managers are put in a tough position as they can let their people go to other projects but risk not being able to get them back when the contract is signed, or they can keep them on overhead. – Dunk Jul 27 '11 at 19:31

Indeed strange,

  • 10 - 15 days of free time at recurring intervals
  • no one cares what you are doing but still have to be physically present

Nonetheless you have some decent time which you could utilize maybe do some Team building exercise, get your colleagues together and learn and present some concepts on the language or framework you are using. And take some time to practice a bit of code on some random problems to improve your skills.

I tend to log on to StackOverflow and here during some short breaks available. Also picking up a new language could also be a perspective you can look into.


What I would recommend is that, during the two to three months when you are hard at work, you start to build of a list of things you want to do when the project is done and the couple of weeks of free time rolls around.

  • "Good enough" bits of code that you'd like to refactor
  • Tools, libraries, languages etc. that you'd like to experiment with
  • Ideas that you'd like to prototype, proofs-of-concept to build
  • Development techniques you'd like to try out

I reckon that if I added a URL and a note to a list every time I thought of something like that, after two to three months I'd certainly have a long enough list of things to do to keep me busy!

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