Ask HN: How to deal with managers who set a hard time-limit on fixing a bug?

39 points by null_object ↗ HN
What would be a good and not career-destroying approach to deal with managers who set a hard time-limit on when a bug will be fixed?

For some context, this arose in a pre-release application-critical bug that several people had attempted to solve, but which we had no insight into the cause. As it turned-out, the external partner for whom we were building the application had supplied one wrong piece of configuration - but this information was confidential to their setup, and we had no insight into how it would break another part of a complex flow (or even that it existed).

The essential problem, is that the management simply sent out a mail to the whole team saying the bug should be fixed by the next day at 'close-of-business'.

Question is how to deal with this sort of management behavior without ending your career?

I'm aiming to find some constructive way to help them in the future to see why bugs can't always yield predictably to time-boxed developer effort.

66 comments

[ 4.8 ms ] story [ 85.5 ms ] thread
You don't. It's entirely their failure to set expectations without prior technical consultation. In this case they'll get the blame.

They'll blame you, and you can blame the external partner, but this line of blame nobody cares about.

First: discuss with your development team the issue, make sure you get buy-in on replying to management with one voice. A.K.A.: avoiding you saying "We can't do X" and someone else goes: "Of course we can!".

Second: talk to your manager. Don't send an e-mail. That would just turn in a long, and possibly bitter, battle of 're:re:re:re:' or be interpreted as a C.Y.A. fig leaf. Make sure you start by understanding where that timebox is coming from and how 'un-elastic' really is. Then proceed to explain that for your team it's hard to commit to a timeline when the - currently unknown - fix to the bug could be a line of code or rewriting a whole component of the software. Reach an understanding that - of course - your team will try an deliver in the gives timebox if at all possible, but that you will keep him informed of any findings that may indicate that it will take longer.

Third: proceed working on the analysis and fix keeping them in the loop; make the messaging short, meaningful and to the point. "We found the issue: X", "We're designing a fix: Y", "Current estimate for the fix is Y". Make sure that the communication is timely. One thing is to say at 10AM: "We think it's going to take two days", and another is to say the same thing at 5PM.

Ideally this should come from the Dev team lead - which is what I do for a living. We are there to take the fire.

If you get pushback, no answers and management doesn't respond well to this pattern - well, you want that career destroyed and to move to some other place.

I think this is probably about as close as we will come to a process that would work.

I'd say that right now the company I'm working for doesn't have the structure in place - no team leads, for instance - to dissipate the heat when it's on, and no procedure to follow when things go wrong.

These are definitely things to think about as we grow. Thanks for the constructive reply!

Glad to help, I have been in your spot; until you get the structure in place just make sure that the team is in agreement on the response.

I always believe in good faith and positive intent - call me naive - so I assume the managers have their own pressure to respond to and business needs to satisfy.

The 'understanding' first step is needed to see if there is an interim solution that takes the fire away from the business, the manager and the dev team. IE: The feature with the bug is not as urgent as other features in the same drop; squirrel away the bug behind a feature flag and deliver the rest. Now you can go ahead and fix the bug with a proper pace.

Yep, take a look at how GGG handled latest POE patch. Seems there was an issue with db paging but it's hard to find and took about 13 hours or so to fix.

Sometimes bugs are really hard to track-down, it's important to learn and not make the same mistakes going forward though.

Step 2 is key. You need to understand why the pressure exists. Is the CEO demoing the software and does not want a big error screen to pop up? Is your biggest customer complaining? Does you CTO need his Etch-a-Sketch reset?

You also need to understand what constitutes success. Can you disable feature X?, Can you catch the error and log it but not display or stop execution? Can you do a quick hack workaround while you take longer to fix it.

Agree, and will suggest generically that, fourth, that post-crisis, you sit down with your manager to understand and learn from the experience. Root cause of the bug? Root cause of not seeing it earlier? What made it become a firedrill? Net, how do we avoid a next-time?

In your particular case, it might help to understand what was at stake for your manager in this instance. You may gain some leverage from having come through.

Also, with partners who are integrating your stuff, it can help to provide a reference client or reference integration, so that they can see what you did to make things work - the partner would have helped you by self diagnosing.

Earlier in my career, I would hear my manager say something about a specific situation and I would extrapolate that into a general belief and theoretical/academic debate that frustrated everyone. Make sure you're not doing that.

As a manager, sometimes you need to say things like, "This bug needs to be fixed by EOD tomorrow" so that your team understands the urgency and your expectations. The more technical the manager, the more likely they can understand whether that expectation is reasonable.

> As a manager, sometimes you need to say things like, "This bug needs to be fixed by EOD tomorrow" so that your team understands the urgency and your expectations.

