35

I have been working for one year on a data science project, from finding the stakeholder and the work to running A/B tests and finally to productionising the project. Part of running A/B tests required a lot of manual running of the code and the deadlines around Christmas necessitated back to back work until 9/10 each day.

Because of this I got sick and had to take 2.5 weeks off with a chest infection. I also had 3 weeks of annual leave over Christmas/New Year, but didn't feel rested and recuperated afterwards. I was very burned out on the project.

The final stage of the project was not something I could do - at my firm an engineer has always done that stage. This is because of the wider tech infrastructure my project needs to fit into which I don't understand. Before Christmas, I agreed to one part of this stage - setting up some Airflow DAGs.

When I returned in the new year the project deadlines were not extended due to illness. I made my supervisor aware of burnout. I was told there were more stages I would need to complete - disagreed but committed. Still, project deadlines were not extended. I ended up with about 4/5 weeks of work to do in 2 weeks.

The process for putting a project live is mostly in our engineer's heads - the documentation doesn't describe what you need to do, just copy and paste the steps.

I also had other work to do as well, so was working in parallel and missed deadlines in both projects by a week.

Escalated the need for dedicated engineering support to my manager's manager (on our regular catch up). Got the ok - but couldn't get the time of an engineer for 3 weeks.

End up working 2 projects, find out there is an infrastructure bug that's blocking the original project. It takes 2 weeks to get resolved.

Once everything is resolved, follow the procedure to get my project live. Think everything is ok, but when I switch the project on another infrastructure issue pops up.

Because of this, my manager has taken over productionising the first project - to do the final steps.

Am now dreading work (and our 1 to 1) on Monday.

In fact, I generally feel negative about this role, but also about moving to any other similar role in another company.

My question is: what should I do, and how do I avoid this sort of situation in future?

Tom Kealy
  • 485
  • 1
  • 4
  • 6
  • 1
    Typically on a project of your size when we are project planning we would allocate several weeks at the end as a buffer. If this is not needed then the project can just be rolled out earlier. However, in the case of becoming ill or burned out it gives you the space to get the project back on track without the panic of having to explain to your managers the reason for the delay – A. Fletcher Mar 03 '20 at 10:43
  • @Bebs That is not the same as this case specifically being caused by work. But a claim such as this would or should at least be made by medical personell, and the pertinent question is - was it? – Stian Mar 03 '20 at 10:55
  • 38
    @Stian I think it's clear what the OP means... He was overworked which left him open to a bad chest infection. Stress is well known for causing physical illness as well as mental. Especially (for this case) causing a weakened immune system. – Gamora Mar 03 '20 at 10:59
  • 25
    Do I get you right - you had 3 projects in which ou were the bus factor of 1? If yes this is what you should do. Never ever do such things again. – SZCZERZO KŁY Mar 03 '20 at 12:02
  • 1
    @SZCZERZOKŁY just 2 projects which I was working alone on. One which was scheduled to finish after Christmas, but got delayed, and a new one due to start in Feb. The timeline wasn't extended on the 1st because I was ill and nobody else could/would take over. – Tom Kealy Mar 03 '20 at 12:44
  • 16
    Are you good in saying no? If not, this is something you could try to improve. – guest Mar 03 '20 at 13:27
  • Do I understand it correctly that you rested for 5.5 weeks just before a deadline? Did you confirm beforehand whether or not the deadline would be adjusted? Did you receive permission for the vacation time off? – Mars Mar 04 '20 at 01:03
  • 33
    your title says "messed up at work", but reading the rest I don't see anything you did wrong – Ivo Mar 04 '20 at 08:48
  • @TomKealy, what was the outcome, in general terms, of the 1-on-1 meeting? – teego1967 Mar 04 '20 at 11:08
  • 2
  • 5
    @mars "requested"? I mean... "chest infection".... I don't think you need to request time off if you have something like pneumonia :/...... If the company isn't immune to someone taking an unexpected sick leave for 2 weeks.... it's a big problem :/ – Patrice Mar 04 '20 at 15:27
  • 3
    "manual running of the code and the deadlines around Christmas necessitated back to back work until 9/10 each day" unless lives were at stake, this is nuts. Run fast and far to a better job (assuming such abuse of employees is at all typical and/or not seen as extreme/unsustainable by management). – CCJ Mar 04 '20 at 17:22
  • 1
    @Patrice OP said 2.5 weeks for the chest infection and 3 weeks vacation. I never said 2.5 weeks for the infection was an issue--it seems like there were 4 weeks of buffer time scheduled into the project. But after taking 2.5 weeks for infection you know the buffer is down to 1.5 weeks. With the buffer down to 1.5 weeks, it's certainly a professional miss to take 3 weeks vacation without discussing with one's manager. That's why I requested confirmation – Mars Mar 05 '20 at 01:02
  • @IvoBeckers well committing to a deadline he couldn't hold was wrong. Thinking of having to do work for 4.5 week in 2 weeks is wrong, as that assumes he actually tried to do that or considered it his responsibility to do that. His responsibility was to do 2 weeks work and remark at every possible occassion that this means the project will not be complete at the deadline. But I agree that what OP thinks he failed in is likely not what he did wrong. – Frank Hopkins Mar 06 '20 at 01:52
  • 1
    The one-liner is you're totally burned out and your management have been working you like a dog. But how much of that is you not saying no and agreeing to unreasonable requests and timelines (never do that again), vs how much is them mismanaging or exploiting you, is hard to tell. Also, don't take on a third project before Christmas, until you've shipped the first one (define "shipped" as "production code has successfully run for n days without issues", n >= at least 3). If you need to say "No, I'm not available till Jan 15" then say so. They should assign someone else. – smci Mar 06 '20 at 13:37

