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.
1
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.
2
It depends on what you mean as ‘juggling’.
If you by juggling you mean:
- Work on project 1 for an hour
- Work on project 2 for an hour
- Work on project 1 for 15 minutes
- 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:
- Work on project 1 for 5 hours
- 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.
3
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.
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.
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.
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.
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.
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)