9

I'm a software developer and the newest to the team and for the past month it feels like everyone has been pushing their work on me.

I was assigned a project with 2 other developers. The senior developer is essentially also my manager and lately there is a lot of time pressure on me as well because management wants the project done ASAP and it's soon to be past the deadline.

For instance the senior will say "I'm doing this. You do X and get it done by Y" the problem is X is part of his task but he will have me do it, and there will be time pressure because he will tell me that he's blocked until I finish. And I also have a huge backlog of stuff that isn't done either yet. Then the other developer has his own task and even though he's supposed to be working on this project full time I've done about 20x the work he's done. He isn't working fast enough so they've assigned me part of the work that he's supposed to do.

Basically I have a huge stack of work and I'm pumping out about 500 lines of code a day (consistently for the past 30 days) and working overtime while my teammates have pumped out 400 lines of code for the whole month. The code they are writing is also super simple and shouldn't take too long. (Eg their code will be unit tests). Of course the senior developer is also working on other projects, but the other developer is working full time on this same project with me.

I don't mind working hard or working overtime for deadlines but I have a problem now because I have RSI and my arms have been numb and I've been in severe pain lately and I have no idea what to do.

5
  • 7
    The usual comment is ask your manager which work should be priotitized and which should not be done. For the work not done refer the requester to your manager. However in this case see a doctor and take sick leave if this is what they suggest
    – mmmmmm
    Feb 1 at 22:45
  • 4
    "500 lines of code a day (consistently for the past 30 days)" ? That is way too much work. Feb 2 at 6:05
  • 6
    @Job_September_2020 LOC is not a meaningful count here. You can relatively easily get to 500 LOC by creating new classes for a feature (entity, DTO, repository, mapper, service, controller, interfaces for everything, ...) that can reasonably be implemented in 8 hours.
    – Flater
    Feb 2 at 9:35
  • 1
    @Flater, The OP wrote "500 LOC - for 30 days". I know people can copy and paste old code to new template once or twice at the beginning of a project and get 500 LOC for that one day. But, do you think the OP just "only consistently copy and paste code from old template to the new ones" for all 30 days, (and not writing any code on his own) ? That would have been an interesting job if all you do is "to copy and paste code with minor modifications 500 LOC per day for 30 days"... Feb 2 at 19:08
  • @Job_September_2020: I wasn't talking about copy/pasting templates.
    – Flater
    Feb 3 at 0:38

4 Answers 4

24

I don't mind working hard or working overtime for deadlines but I have a problem now because I have RSI and my arms have been numb and I've been in severe pain lately and I have no idea what to do.

You see a doctor right away!!!

You get your condition officially documented.

You take corrective actions before it's too late.

https://my.clevelandclinic.org/health/diseases/17424-repetitive-stress-injury

Surgery is no joke. You can probably correct this without surgery if you catch it early enough, but you need to take action now! Don't wait until you're in excruciating pain.

1
  • Please, for the love of God, get physio before surgery! (Source: personal experience) Apr 26 at 7:36
18

To elaborate on mmmmmm's comment: You generally should not work more hours than others on your team, nor so many extra hours that it affects your health. You should do as good a job as you can, in normal hours, and let the rest go.

You should ask your manager for priorities. When they add more to your pile of work, ask them what should be dropped so that you can get this item done.

If you want task 15 done by tomorrow, I think I can do that, but I won't be able to work on tasks 4 through 14. Does that work for you?

If they want them all done, and say they are all equally high priority, you push back.

Well, I can't do them all. Yesterday you said that task 8 was the most important one, so I'll get 8 done, and then start working on 15, but 15 won't be done until the day after tomorrow. And that's only if things go well and nothing else comes in to interrupt that work. Does that work for you?

That gives them the opportunity to change your priorities. But you can't do more than you can do, and there is no reason to destroy your health in trying. If there is more work than you can do, it is management's problem if it doesn't get done. That's why they are management.

They are pushing the pain of not having enough resources on to you, and it's turning into physical pain for you. It is not your responsibility, and it should be their pain, not yours. Let them have their own pain, do good work in reasonable hours, and go home at the end of the day with a clear conscience, because you are doing what you are paid to do.

1
  • 2
    +1 It sounds like the project is under staffed, the senior developer is under pressure, doesn't want to give the bad news to their boss and is pushing the problem onto the most junior member of staff. Feb 3 at 17:10
12

Learn to say no

One of the first things you need to learn on your job (on any job actually) is who is your boss. Note that you should ideally have only one boss, and even requests from higher-ups should go trough him. There are companies out there with poor organization, where two or more persons would try to boss you around, but you should not allow this. As a rule you would have only one formal manager, even if he does not want to manage you (this happens in some cases). Nevertheless, in all circumstances force him to make a decision about any work you are doing.

Second thing you need to learn is to say no . Assuming that this senior developer is your formal manager, when he says "you got to finish this in 2 days" , you need to gather courage to say "I need 5 days" and stick to it. This is something no one could teach you, you must find that inner firmness inside yourself, even to the point of being fired. Eventually working yourself to death would help no one. Perhaps you are not a good fit for this company. Perhaps you need to look for another job. Perhaps everything will work out fine. But you must be able to stand for yourself because no one else will do.

Final note, about overtimes. In some cases it could be beneficial for junior developer to works some unpaid overtime. Time spent is not in vain, you would learn the ropes, maybe pick up some new technique that could help you in your career. All of this under the condition that you have the energy to do it. If you fill unwell, especially if you have symptoms of a serious disease, then your body is telling you to stop and you should listen.

1
  • 2
    I think this is a good approach. From my perspective, I think it reflects better on oneself if one is honest and upfront instead of over-promising and then under-delivering.
    – Touchdown
    Feb 2 at 9:19
4

As a senior developer and team lead, I can share my insights on a situation like this. If there is a heavy workload and time pressure, it is not easy to integrate a new developer into the team.

Normally, everyone is happy to get support to complete the tasks. But a new team member might slow down the development process at first. Examples of this can be found in the Mythical Man Month.

In such a situation, it is common to give the simple tasks to the new developer. This applies to both experienced developers and juniors. By "simple" I mean tasks that do not require a deep understanding of the project. The more experienced project members tend to take the tasks with the nasty bugs or that require extra care, such as unit testing.

This leads to a situation, where the new developer has the most tasks and the largest output of lines of code. But the older project members usually know the project code better than the new developer. Although you have a larger output, the other developers might have been quicker to complete these tasks. They might feel that you are slow despite your high output. Compared to them, this might even be true.

It is essential that everyone in the team understands that adding a new developer to the team does not make the team faster. At least in the first few month. A new developer is slower and will not complete tasks in the same time as the older team members.

My advice would be to ask to share the tasks equally with the other developer. Maybe there are objections that you need more insights into the project or more experience to do this. Then ask for pair programming for these tasks. It is important that you get the necessary insights into the project to be an equal team member. At least that's what I've seen experienced developers do in a situation like this.

And don't do overtime for more than one or two days in special cases like before a release. It is your managers job to recognize that the work cannot be done in the estimated time and to talk to the client or product owner. This is a difficult task for a manager and requires some courage. This will not happen if you work overtime to meet the schedule, then you will only suffer burnout.

You are valuable to the project because you have already gained experience with the project and adding a new team member would be slower. That is the insight your manager needs.

1
  • 1
    Sorry, just learned the difference between the two words "mystical" and "mythical". Did not see the typo and thanks for fixing. Apr 27 at 6:45

You must log in to answer this question.

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