5 Answers5

98

what should I do, and how do I avoid this sort of situation in future?

Perhaps there are details omitted, or I'm particularly bad at reading today. But honestly, there is nothing in the question that points to a particular mistake you made, that would be "your fault".

I find the best question to ask myself is:

What specific things did I do wrong, what specific alternative did I need to take instead that would have prevented this?

If you cannot answer this directly, and you don't have a specific list of steps that would have actually changed the outcome - then it simply is not your fault.


The normal advice is always, flag up scheduling problems early and make sure people are aware that you're going to need more time before it reaches that point. You did this, you were told that you didn't have extra time.

That's a decision you didn't get to make, and if it caused the project to fail - then you can also figure out quite easily whose fault it was.


PS: Just to be really clear - "being sick" - doesn't count as something you did wrong, as there is no reasonable step you could have taken to guarantee not being sick. Any business that can't deal with a single employee being absent is taking a risk.

  • 33
    And being overworked almost certainly caused "being sick" so it's still not his fault. – Clonkex Mar 03 '20 at 22:29
  • 1
    I, and I am sure many others have been in a similar position. The problem is that the role feels like a constant pressure, and of course mistakes then happen, but tackling the constant pressure becomes the priority and sole responsibility and so it becomes difficult to think something/someone else could be to blame too. That all changes though when you see your boss invalidate all your hard work because of absolute stupidity. – Damien Golding Mar 04 '20 at 03:28
  • well getting sick could have been his fault since he overworked himself so much – Aequitas Mar 04 '20 at 05:31
  • 6
    @Aequitas Based on how he describes the work, overworking wasn't his decision. – Parrotmaster Mar 04 '20 at 08:46
  • 3
    @Aequitas OP writes, he notified superiors about feeling burnt-out. I don't know about your workplace, but here it would set off several alarms, probably HR and employee rep. getting involved. Dismissing it would be counted as major malfunction on the part of the superior, probably ending in him getting reprimanded in some way. – Fildor Mar 04 '20 at 17:00
  • @Fildor the way i read it; noone told op to work 10 hours a day, they just felt pressured to do so. It's been proven time and time again that more time at work doesn't necessarily increase productivity, it generally actually does the opposite. It's possible that if op took care to not burn themselves out, they may have actually completed it on time (or gotten closer), as they would've been more productive and probably wouldn't have gotten sick as well. Not saying that there aren't a bunch of things wrong at OP's workplace though. Just if they are self managed they could've avoided burnout – Aequitas Mar 05 '20 at 03:54
  • @Aequitas I remember a research project into overtime and burn out and the cost effectiveness of such methods. If I recall properly, a month or so of overtime can be more effective in getting work done, but obviously this falls off hard if you keep pushing. – Shadowzee Mar 05 '20 at 05:25
