views:

188

answers:

11

I am in this situation :

  1. I am working on some three or four projects which uses different technologies (single person projects).
  2. It is assigned by different people.
  3. Also the priorities of the above projects keep changing and I am forced to switch from one to the another in when I am in the middle of doing something.
  4. Also I am assigned the task of guiding another person in learning a programming language who keeps pinging me in when I am in the middle of something.
  5. I am also supposed to learn a new technology for one of the project I am involved in.

I would love the kind of work I am doing in these projects if I was to do them one at a time. At the end of the day I feel as if I have done nothing and also I feel angry at myself because of that. Can any one suggest any tips on how to best handle this situation?

Thanks...

+1  A: 

Go talk to your manager, or all the managers involved if necessary. If they can't give you a proper block of time to work on each project then find a company with better management.

Russell Troywest
+1  A: 

Regarding your task of helping another person learn, I would schedule regular times for them to ask you questions, rather than give them the liberty to ask you anytime. This is a little less convenient for them, but it will help you concentrate and it will help them learn to be more self-sufficient in finding information for themselves.

Brian Ramsay
+5  A: 

Context switching is costly, and there is no good answer to your question. You should make your managers aware of the time it takes for you to acclimate with the new project, and see if you can at least allocate a full time slot (one or more days) to get "in the zone" for that particular project, otherwise your productivity will sink.

At least you should take comfort in knowing that you are needed...

Otávio Décio
On the topic of Context Switching, Joel Spolsky's article still applies 8 years later and may well help the askee. http://www.joelonsoftware.com/articles/fog0000000022.html
Tom
@Tom - great reference, thank you.
Otávio Décio
Thanks for the good reference!
Manoj
+1  A: 

Talk to your manager and tell him/her that you feel you could be more effective if you were able to stick with a project until it was complete, or at least a particular phase/iteration was complete.

Set aside some time during the day, some "office hours" when people can come and ask questions. Ask them to wait until then to come see you. Alternatively, set aside some time that is "closed" when people shouldn't bother you. You might even need to have a sign. Do it as politely as possible: "I really love helping, but I need some quiet time so I can focus. Could you please come back between 3 and 5pm?"

Get used to learning. You have no other choice. If you don't love doing that while you are working, maybe you should find another field.

tvanfosson
I love learning. It is that I am not able to concentrate enough on that because of the constant switching.
Manoj
I usually try to learn in context, that is, I try to pick a new technology that I can use on the project and learn while using. If it's something completely unrelated to my projects, I do it on my own time, away from work.
tvanfosson
+1  A: 

Been there, done that.

A principle in life is that authority and responsibility go together. If you don't have authority over the organisation of your work, you can't take responsibility for the results.

Unfortunately, lots of managers don't seem to subscribe to this logic.

So it's a question of powerlessness. How secure do you feel in your job? How comfortable are you with the idea of finding another job? If you DON'T feel secure, you're going to find it difficult to do what you need to do, which is to remind your various managers/clients of their responsibilities.

In the end, I left.

(Buy a kitchen timer.)

Benjol
That book looks interesting...Thanks!
Manoj
A: 

Learn to say no. Simply as that, and at the same time, really hard to do.

I allways say I can give Quality or Quantity, not both at the same time, they have to choose.

Stefan
A: 

The glib answer is "welcome to my world" - some level of task switching is going to be unavoidable. The question is what level of control you can exercise.

For the person you are mentoring it is reasonable to set up a "protocol", if it's electronic perhaps a do not disturb capability, or questions by email. (Amazing how much people can solve by themselves if they have to ;-) It is really important though to make sure you do respond eventually.

For task switch between projects, it may be unreasonable to ask you to just drop everything. Do you have any power to at least spend an hour or so reaching a break point before switching. Most tasks can wait a little while.

Again, how do these requests arrive? Can it be by email? Can you set the schedules?

Can you talk to the poeple who are changing the priorities? Non-programmers just don't instinctively understand how much time/pain it costs to context switch. Explain, ask if they could help you by allowing some latitude in your responsiveness. Again for this to work you must keep the poeple waiting for actions in the loop.

djna
A: 

This is a tough situation to be in, and I can sympathize, sometimes you can't avoid working on more than one thing at a time.

If the priorities keep on changing, then that's a manager issue, speak to them and have them figure out what has more priority.

Otherwise, start with whatever is more important and allocate a block on time to work only on that. Make sure that everyone else knows to let you work during that time. Do your best to avoid a lot of "context-switching".

A: 
  1. Allocate time each week for each of the projects, according to their priority and needs in advance. You can put them in solid blocks if that suits you better.

  2. Save the learning new technologies for the end of the day, or times when you need a break.

  3. If the priorities change, then re-allocate your time for the rest of the week according to the priorities and stick to that.

  4. Allocate the time for teaching your colleague each day, and ask that he ask questions only by email outside of that time.

Larry Watanabe
A: 

i'm currently working on 6 projects freelancing and work 35 hours a week in my own job, i have sat down and worked out on which days i can work and how many hours a day I can work on the projects i have. equally sum up which one has greatest importance and drive through that work first. but only limit myself to a certain amount of hours per project that way they are all equally done and i feel satisfied feeling that i've actually done some work.

Neil Hickman
A: 

Start working at odd hours. Come in late and work until late at night. Impress people with how much work you can do when you're not disturbed. If people start following your rhythm, switch to early mornings. Work from home if you can.

Make sure "your phone ran out of battery" and that your IM "crashed" or set it to busy. Close your email application.

If you have a private office, close the door and put something in front of it so it makes a loud noise when somebody enters your office without knocking. Make sure you have headphones on with music so you won't get disturbed.

Give realistic estimates to your PMs. Tell them you can start to look at something in about 4 days at the earliest due to other projects. Send an email to all your PMs and tell them to fight between themselves for your time.

danglund