15

Situation: I've been hired as a senior software engineer in a small team to support an existing project where the coding is done by employees without software engineering background and without IT guidance. Our existing solution is over-engineered, which causes it to be slow and difficult to debug and patch.

Vision: Our management has mostly a short-term vision and ignores concrete warnings and realistic improvement suggestions. I'm a bit the black sheep of the team, warning about issues that no one wants to hear about.

Question: How can I tactfully explain to my manager that I'm not keen to do overtime (even if the whole team will do so) to solve critical "unexpected" issues? I'm using here quotation marks since the "unexpected" issues are totally forseeable and nothing is done to prevent them.

11
  • 12
    It sounds like there are serious issues at this company and you'd do well to get out sooner rather than later.
    – jwh20
    Commented Dec 4, 2022 at 18:27
  • 5
    So what is your country? Somalia? Denmark?
    – gnasher729
    Commented Dec 4, 2022 at 18:38
  • 4
    I'm located in Germany, and have now updated the question to reflect it.
    – Lu Mu
    Commented Dec 4, 2022 at 19:02
  • 3
    Are we talking about "Überstunden" (more work, but paid better) or "Mehrarbeit" (more work, but you get time off later to bring you to the same amount of hours). What does your contract say about them? Are your required to do it?
    – nvoigt
    Commented Dec 4, 2022 at 19:48
  • 1
    What does your contract say about overtime? Mine says I "may be required" to do "occasional" overtime if asked by the company. So as long as it did only happen occasionally, I couldn't really complain. But if it became a regular request, I would have more grounds to refuse.
    – calum_b
    Commented Dec 4, 2022 at 21:00

8 Answers 8

11

An option would be to take your manager aside and say something along the lines of:

Look, you know I've been talking about how badly our software is designed. IMO, spending overtime to keep patching issues, without addressing the core design problems is a recipe for burnout - for me and for the rest of the team. Addressing the current situation that way doesn't actually fix anything, and could make keeping this software running even harder. I'm an experienced enough engineer to not be willing to spend my personal time doing that. If we're not going to actually fix the problems I've been pointing out, I'll gladly work my absolute best trying to keep this project on track during normal working hours, but I'm not going to compromise my family life to save the company from preventable issues.

However, if you're up for letting me own the problem and actually fix our design flaws, I'd be up for putting in some extra time to pull us out of this jam in a way that assures we won't be back into it the next time you need a new feature, bugfix, etc. Here's what I would do (insert thoughtful plan about how to fix the problems in a low-risk, trackable way)... and I'd gladly to XYZ extra time to make that happen.

I'd do this privately, so you aren't putting the manager on the spot and directly challenging the authority. In most tech companies, I wouldn't take it amiss as a manager if someone on my team said this in front of the whole group - since brainstorming good ideas should be part of the team's effort. But in a place where your manager doesn't have the tech skills to see how bad the software is, your decline to do overtime could be perceived as a challenge to authority, and get greeted with defensiveness. Having the conversation in private mitigates that a little bit.

It's certainly touchy, and worth listening to what the manager says in response. It's worth getting aligned on why management sees this as short term work, and not something worth doing right.

2
  • +1. Taking on the overtime and patching today's bug is an easy get-out for management to defer real improvement work yet again, and soon enough the situation will repeat. There will always be some risk for OP in saying this, but if they are determined to continue accumulating technical debt in order to push features out, then eventually they will sink under the weight of it. Commented Dec 11, 2022 at 12:19
  • Sounds like company culture, so the standard "get a new job" answer is, unfortunately, likely to be the right one.
    – bytepusher
    Commented Jul 5, 2023 at 22:46
8

Given the time of year - I would pull out this one:

"Unfortunately, due to the season, I have a number of prior engagements that were scheduled months in advance that I cannot miss"

However for a more generic response:

"I am unable to work additional hours at this time and on this project" - If they press for a reason, simply state that it's personal and you are not comfortable sharing details.

Bearing in mind, since you are already the black sheep, that will likely result in more negative attention/retaliation, so the other possibility is you go full Nuclear and give the straight up reason:

"Your failure to heed my advice is a you problem, not a me problem, so I'm not working a second past my 9-5 to fix the screw-ups you created by ignoring me"

6
  • 18
    Of course if you voice that last, you may not be working a second past that meeting. Not usually recommended.
    – keshlam
    Commented Dec 4, 2022 at 19:26
  • 1
    It's a high risk option (hence the 'nuclear' tag) - realistically, the refusal (regardless of reason) is likely to put the OP on the track to leaving the company (either being administratively removed, or 'encouraged' to leave) - So an option may be to give them the brutal truth in the hope it makes them open their eyes. Not a high probability granted, but I've seen it happen once or twice. Commented Dec 4, 2022 at 20:10
  • If TheDemonLord gets fired, then none of the work will be done at all.
    – gnasher729
    Commented Dec 4, 2022 at 21:45
  • 6
    There are very few things that could get you fired in Germany, but your advice would be one of them with any normal employment contract.
    – nvoigt
    Commented Dec 4, 2022 at 22:20
  • Even when they "deserve" to be told they have no right to ask you overtime because of ignoring your warnings... you NEVER go full Nuclear, don't burn bridges unnecessarily.
    – coder4fun
    Commented Dec 9, 2022 at 5:04