I'm sorry but you can do that without sounding both clueless and unreasonable. You can put everything else on hold, stop the line, explain why it's important for this to be fixed, etc.. to get the point across.

"This bug needs to be fixed by EOD tomorrow" would chip away at the trust I have with management and depending on other factors would lead me to brush up my resume...

I agree, and I've been the manager in this situation. There's some reason he's saying "EOD tomorrow", so he should just share that. Like "It's likely we will lose this customer if this isn't fixed by EOD tomorrow...so please make this the only thing we're working until then".
Usually, you don't lose a customer over a bug in two days. Customers are reasonable usually and understand that it takes time to fix bugs. Most of other reasons like CEO doing a demo at a conference can also be managed. I really don't see a reason for hard deadlines ever. In fact, hard deadlines is sign of bad management with notable exception of startups and other young companies with no managers or new managers.
Sharing the reason allows for that debate, or alternatives. Maybe the customer has some sort of demo or something, and you could offer a workaround in that case.

Hard deadlines for some sort of fix or workaround do exist. Like "Earnings Call Tommorrow, and I can't just say ' I Dunno'"

I agree with statement "Hard deadlines for some sort of fix or workaround do exist". Key being get this done before CEO's big presentation or hard code something or CEO doesn't demo this feature. The point is no one dies if CEO doesn't demo it or feature is not complete by earnings call. Earnings call is known event, one should have better planned for it.

And that bring me to people literally dying because of bugs in software like in cars or medical devices etc. That might be one time where I would have no problem sacrificing my family time for getting bug fixed. But most other situations are just artificial and deserve no extra stress.

(comment deleted)
It sounds like your management really wants this bug to be fixed quickly. You should think about why they try to put so much pressure using their own words, which are not the best indeed.

Your team should probably focus on this bug, to fix it ASAP. It may take longer than what the management is hoping for, they are likely aware of that.

The 'bug' was fixed long before the deadline - this isn't about me venting some negative energy on HN when I should be working. Throughout my career I've worked with project managers who've consistently misunderstood the nature of bugs and how they're fixed, and I've often tried to explain why setting an arbitrary timeline doesn't help - regardless of whether they are trying to 'set expectations' or underline the seriousness of the situation.

I hoped that others - I'm sure pretty much everyone has at some time experienced this management style - would be able to give some good tips about ways to help the management to a better understanding of the process.

The discord you're experiencing in your career is real, and to some extent it comes with the profession. Companies are in the business of making working software on time. But you can't always make software work on time. This puts stress on you.

You're trying to get managers to stop setting bug deadlines on the theory that they don't understand that it doesn't help the situation. My assumption would be that they don't care that it doesn't help, they want me to do my job.

I've worked for management that not only showed no signs of understanding the nature of making software, but also didn't understand the nature of making money. A much more serious problem in my opinion. Their job is to bring in the business and your job is to make the software work on time.

It wasn't clear to me earlier that you may be dealing with executives by proxy of a project manager. That's a worse situation because you can't level with a project manager, they are stuck in the middle. You may want to go over his head (if you report to the p.m.) but if you do that, do not complain about him or anything else, bring only solutions and charm.

See my other comment for some more constructive and specific suggestions.

One job isn’t your career. Staying at a place that doesn’t understand or respect developers is actually damaging to your career.
The honest answer to this is to find an employer that actually understands software development.
It's also important to remember that one person is not the whole employer.
Just communicate that setting a _priority_ for a bug is fine, but a timescale isn't, as you don't know what you don't know. Then let them know what resources you need to figure it out as quickly as possible (maybe it's just space and time, maybe it's people, maybe it's expertise).
If you go to your mechanic and tell them "car won't start", does your mechanic have idea how long it's going to take to fix or how much money it will cost? Realistically, you will be charged a fee to figure out what is wrong, and another to fix the problem.

When you have a bug, you are still figuring out what is wrong.

When you have the luxury of telling someone that in software, it's called consulting!
The problem will solve itself by the time the deadline comes and the bug is not fixed.

Meanwhile, don't promise anything, don't commit to anything but don't burn any bridges. Be professional, explain what do you think it is, what might be wrong and why is it hard.