45

Any software project that requires a year of work of a single individual before any deliverable or production staging is made is fundamentally misplanned and mismanaged. In the future, if you find yourself doing more than a couple of weeks of individual contributor work without some sort of stakeholder validation or control feedback treat it as a red flag about your team/department/company.

  • 1
    Not to mention a lack of Quality Control, what seems like a lack of project management and requirements capturing, and no one even handling a risk analysis for the final integration or staged environment testing... Either the OP was expected to be responsible for ALL of these things, and should be getting paid a lot more, and/or the project was mismanaged and had too few resources to be successful. – Shorlan Mar 04 '20 at 22:26
  • 1
    There is not a single statement that I can find that justifies your premise of no feedback/validation. This seems pretty off-topic – Mars Mar 05 '20 at 01:06
  • 1
    @Mars I see a lot of those in the OP, where they talk about how things fail for unexpected reasons when they try to deploy them. – ObscureOwl Mar 06 '20 at 10:07
  • @ObscureOwl How are deployment failures linked to stakeholder validation or control feedback? In my experience, a project that hasn't been approved by stakeholders wouldn't proceed to production. – Mars Mar 06 '20 at 10:14
20

I was told there were more stages I would need to complete - [I] disagreed but committed [to it].

There's your mistake.

I ended up with about 4/5 weeks of work to do in 2 weeks.

I feel for you because I have been in your situation, and I have also learnt how to avoid these situations. As a generalisation (perhaps a gross one), programmers tend to be introverted, while bosses tend to be extroverted. When a disagreement arises, it is usually the more forceful personality that "wins".

You rightly objected to your boss's deadline estimate but then agreed to get it done in that time anyway. The professional thing to do would have been to reiterate that in your professional opinion as a developer that there was still four to five weeks of work left and that it was simply not possible to do it all in only two weeks.

I was burnt out after a particularly bad job/boss and I couldn't return to work for two years. Two years after returning to work I had learnt to push back unreasonable deadlines. My team leader told me I had to do a task in three days (estimated by him based on the boss's deadline). I estimated it myself and told him it was impossible to do in less than six days. He told me it had to be done in three. The boss had promised a client it would be done in three days so it was my duty to do it in three. I should work late every day until it was done and do unpaid overtime. I wasn't a team player for refusing.

As you see, a lot of pressure was put on me to capitulate. My team leader badgered me every day to lower my estimate. However, none of this pressure could change the size of the task or the work required to complete it. I ultimately got it done one hour before close of business on the sixth day, my most accurate estimate to date!

Because of my background, I am now very sensitive to unreasonable deadlines and giving false promises. However, when your energy levels are low it's hard to push back. It seems easier to give up and agree. But this has a number of problems:

  • You've given your boss an unreasonable expectation of when the work will be finished
    • Your boss will use the information you've given them to make business decisions. They might just report to their boss, or they might organise something to coincide with the launch date. Either way, a bad expectation will lead to bad decisions and outcomes. The project could fail if it's time sensitive. Your boss could lose their job (extreme situation).
  • You're at risk of further burnout
    • Your health can suffer. Your recovery could be prolonged. You will make more mistakes and more bugs. It will take you longer to complete your work if you are able to. You might lose your job (extreme situation).

You have two things you can negotiate on: the length of time, and the number of features. It might have been possible to complete the project on time if fewer features were completed, with the remainder to be done after launch. It's your boss's job to get the work done as efficiently as possible, in terms of money, resources, time, etc. It's your job to communicate honestly when a project or a task will need more money, resources, time, etc. than allowed for. You should also communicate any problems as soon as is practical.

I would advise reading Robert C. Martin's The Clean Coder - A Code of Conduct for Professional Programmers, particularly chapter 2: Saying No.

It might seem like I'm being harsh, but I do understand how being burnt out affects your mental state so that you prefer to "just go with the flow" and "not make waves". You need to focus on your health. I know from personal experience how bad health can prevent you from working, and how it can negatively impact your performance.

The professional thing to do is get well! If that means working less right now, then so be it. When you are well you can work at full capacity. Only when you are well can you work at full capacity. You need to learn to say "no" and present alternatives. When your boss says "It has to be done in two weeks" you say "I would do it if it was possible, but there's at least four weeks of work here. Can we move the deadline or remove some minor features?"

