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.

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.

6

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.
–
Anna Lear♦May 23 '11 at 5:02

1

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.
–
lamwaiman1988May 23 '11 at 5:21

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.

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.

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.

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.

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.

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.