7

There is no especially tactful way to decline overtime unless the request was made tactfully. If your manager asks "Would you be able to...", you can say "That really doesn't work for me right now." If the manager says "We need you to...", then if you decline you're "not being a team player" and at best you give up any chance of being rated as "exceeds expectations" rather than "meets expectations".

Foreseeable crunches come with working on things that have deadlines. Like it or not, your choices are either to deliver on time or not. If you're unable to complete everything desired by the target date, your choices are to set some of what's desired aside until next time (no matter how desirable it may be), to ship late, or to put in some extra effort to try to squeeze things in before the final product freeze. That last is a pain, but may be unavoidable depending on contracts and other commitments.

Note that "we could improve things and avoid this crunch by doing X earlier" is great, but is in continual tension with "but how much time and disruption will the improvements consume?" In the real world it can be very hard to find a good time to change tooling and approach, and even when it would have obvious benefits the existing commitments may make that simply too large an investment. You're going to have to learn to live with this until you're senior enough that they'll believe your estimates of the cost and benefit. Trying to push rapid change upward from below risks being perceived as unrealistic; see Junior engineer initiating counselling sessions to offer unsolicited advice to senior employees for an example of someone taking that too far. For now you are NOT in a position to play "I told you so" games; you need to dig in and help solve the problem, and LATER in a non-stress situation say "You know, I think we might want to reconsider X so we don't run into another crunch next time." You can't afford to be seen as arrogant; you need to be seen as someone who is realistic about cost/reward tradeoffs and who looks toward the future rather than grumping about the past.

6
  • 1
    Expanded statement: "You can't afford to be seen as arrogant if you want to have an ongoing successful career with the company. Not unless you are an absolutely stellar performer whose arrogance is justified, and even then it will only be tolerated and you'll miss out on opportunities you would otherwise have been offered." Yes, the OP may feel that's a price worth paying, and if so good luck to them; they're likely to need it.
    – keshlam
    Commented Dec 5, 2022 at 21:45
  • 2
    This assumes that management made a knowledgable and informed decision not to do the updates and changes OP suggests and that it is actually better for the company as a whole to continue short time fixing unexpected issues as they crop up (and pay their developers overtime to do it). This could be true but I wouldn't take it for granted and OP definitely doesn't think that is the case.
    – quarague
    Commented Dec 6, 2022 at 9:47
  • You can propose the changes again. But during a time crunch the answer you're going to get is "Not now; talk to me after we've gotten past this deadline." And you may be seen as not taking the deadline seriously enough. Timing isn't everything when changing a corporate culture, but it's a huge component.
    – keshlam
    Commented Dec 6, 2022 at 19:24
  • 3
    Basically, ignore whether the overtime was caused by bad decisions. It's still a legitimate business need. If you aren't willing to help out, no matter how self-justified you feel, that will not reflect well upon you. Unless you can fix the hole in a few hours, do what they're asking and start bailing.
    – keshlam
    Commented Dec 6, 2022 at 19:33
  • 1
    @keshlam, if overtime is needed because the company refuses to hire enough people for the work, then it is not a legitimate business need. Same if overtime is needed because the company refuses to fix problems.
    – gnasher729
    Commented Dec 15, 2022 at 9:46
2

Step 1: Start searching for a new job.

The problem is not the overtime. The problem is not the developers who have no oversight or training. The problem is this:

Our management has mostly a short-term vision and ignores concrete warnings and realistic improvement suggestions

As the saying goes, "you can't fix stupid". If management wants to hire a team of unskilled, untrained, unsupervised people to develop their software, they're going to get software that is broken. That's the problem with hiring that sort of team and putting them on critical applications. Anyone competent in software development would know that's a recipe for disaster, and would be very willing and open to listening to improvement suggestions.

The problem here is that, for whatever reason, management is trying to cut corners by having unskilled people work unsupervised on critical-path applications (and probably paying them far below market rate, that's usually the reason why). If they accept substandard work, this is not a company that's going to be successful for very long (if even they are successful at all). Get out of there before the whole thing implodes in your face.

Step 2: If your boss is unaware of the issues with the software, explain the issues, and explain how long it will realistically take to fix them.

Use a time scale if you have to (e.g. "it will take months of work to untangle this mess"). Explain that this is something that management has done to both of you by cutting corners and hiring this unskilled, unsupervised team, and he should advocate to his boss, as you are advocating to him, to bring in a better team who knows what they're doing. Explain it in terms of "do it right, or do it twice"; it will take twice as much work to support a broken product as it will to just build the product the right way in the first place.

Step 3: Explain that you are willing to work reasonable amounts of overtime.

30 minutes per day is reasonable. 2 hours per day is not. Under no conditions, not even condition of termination, should you sacrifice large amounts of time for the company, not even for increased pay. You have a life to live yourself, and unless you are being severely underpaid (which is a complete other issue) the money is not worth the decrease in quality of life.

Based on how penny-pinching management seems to be, my guess is they're asking you to work overtime "for the company" or "out of the goodness of your heart" or "as a professional responsibility". When you are asked that, you should ask your manager (inwardly as a hypothetical to yourself, or outwardly to your manager's face, depending on how brash you would like to be): "Our relationship is that we exchange my time for your money. That's the condition of the exchange. You're telling me it's my professional duty to give you additional time for free. Under what condition is it your professional duty to give me additional money for free?". If your boss can't answer that (or your hypothetical in-your-head strawman of your boss can't answer it), then you have your answer on whether or not it is your "professional responsibility" to work overtime to fix these problems.

