I have this simple question: sometimes I am ahead of schedule on the task (software development) that has been given to me. For example, I am supposed to accomplish a task in one month, but I finish it in about a week. So this leaves me with about three weeks of downtime... I also work in an open space.
I should stress that I am not a genius or something. The people planning the task simply overestimated its complexity (it seems to happen a lot in companies that are externalizing tasks and this leaves them without the very basic technical competence to be able to say how long a given task will take).
I do not like doing nothing, but I cannot tell the customer that I already accomplished my work and ask for more. I cannot tell them because I work as a contractor, not full-time staff, and there is a contract between my employer and the customer. If I tell the customer that I already did the job, he will put an end to the contract in order to save money (payments are made for each day) and this will make my employer angry. So the trade-off would be to stay at the office, waiting for the deadline to come and making sure my employer is paid by the customer for my presence.
How should I proceed? What should I do in the meantime?
Edit: Thank you for your answers, I accepted one. I should stress out that the employer is basically lending me, without really knowing what tasks the customer will ask me to perform. I work on customer's site, still the sole contracts are between me and the employer, and between the employer and the customer. While legally, all my work should go through the employer towards the customer and assignment should go the other way around, in practice the customer talks to me directly, the agreement of my employer being presumed (this is kinda/almost illegal, because is unlawful/hidden employment; but it goes like that and it is widely accepted in the field). The customer initiates successive tasks through kick-of meetings, when rights to access the code are granted to me for a certain time. I am not authorized to modify the code beyond the scope of the change request - as any modification has to be validated downstream/upstream by safety teams. Still, I am authorized to make propositions, and this is what I intend to do, maybe even testing an preparing an alternative implementation, and provide it along with the official one, if it works better.
Please consider the question answered.