8

I am working a salaried position at a small software firm. Currently I am on a team that is working on a large program that is broken down into small features, which our project lead will assign to one of us to do.

Lately I have been running into the problem consistently (at least 2-3 times / week) where I will finish all the features that were assigned to me, but then when I ask what I should do next, it often takes a long time (anywhere from 15 minutes to over an hour) and often asking multiple times to get a new assignment.

As I said, I'm salaried so I can't just leave early that day when my work is done (plus I enjoy the job so I wouldn't want to anyway), but I feel like a lot of time is wasted waiting around for something to do. I also feel like I'm being annoying asking multiple times, but I do at least space the requests out in case he's busy, and often times if I only ask once I'll be ignored.

How can I politely bring it up to the project lead that I would like to be given work in a more timely manner, so as to not waste time or the company's money?

5
  • Hi thnkwthprtls! I've edited your question to better fit our format and hopefully get you more answers and upvotes. Please feel free to edit it further if I messed anything up or to make it even better. I hope to see you around! :) Aug 29, 2014 at 15:05
  • see also: Should I know what work/tasks/projects are next?
    – gnat
    Aug 29, 2014 at 15:52
  • 1
    Not my question, so I'm not going to edit it but I feel this is significantly different from the possible duplicate: thnkwthprtls is already doing the suggestions made in that question (asking their team lead for more work), so the answers there don't resolve this problem. Aug 29, 2014 at 17:56
  • 1
    Surf stackexchange until you get another assignment. =P
    – Brian S
    Aug 29, 2014 at 19:32
  • Same problem here, smalls companies are always like that. The best thing is to read something about new technologies. if you use something like lynx to surf nobody will notice it :) Sep 1, 2014 at 11:46

3 Answers 3

14

In my opinion, a team lead taking 15 minutes to an hour to come up with some more tasks is completely reasonable - you can't expect them somebody else to instantly drop what they're doing and work out what you need to do next. What should be happening here is that you should be asking what your next task is before you've finish the previous ones, so that your team lead has a bit of a chance to look at the project plan / Kanban board / backlog / whatever tracking method you're using and work out which tasks it makes sense for you to do next. There's not going to be a hard and fast rule for how far in advance you should ask as that depends enormously on your individual circumstances, but half a day sounds reasonable to me - first thing in the morning, if you think you're going to finish your tasks by lunchtime, ask your team lead what you should be doing after that, and similarly just after lunch if you think you're going to finish your tasks by the end of the day.

In response to the other answers, I'd disagree here that the solution here is to go "off plan" and start doing tasks which are potentially useful but not agreed with your team lead / other management: if you're senior enough that you know which of these things are going to actually be useful to the company, rather than potentially useful, you're probably senior enough that you can look at the task backlog and work out which tasks need doing next. That gives another potential solution to this problem: "Hi Team Lead, I've finished the tasks I was assigned. I've looked at the backlog and now started working on Task X and Task Y. If this is a problem, please let me know. Thanks, Me." Similar logic applies to suggestions to "write more test cases" or similar: you should already have written the appropriate number of test cases for your code and organisational standards; writing more is getting into diminishing returns when you should instead be working on a different task.

1
  • I think that's probably the best way to go about handling this, thanks :) Aug 29, 2014 at 15:45
4

Glad to hear you're at a software firm. That makes this a lot easier.

It's not uncommon for software engineers to outpace assignments, as for whatever reason there's an enormous gap even between average and slightly above average software engineers in productivity. As an intern this summer, I finished my entire summer project in 3 days. That's about 3 months without an assignment, and it takes longer than that to find things to assign given the nature of our business. Fortunately, there's a lot of things you can do to provide high value to your company.

I don't know if you've heard of the Joel test or even like it that much. But chances are your firm can't answer yes to all of the following:

Do you use source control?

Can you make a build in one step?

Do you make daily builds?

Do you have a bug database?

Do you fix bugs before writing new code?

Do you have an up-to-date schedule?

Do you have a spec?

Do programmers have quiet working conditions?

Do you use the best tools money can buy?

Do you have testers?

Do new candidates write code during their interview?

Do you do hallway usability testing?

http://www.joelonsoftware.com/articles/fog0000000332.html has some advice on how to get started.

2
  • 1
    I would really like to know where you interned and what was your summer project (if it is not confidential). Also, what did you do for the remainder of your time.
    – user26624
    Aug 29, 2014 at 18:12
  • I have been asked not to share any more than necessary about what I worked on, but I did commit the entirety of my time to pushing these ideas after completing my project.
    – Calvin
    Sep 2, 2014 at 14:24
3

In software development, there's never really free time. If you find yourself out of assigned tasks, you probably haven't done enough testing or refactoring. Use this free time you have to go over your work again, think up new test cases, and minimize the chance that some bugs from this task turn up only after you've moved on to another task.

If there's nothing more in your task to do, maybe ask around to see if anyone in your team needs help with unit testing or peer reviewing.

And even if you've done all you can with your work, use this time to read some programming books. It is technically a way to "learn on the job".

Also, you may want to look into adjusting your effort estimates next time, so you're assigned more tasks to begin with.

Not the answer you're looking for? Browse other questions tagged .