Step 4: Within the confines of the boundaries you have set, fix the issues that you can fix. If you're unable to fix them, then simply say, "I am one person, I can only fix these issues so fast. If you want them fixed faster, then you should hire more competent people and/or put more effort into building this application properly". You're a Senior Engineer, it's your job to speak authoritatively on the state of the application you are working on, even if that means telling management that it the project is shitty. Continue on this path until you successfully find a better job at a more competent company.

1

Keep the two issues separate.

If you don't want to work overtime, decline overtime as you would for any other reason. Say you are not able to. That bears no implications and is a polite way to say you don't want to.

As to specific decisions being bad, bring it up separately. You can't fix bad decisions by refusing overtime. You can get them fixed in the middle of the normal work week. It also avoids any perceived conflicts of interest, making it clear that you're just helping your team.

The links between these issues is what managers should deal with. If they don't, your management might be lacking. As an IC, you enjoy being able to choose to work overtime or not based solely on your personal preferences, you don't need a reason.

0

Do the following:

  1. Always begin your day on time and seldom take an extended lunch break.
  2. Be very efficient and very effective during your normal 40-hour work week.
  3. At the end of your normal workday, get up to leave. If anyone questions why you are leaving at this hour, simply say, "I have somewhere I need to be."
  4. Have no inhibitions about repeating #3 each work day.
  5. Never apologize for #3.
-1

If you had voiced concrete issues and warnings before, there is no reason to not bring it up. Sum up what you have proposed and what wasn't followed and explain that this is precisely the situation you tried to avoid. Discuss what you want to do to prevent overtime in the future.

Basically, use the overtime as a leverage to reshape the project. Don't get distracted with unspecific promises, negotiate hard milestones and/or team working hours.

That's assuming you want to trade overtime for technical control.

-2

Overtime should be paid for. Usually the hourly rate + 50%. In that case you decide whether you want to take it.

In the USA, some people have the choice of working unpaid overtime when the company needs it, or quitting. Whoever, since you gave plenty of warning, your company should have changed the way it works, or hired more people. So your company didn't need you to do overtime. Maybe they have no money, that means they have to find that money somehow, it doesn't mean you need to do unpaid overtime.

I'd say start finding a different job, tell them that their plan running with unpaid overtime isn't going to work, and as soon as you find something better, let them suffer.

I don't quite understand the need for "politeness". It's business. If you mean "tell them without swearing" then don't swear. Just tell the facts. It's not impolite to tell someone facts they don't like to hear.

PS. In case someone didn't read past the first sentence: No, in the USA in a salaried position you don't work until the job is done. You work as long as required by the needs of the company. And lack of planning by the company or lack of money to hire more people doesn't create a requirement to work long hours. There are some muskrats out there who believe this, but the are wrong.

4
  • 11
    Overtime should be paid for. Usually the hourly rate + 50%. In that case you decide whether you want to take it. This isn't true for a salaried position, and I don't see very many software engineering positions that aren't salaried. In a salaried position, the expectation is that you'll work to get the job done. A good company will try to minimize long days, nights, weekends, etc., but if you do have to work the added time to complete the work, it's covered under your salary. Commented Dec 4, 2022 at 18:55
  • 2
    In Europe (and many european countries), labor laws use a salary grid: from level 1 to X : hourly rate. Above X : daily rate. It depends on your level of responsability and salary, contract too. But first levels have a 25/50/100 % overtime hourly rate. The more you work, the more the % grows. Then, on a daily basis contract, job had to be done. If you do it in 2 hours then you may play golf the rest of the day... From what OP says, difficult to say which category they're in...
    – OldPadawan
    Commented Dec 4, 2022 at 20:47
  • 8
    Please note that a thing such as "salaried" does not really exist in Germany. As an employee, you work "hours" with the assumptions that you do your best in those hours. If you want to sell results instead of time, you need to go the independent contractor route.
    – nvoigt
    Commented Dec 4, 2022 at 22:18
  • Note that for an independent contractor, the company pays a lot more per day because the contractor has very little legal protection (rule of thumb that 120-150 days should pay the same as one year of full time employment), and contractor selling results instead of days as work charges even more on average, and will have zero flexibility if you want changes that the contractor doesn't get paid for.
    – gnasher729
    Commented Dec 15, 2022 at 9:50

You must log in to answer this question.

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