In your one-on-one tell them you recognise that you should have been more forceful in communicating accurate information and that you will keep your boss informed of issues as they arise (which can be as soon as they speak). Let them know your health is still an issue and you're working on it to get back to your usual performance, and that long hours at the moment will impact your health and make the situation worse due to your recent burnout. If you can, get a doctor's certificate stating that you are still capable of performing at your job but that you need more rest than normal until you have recovered. They will probably give a date to review your recovery and advise further.

CJ Dennis
  • 1,209
  • 8
  • 17
  • 2
    "You have two things you can negotiate on: the length of time, and the number of features" – This is very important. There are way too many people who don't understand this: There are two proven working ways to deliver software: fix the set of features and release when ready, or fix the release date and release whatever features are ready (Ubuntu, current Windows). There are also two proven non-working ways to (not) deliver software: fix the set of features and the release date (iPhone OS 2.0), or fix neither (Debian 3, Windows Longhorn, WorkplaceOS, Taligent, Chandler). – Jörg W Mittag Mar 05 '20 at 10:57
  • 1
    Just to add if every you're told you're "not a team player" for pushing back on an unrealistic deadline, remind the person you're talking to that if they were a team player, they'd have checked with you first before committing to the short deadline ;-) – Ralph Bolton Mar 05 '20 at 15:06
11

what should I do,

I think you're already doing it. You're looking at what went wrong, asking why, and looking for tactics to prevent it happening again (or mitigating the damage if it does happen). You could hold a formal retrospective, but remember to list the things that worked well too, so you keep doing them.

how do I avoid this sort of situation in future?

I ended up with about 4/5 weeks of work to do in 2 weeks.

There's your problem. Allowing your boss to set impossible expectations leads to stress, and stress leads to illness and mistakes.

When you're given multiple things to do, estimate how long each one will take, and ask your boss to prioritise them. Then provide updates so your boss can see how much work is still to be done, and can change the priorities as necessary.

When this sort of situation comes up, the boss is portrayed as a bully who thinks shouting at an empty fuel gauge could avoid the need to stop and fill his car. In reality they usually just don't understand what needs doing and how long it's likely to take - or maybe you don't understand exactly what they want and are overcomplicating things.

Don't see this as 'failing to do an impossible amount of work in the time available' so much as 'failing to communicate the amount of work and negotiate a workable plan'.

find out there is an infrastructure bug

This is another issue, and easier to address. When there are unknowns in a project, it's best to tackle them early on. Obviously you can't deploy until you're finished writing the code, but you could have tried a simple proof-of-concept. New things rarely work first time.

Your boss may have vetoed spending engineering effort before it was really necessary, but then you wouldn't feel it was your fault.

Robin Bennett
  • 10,560
  • 2
  • 27
  • 36
  • Sound advice for the next project. Doesn't help OP 'on Monday', though. – knallfrosch Mar 03 '20 at 21:03
  • @knallfrosch, not all of the OPs question was geared towards Monday. But adding a bit, if possible, to address that part of the question could make this answer better. – computercarguy Mar 04 '20 at 00:35
5

There are few things that learnt from experience:

I was told there were more stages I would need to complete - disagreed but committed. Still, project deadlines were not extended. I ended up with about 4/5 weeks of work to do in 2 weeks.

If the project needs 4/5 weeks, it will not be done in 2 weeks just because your boss wants it that way. As early as you understand that let your boss know, that you need 4/5 weeks to implement expected features. Most importantly, however, talk to your boss about what is needed and two weeks, and what you can do in two weeks. Very often, depending the situation, there is something that you can do in two weeks that is enough for your boss to show progress and ask for extension.

This is because of the wider tech infrastructure my project needs to fit into which I don't understand. Before Christmas, I agreed to one part of this stage - setting up some Airflow DAGs.

It sounds like you were giving estimates on parts of the project you are not familiar with. You should have told you manager that you cannot give an estimate because you are not familiar with this part, and requested that an engineer, who is familiar with this part be added to the team, and then she would provide an estimate. Also, you should let your boss know, the parts of the project you will need help with as soon as you know, so she can book the resource as soon as possible.

Akavall
  • 891
  • 8
  • 15