"This bug will require a longer investigation and we cannot commit to any timeframe for its resolution" (unless you have a fallback/workaround ready or it is something you don't expect to be complicated)

I'll play Devil's Advocate here: there are sometimes critical business deadlines that absolutely require timeboxing a bug at the risk of losing a contract. I wish the world could conform to SDLC best practices, but sometimes reality is messy, and hindsight is 20/20. So that said, I think the real problem here is what you alluded: several people attempted unsuccessfully to solve it: how many man hours was this? How any calendar days? Did you report this up the chain early on, or was management blindsided by it because you kept hacking on it as shadow work, or didn't communicate how critical it was? If you did your due diligence early on, then I agree with everyone saying you should leave. If the people issuing the directive didn't receive adequate warning from your team, fix that next time.
> deadlines that absolutely require timeboxing a bug

To be clear, timeboxing is usually used in the opposite sense, to say "if this bug is not fixed by end-of-day then we should abandon the effort because the value of fixing it is limited".

It can be useful to timebox the amount of time that you spend trying to find the "right" fix before falling back to a workable solution -- like "if you can't fix the problem with the email sender by end of day we're going to send out the emails manually".

> I wish the world could conform to SDLC best practices, but sometimes reality is messy

Reality is messy, but what the OP describes is the denying rather than dealing with that reality. Putting a two day limit on a bug fix is not going to make what could potentially be two weeks of round the clock work suddenly become two days worth of work.

I think being honest will not affect your career in a negative way. In this particular instance, it could potentially harm this job now, however if telling the truth gets you fired, that is not a place where you want to work.

Hearing your baby is ugly is painful but a necessary part of business, if we can't be ruthlessly honest with each other, then no one wins.

Thoughts in my head:

* They should be aware from the onset that this requires investigation first of all. You would provide them with an update to see if you can actually timebox it midway into the process (be that the EOD or on another day)

* After having recognized that this problem was just a configuration issue, one should write down why that bug was so difficult to find and what is the work to be done to make that issue more visible?

* Speak to your personal manager and talk through the problem. Maybe they can share the insights with the management team.

I'd reply explaining in depth why that's an unreasonable approach, with painstaking care taken to make it sound like I assume they just haven't thought of, or aren't familiar, with these factors.
That makes it into a useless internal battle in what is probably a time of crisis. If it happens every month, absolutely, write the details down and have a very serious talk about it. But spending time to write in painstaking detail about something that is clearly a crisis while you could use that time to solve it is really not a constructive approach.
As a manager - I've had to do crap like this now and then to light a fire under people. It can be done to indicate extreme urgency. There also are real-world implications to some delays - for example not being able to run payroll is a legal nightmare and an ethical nightmare for hurting your employees.

Generally, when I've had to do this, it's been my fault for not manangeing properly.

(comment deleted)
I'm curious, does it actually lead to faster resolution or does it lead to engineers spending time thinking about how to deliver the bad news versus actually focusing on the problem?
Also manager. I feel like the manager's communication is off, though the end result is the same. All I need to ensure is that a) you are working on this HARD and know to turn down other tasks (and possibly put in extra hours) and b) you will update me immediately if the timeline can't be met.

Usually this request, though frequently very rare takes the form of "Issue $ISSUE is causing critical impacts on $IMPORTANT_THING, if we don't solve it by $TIME, it will cause $BAD_IMPACTS. Please make this your top priority and redirect questions about all other items to me. If you think this will not be done by $TIME, please let me know as soon as possible. I appreciate your hard work" Then you tell rest of the org: "$TEAM is working on $ISSUE and is re prioritizing other commitments. If you have any questions or concerns, please reach out directly to me."

If the developer turns around and says "this won't happen in time", that's a problem for the manager, not the developer in like 99% of situations. It's not "bad news", it's the truth, and you should always be able to tell the unfiltered truth (especially to your direct manager!) without any repercussions.

Wow if you're real, I'd love to have worked for you. Typically managers don't do the other half of what you do: they want critical surprise issue fixed yesterday, and with no caveats; you better still be available for marketing bullshit and that salesforce thing and that support issue we escalated to you and also when's that feature going to be ready?
>Usually this request, though frequently very rare

Spoken like a true manager

Yes, it works, and that's why it's dangerous because it lets a manager fall into bad habits of doing it again.

It makes the people doing the work pull out all the stops - beg vendors for support, drive to the customer site to witness the problem, and generally so whatever it takes.

>Generally, when I've had to do this, it's been my fault for not manangeing properly.

This is key. Sometimes it's reasonable for a manager to coerce a team member into going above and beyond, but it's important that the team understand that it's not just because the manager really wants to meet their targets on the business side, and that somebody above the team member is responsible for the situation's existence.

1. Communication is key here - it sounds like you have a breakdown in communication with your manager, or a breakdown in their understanding of your work.

2. You're attempting to turn something very specific (please fix this bug), into something very abstract (some bugs can't be fixed, some bugs take longer than expected to fix). That's not going to help, particularly if this was in the end a simple fix, it just makes you look obtuse and out of touch.

3. The manager's proclamation is probably born of frustration with previous experiences where bugs were not fixed quickly and they have no idea why. Communication is the answer - if you communicate before and during a bug fix, they won't wonder why, they'll know why if it is not fixed, and they'll know what you are working on or have to sacrifice to make that happen. They'll know when you are installing logging to track it down, or when you eliminate modules one by one in tracing it, they can follow along and explain to their manager why it is not yet fixed.

