Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Recently, my company started to require us to fill out a monthly timesheet, writing down everything you do in office.

A timesheet contain 29-31 days, depends on the number of days of the month. I need to write the things I did in every row of the excel file, which represent a day.

This timesheet embarrasses me, because something like this can happen:

  • I spent Monday writing a program, and the program was done. Because my boss didn't give me other program to write, basically I am just sitting there and pretending I am busy in the following days before my boss gives me another assignment. Of course I should not write it in the timesheet as it is. I can write it in the timesheet that I write the program using 4 days, but it makes me feel very inefficient.

I can separate the process into 1) write the program, 2)deploy the program, 3)test the program, but that can make the process so long like 3 weeks, really.

Have you encountered such a situation? How would you deal with this?

EDIT: some people said I should be more proactive about asking for more assignments, but here is the situation: the boss of my boss gives some jobs to my boss, then my boss gives the jobs to me, sometimes I can also see my boss being quite less busy. One of my colleagues said that I should not ask for another assignment in a proactive manner, because it would be a headache for my boss to think a job out of nowhere for me. I don't want the things turn out like that, really.

share|improve this question

closed as off topic by Jarrod Roberson, HLGEM, ChrisF Jul 3 '12 at 8:25

Questions on Programmers Stack Exchange are expected to relate to software development within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

You should be more proactive about asking your boss for more work. Sitting around wasting time because he didn't give you anything new isn't going to get you very far. Surely there are more things to work on, like fixing bugs or making improvements? That said, I'm not sure this question is unique enough to programmers. I imagine people in other professions have trouble filling their timesheets. – Adam Lear May 23 '11 at 5:02
Actually here we won't modify a program because we have time. We only modify it when it needs to be modified. Any change to the program may raise bugs, this is not the company wants. – lamwaiman1988 May 23 '11 at 5:21
Quite frankly, I think your colleague is either simply wrong or trying to sabotage your career. – Adam Lear May 23 '11 at 5:25
That sounds quite sane. But note that Anna didn't say make random changes to your code base, but rather inquired as to whether there are actual fixes to be done.. :) – Max May 23 '11 at 6:21
This really isnt on topic... it applies to any profession where a time sheet is used. – GrandmasterB Mar 8 '12 at 21:34

"Hi, I've finished the job you asked for. If you don't have anything urgent, would you mind if I X in the meantime?" where X can be one of

  • learn a new (programming) language
  • study some maths
  • investigate tools similar to the ones you already use

(Oh, and to aid with accurate reporting, keep filling in the timesheet as you work, right? You're never going to be able to keep an accurate record by trying to remember what you did even a week ago.)

share|improve this answer
* Learn proper grammar.... What is a "maths" anyway? – Paul Mar 8 '12 at 15:13
You mean of course 'what is a "math"'. "maths" is clearly the plural form. Learn proper usage of grammatical numbers. – Frank Shearar Mar 8 '12 at 16:44
The US uses math, many other english-speaking countries use Maths. – HLGEM Jul 2 '12 at 20:39

Also, ask your boss what you should do. It is your boss' job to assign you tasks, and it sounds like your boss has plenty of time to think of something useful. If you're worried about your bos having to think of tasks out of nowhere, go with suggestions at dmonstrate that you want to use the time productively.

Here are somw ideas:

  • Write unit tests for existing applications and then refactor to improve their design.
  • Take the initiative and write something useful for your company.
  • Develop your skills.
  • Help other people with their tasks.

About 15 years ago I had a role where about 20% was available to do what I wanted (as long as I was avalable to do something when required). When my team mates used the time to play Quake and Freecell, I learned Object-Oriented programmming. In the long term this has led me into a great carer as a programmer.

So, at the very least, use the time to develop your future potential. After all, jobs where you have time available to do so are rare.

share|improve this answer

I spent a Monday writing a program, and the program was done.

Done? Like, really, done?! Then either the program is extremely simple or there's more that you could do to make it better:

  • Any bugs?
  • How's the error checking?
  • How are you testing it?
  • Can you make it faster?
  • Can you make it more reusable?
  • Would additional output options be useful?
  • Would additional input options be useful?
  • Code is clean and easy to understand?
  • You wrote documentation too, right?

It's always good to know when to say "this is good enough; I can move on to other things." But when there are no other things to move on to... well, that's a luxury that you don't often come across. Use the time to make your program better.

share|improve this answer

If you finished your task ahead of schedule, you should congratulate yourself. Before that, though, make sure that your outputs are correct. (i.e. Your code has been reviewed and properly tested without bugs). Then, you can inform your boss that you're finished so he can assign another task to you.

If it's necessary for you to break down your tasks into details (coding, deployment, testing), do it, but log your ACTUAL hours.

share|improve this answer
+1 for the emphasis on actual checking – Gary Rowe May 23 '11 at 8:29

Your time sheet sounds appallingly badly designed, particularly if it's on a month to month basis. It will include a large number of dead days for weekends (I assume - where I am, people typically work 20-22 days a month.

You have several options.

1) identify gaps in your own skills which could be filled by training. This would benefit your employer 2) take your boss aside via some sort of a review process - do you have this - and highlight that you would proactively like to get involved in X, Y, Z - do you know what projects are under way in your company? 3) I'm not in favour of taking advice from colleagues advising against getting work. They are possibly coasting.

However, for me, the key choice would be to look for a new job. Based on what you say there, the management structure is top down/hierarchical where the participants are more concentrated on the political structure than the actual work. This is never good in the long term.

share|improve this answer

Do not charge time to projects when you were not working on them. If you have clients who are charged by the hour for this time, to do is to commit fraud and you can go to jail for that. If you are finished your porject, ask for more work. If your boss says he has no work for you then ask him where you should be putting your time. And fill out the timesheet daily, there is no way to reconstruct a whole month or weekl at atime without taking notes and if you are going to do that, you might as well be filling in thetimesheet.

share|improve this answer

If you feel that you are completing given tasks quickly and as a consequence you are waiting idle next few days before getting another assignment, My suggestion is,

Don't spend entire day on just working on the given assignment. Work on the given tasks only for some portion of time (may be 70% of office time.) and the remaining time you can utilize for improving your production capability by learning new stuff which can help you to grow in your career and also helps you to complete your tasks even more quickly in future.

share|improve this answer
So, your advice is to cut productive work back to 70% in order to learn how to "improve production capability," and then misrepresent that on the time sheet? – Caleb Jul 2 '12 at 18:55

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