Take the 2-minute tour ×
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 was curious to know, if juggling between 2-3 projects at a time is a good or a common practice or not. When I say, 2-3 projects I mean:
1. 1 primary project,
2. 1 project with minor improvements/changes and
3. 1 project which comes at times for bug fixes

So essentially, I find my self generally working on 2 projects in parallel and sometimes the 3rd one comes in with a trivial fix.

Is this a problem? Or I should be learning to work on multiple projects at any given time. My personal opinion is, this style of work might affect how detailed and in-depth you think about a project.

share|improve this question
    
In my experience, managing and working on multiple projects is a common skill -- the trick is learning how to plan your (weekly/monthly) schedule so that you can be productive on all of your projects. Switching back and forth between projects on a daily basis rarely ends up being efficient or productive. –  Marco Aug 3 '12 at 8:16
add comment

8 Answers 8

up vote 9 down vote accepted

This can become an issue if you have problems switching contexts between projects. From what I understand, it takes about 15 minutes to reach "full work mode". Working on more than 1 project is common in most workplaces, though it's a bad idea to exagerate. 2 or 3 projects is probably ok, but only as long as you don't have to work many extra hours. Enough man-power in the company is needed if this becomes an issue.

If you find yourself in this kind of position, I recommend not to work on more than 1 project per day. This way, you can remain fully focused at what you do and maintain optimal productivity.

I know someone who had to work on 5 different projects at once. He always had to switch between them because clients kept requesting specific bug fixes every day. The management didn't hire extra developers to help out, so he quit. It was the best decision possible.

share|improve this answer
2  
I have seen more than one person quit at my place due to constant context switching as well. –  DevSolo Aug 2 '12 at 19:39
    
Okay, as as far as I am concerned, I have been working just for 1yr and I don't find it very hard to switch context b/w 2 projects. And it appears that working on 2 projects is a "standard" and will have to learn how to get good at it :) –  zengr Aug 2 '12 at 20:45
add comment

It depends on what you mean as 'juggling'.

If you by juggling you mean:

  1. Work on project 1 for an hour
  2. Work on project 2 for an hour
  3. Work on project 1 for 15 minutes
  4. Work on project 2 for 30 minutes, etc...

That is BAD. It is a widely quoted that it can take 15 minutes to regain your focus after being disrupted.

This means that in the above example you worked for 2:45 and you had 4 periods of 15 minutes to get 'flowing', wasting an hour. That is wasting 36% of your time.

If you mean juggling:

  1. Work on project 1 for 5 hours
  2. Work on project 2 for 3 hours

This is acceptable.

The more you are able to work on the same project for longer blocks of time, the less time wasted getting the project into your brain.

I believe most programmers must work on multiple projects so yes, you should be able to work on multiple projects, just not constantly switching between the different them.

share|improve this answer
    
"It is a widely quoted" != fact. Not at all. And even if it were, then still some people would not need 15 minutes but only 3. Apart from that, switching context is something that can, and should, be learned. You're saying what I, and lots of others, do and have done for years is BAD, which is nonsense. –  stijn Aug 3 '12 at 7:38
3  
"I'm doing something for years" != "good practice" –  Branimir Aug 3 '12 at 8:19
1  
You can learn how to context switch more effectively. Tools such as logbooks, Kanban boards and others can help to make it easier to switch. Even so, achieving the so-called Flow state will still take you 15 minutes plus, so it's worthwhile trying to block out significant chunks of time. @stijn - the existence of "flow" is extremely well documented (start from the link I gave, and read "Peopleware" if you can find a copy). –  Bevan Aug 3 '12 at 9:37
add comment

For me personally this is the ideal working scenario. With one condition: that I can choose when to work on what project for how many time. This gives me the opportunity to do the work I am in the mood for!

For example, I have 2 projects to work on, one is new and one is old.

I start in the morning on the most recent project, because in the morning I am the most fresh in my mind, and I am highly productive. Somewhere after lunch I get stuck in a very tough problem to solve. After trying to come up with a solution for an hour, I am losing my concentration. Now it is ideal to move this forward to the next day, so I can look at it fresh, with new energy. The remaining time of the day can be filled with fixing easy bugs at the old project.

This is for me the most productive way of working, the flexibility to choose between different types of work depending on my mood, level of energy and concentration.

As other questions point out, it can also be counter-productive, but I think this mainly depends on the condition I pose at the start of my answer.

Bottom line is, you have to figure out what works best for you. Maybe you are really good at switching between tasks, which gives you a benefit above other developers. If you are not good at switching, try to minimize the switching by planning your work very carefully.

It all depends on what you are good at, and when you figure that out, try to adapt your working methods towards that.

share|improve this answer
add comment

I (unfortunately) generally have to do this. I have had the same job for a long time (15+ years) so I don't have the benefit of working at several places. It can very frustrating and certainly doesn't help reduce stress or bugs. I recall reading somewhere, might have been Code Complete, that it takes 30 minutes to mentally switch tasks. If I can find a link, I'll edit the post.

In my situation, it's worse when one project is starting and another ending. That tends to be anywhere from 2-10 days of constant back and forth. Make a little progress on new, fix and/or refactor old, rinse and repeat.

I think the random, minor fix for is something we just have to deal with, life happens.

One thing you can try when your plate is full of 2 (or more) constant projects is the pomodoro technique.

Another is to try and reason w/ management by explaining you are a single core and well designed for constant multitasking.

share|improve this answer
add comment

In my current job I very often find myself switching between 2-3 projects, mostly because a main project will be long term, and will require others to sign off on parts, test parts and write requirement for parts before I can continue, so I grab bug fixes to do in between.

It's fine so long as you make sure to clear the rest of the stuff out of your mind (and your windows onscreen), although our boss is trying to move away from it (hopefully by hiring more developers/BAs/testers)

share|improve this answer
add comment

I'm not sure where you draw the line to indicate I've gone from one project to another. This whole "it takes 15 minutes..." seems to be overly applied. Now that I am familiar with a couple of our databases, I can switch from one to another very easily. Now just because I am on the same "project" and switch from the database to working on the UI, I'm not sure there is a lot of continuity there. Being in the same domain has its advantages.

All problems don't require the same level of concentration. Working on 3 new projects all at the same stage could get confusing. Sometimes working on a different project can get me motivated, so there can be advantages if it allows you to avoid boredom.

share|improve this answer
add comment

That's how it's been at all the places I've worked. Actually, only having 2-3 active projects at a time would be a significant decrease. :-) I suppose it's due to working at places with real small IT groups where it's much harder to specialize.

share|improve this answer
add comment

This is a pretty common case. We are developing, supporting(bug fixes), enhancing, etc. projects.

While 'juggling' these projects it is more than important to get prioritization (order of importance)) and planning of a daily work load.

The Project Manager have to identify these priorities and tell to the team or individual developer. If there is NO prioritization of work load, i would suggest to communicate and identify them as soon as possible.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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