4. You need a process which you both agree on for escalating bugs or setting priority - this clearly isn't it, but what is it?

Instead of complaining to them if you possibly can fix this bug quickly (perhaps you already did), then talk to your manager privately about process, talk to them about timeframes and how best to frame them, and try to find a process that works for both of you. That process will involve compromise on both sides - the manager accepting that sometimes things go wrong, sometimes bugs are difficult to pinpoint, and that scope/quality will sometimes be cut to deliver on time, you accepting that your job is to communicate upwards (particularly when things are unexplained), and accepting that sometimes corners will be cut on quality to deliver on time, and some things which are important to devs are not as important to the company, and that schedules and estimates are required, even if they can never be completely accurate.

I assume you are working at a exceptional company (FAANG level at least) since your management team is capable of estimating time required for bug fixes in such a precise manner.

But seriously, the best management I've seen had a pretty good way of communicating what was important to work on. For something like that they would simply have emailed the dev team and stated that "bug X is an absolute release blocker" along with a list of engineers in charge of leading the fix (said engineers would have been contacted privately and whatever tasks they had deprioritized). Then the email threads would be used to share the latest details on the investigation.

You can't put a hard deadline on something like a bug fix, but you can maximize your chances of meeting that deadline by making sure the right folks are 100% focused on that fix.

Now, is your management technical at all?

The best thing to do is to put yourself in the manager's shoes.

1. They probably know less about the issue than you do, including the fact that they don't know what you don't know. 2. The cannot fix the problem themselves; they have to find the best people to fix the problem. 3. They also have managers (or customers) harassing them for answers.

They have two choices. The first is to get the issue fixed as quickly as possible so that they don't need to learn any detail about what the issue really is. If an issue is fixed quickly then everybody cools down and all concerned parties generally become disinterested. The one day deadline is most likely an attempt at option no. 1. The second option for the manager is to find out as much detail about the problem and be confident that they have the best team working on the problem. That way when they have to report to management above them (or to customers) they can do so with relevant information and confidence. Remember, everybody has a boss.

So, now that you know what your manager needs, you need to convince them that they need to follow option no. 2. You need to explain the problem in such a way that they can parrot that information upwards. You need to convince them that you are the best person to do the job. Furthermore, and this is the tricky bit, you need to tell them that you don't know everything but as soon as you find material information you will tell them. After your high level synopsis, swamp them with technical updates. Although these details may not be understood or relevant to your manager they contribute to the trust you need to build up as time passes. If your manager is good and you have been transparent with them they will begin to defend you in higher level meetings.

It's never your job to empathize with your manager. They get paid more to manage you. If your manager needs coddling, you're managing them. Or you're being a friend; but as a subordinate they are responsible for enabling you, not the other way around.

When I'm a lead/mentor, I know my job is to protect and enable people. When I'm a cog in the machine, I expect leadership to have their shit together. When leadership doesn't have their shit together, I quit.

"How to deal with managers who set a hard time-limit on fixing a bug?"

Leave

The usual approach when management is this dim is to give a well couched opinion as to the reality of the outcome and then say sir yes sir or mam yes mam and that you'll give it all you got captain. The bug will take however long it takes to be fixed. Schedules will slip out as necessary and life will somehow magically go on. If you have reason to believe adding more resources of various types will help, then by all means ask for them, but there's usually no dealing with this kind of management dictate and arguing up front will just put you in an even worse situation than not making the deadline. You will be labeled the obstructor, not the realist.
I would say you have a right to know why a bug needs to be fixed at 'close-of-business'. You just have to try and ask it in an indirect and non confrontational way.

This will better help you determine a practical and pragmatic approach because you will have a better understanding of how serious the issue actually is and it's implications may be simply overstated or exaggerated as most shitty managers are known to do without consideration of the stress and harm it may cause to others.

In any case I would try to push early that we need two plans, one for a solution and one without.

Try and manage expectations as early as possible by making the possibility of no solution viable in their thinking.

If you feel they are unresponsive or unwilling to accommodate a reasoned approach then as others have said maybe better to be fired - does not seem like a healthy environment.

Sounds like your team/company needs to establish SLAs. When it comes to troubleshooting the important timelines to commit to are communication timelines. First response with X hours. Updates every Y hours/days depending on severity/priority. You'll also want a clear process for establishing the criteria for diagnosing priority and what escalation paths should be when there are roadblocks.
I've been CTO when the CEO sent these demands. I learned you can't work for CEOs like this -- all negotiations were for naught, and it severely undermined my ability to make any agreements with the team, or for the team.
Ending your career? It's called communication.