Discussion: fireable vs unfireable mistakes at work
Posted by JadeXY@reddit | ExperiencedDevs | View on Reddit | 88 comments
Making mistakes, failing, and learning from them is a normal part of one's professional context, especially in the context of software engineering. What makes "good" mistakes vs "bad" ones is how one learns and grows from them.
A healthy work culture is one which gives its employees a healthy room to experiment, try new things, and fail. In fact, psychological safety is predicated on knowing that one's innocent failures or mistakes aren't outright cause for termination.
But obviously a line must be drawn. On one end, mistakes that are based on deceit, malice, evasion are not mistakes that should be tolerated. (obviously, systems should be in place to prevent this kinds of acts). On the other end of the spectrum, a work culture where everyone stays on their lane and refuses to innovate is a stale and unrewarding workplace.
However, not all managers and work cultures view mistakes equally. So where do you think the line should be drawn in a healthy workplace? What separates fundamentally "fireable" mistakes vs fundamentally "unfirable" ones?
Nemosaurus@reddit
If you delete all the backups and then drop the database you should get fired.
If you accidentally drop the prod database thinking it was test and take responsibility, it should be fine.
i_exaggerated@reddit
I get to drop the database this week to test/create our recovery process and I’m so excited.
damondefault@reddit
It's the "/create" part of the sentence that makes this sound so much worse than it probably is
i_exaggerated@reddit
That’s the exciting part!
DisplayedPublicly@reddit
My co-workers know that if I start to grin like a maniac the post-mortem will be 🔥
pund_@reddit
that sounds kind of dangerous
i_exaggerated@reddit
yolo
Nemosaurus@reddit
That’s pretty awesome. I’d be stoked too!
Xerxero@reddit
Disagree. If there are no processes in place to prevent this without 4 eyes it’s a security risk. Someone else should be fired for setting up this mess
Nemosaurus@reddit
Often we learn about the need for guardrails after yeeting something important off a cliff.
Pale_Squash_4263@reddit
This. If a system is so fragile that dropping something unexpected is not able to rollback, that is a company problem, not a you problem.
RemLezarHasCome@reddit
I usually disciplined people for intention, never for impact, and that example is great.
Sheldor5@reddit
been there, done that
was at the customers site, got remived from the project because of political reasons but didn't got fired from the job, boss was very nice and said I will learn to be more cautions next time, he was rigth, since then I tripple check before making any change on a server
-ry-an@reddit
With that said... Moving forward, this shouldn't happen again. Dropping a db I'll always make a BU (if reasonable to do so) before messing around with stuff.
BroBroMate@reddit
I'm just setting here very glad to not be under American law.
dedservice@reddit
You can't get fired even if you take actions that directly conflict with instructions of higher-ups, and doing so causes harm to the company? I would understand if a single incident can't get you fired, but surely it shouldn't take too many instances for it to happen.
StTheo@reddit
Accidentally delete prod data that has a backup, while promptly letting higher ups know: not fireable. Commendable, even.
Lie about bugs, resort to name calling, yell at your fellow employees, and just generally make everyone miserable: fireable. Also go get therapy. (I’m still fucking traumatized over one asshole that checked all those boxes)
lIllIlIIIlIIIIlIlIll@reddit
Blameless culture. Means you don't blame the person, you blame the process. And processes can be iterated on and improved.
You fire people if they:
If a person is making unique mistakes left, right, and center... they're growing. They're doing constantly doing something they haven't done before. Sometimes, someone is going to get "lucky" and step on all of the landmines. But if the mistakes have a pattern, something like, "Another mistake because they didn't properly read the documentation," then they're not growing.
Izacus@reddit
If you blame a person for ignoring the process and repeating mistakes... is that still blameless culture? 🤔
lIllIlIIIlIIIIlIlIll@reddit
Yes it is. I feel like you're trying to argue semantics instead of arguing the idea.
Blameless culture != never blame. That would be "Never blame culture." Blameless culture means blame everything except the person until there's nothing left to blame but the person.
Downtown_Football680@reddit
shagging your skip: fireable
shagging someone from another reporting line: unfireable
Beneficial_Map6129@reddit
I’ve never heard or seen anyone get fired for a mistake that was not malicious in intent.
I’ve heard of C suite and management get the boot for arguing against CEO roadmaps or not instantly responding to CTO management that nags.
PragmaticBoredom@reddit
Only once have I seen people fired on the spot for mistakes. That company was extremely toxic for many reasons.
This is usually the tip of the iceberg of ongoing conflicts.
At the executive level it's your job to execute (literally in the name) and make things happen. Giving feedback about roadmaps is good, but continuing to argue against the CEO's roadmap will get you replaced by someone who knows how to disagree and commit to carrying out actions.
Communication and responsiveness are also critical at this level. Executives who try to play the game where they only check e-mail once per day are usually short-lived.
Beneficial_Map6129@reddit
I meant like they would get pinged at like 11pm in the middle of a night in a conference call. I don't think the context was an operational emergency, just that some sort of blame game was going on and they were pinging tech leads and managers to do some dumb task that escalated into a conference call.
Series D/E startup btw, so this was a pretty sizeable company.
ciynoobv@reddit
Imo the moment you start punishing honest mistakes is the moment your engineers start trying to hide the mistakes under the rug. People fuck up sometimes, you can’t really change that.
That is also in my opinion the cynical reason you should want to foster an environment of psychological safety. Even if you don’t give a fuck about your employees happiness, the sooner you know about an incident the sooner you can fix it and reduce the impact.
Though if someone refuses learn from mistakes then it stops being honest quite fast.
johnpeters42@reddit
Some ICs have also been fired for other reasons (not pulling their weight and having a bad attitude about it).
Devboe@reddit
As a software engineer, I don’t think there should exist a single mistake that is fireable if proper processes are in place (code review, tests, ci/cd, qa, limited prod access, etc.). If a software engineer is making consistent mistakes, especially the same mistake, then it is time to let them go assuming the correct steps have been taken to inform them and enough time has passed and they fail to improve.
PragmaticBoredom@reddit
I think I would have agreed with this years ago, before I entered management and saw some of the weird things that people do at times.
There are some mistakes that are more like extremely poor judgment, where someone chooses to do something risky or dangerous that results in a mistake that causes massive fallout for the company or other people.
When someone reveals themselves as having very poor judgment or as a person who will do risky/dangerous things when they think nobody is watching, there is a point where trust is lost and you can't reasonably leave them in a position that requires trust.
A simple honest mistake is not it. Some big errors in judgment are just too hard to overlook. I wish I could go into details about some examples, but the biggest one I'm thinking of is related to a semi-recent public incident that caused major problems for a company.
mental-chaos@reddit
I used to work on a team at a large corporate place where I identified lots of incidents / triaged them to what broke it. I dealt with many dozens of people who were otherwise very strong engineers during the worst mistake of their career. Many of those situations left me wondering wtf they could have been thinking. Judging a person on a single data point is almost always flawed. If there's a pattern that the incident is a symptom of, then sure. But it's always easy to identify the mistake of judgment in hindsight.
PragmaticBoredom@reddit
The example I was thinking of involved someone who had a choice in front of them but intentionally chose to do the risky thing because they thought the consequences wouldn’t come back on them if it went wrong.
Once someone reveals that they’re willing to exercise poor judgment when they don’t think people are going to find out, it’s hard to regain trust. It’s hard to even know if it’s the first time they’ve done it, or just the first time they’ve been caught.
FrustratedLogician@reddit
At my previous workplace, a staff engineer created a piece of code that was approved by a director - it caused a P1 incident that made many people work over the weekend and tidy up ramifications weeks later. The staff engineer was fired because it has ruined weekends and days of most engineering department for foreseeable. I do not believe it was the right thing - especially when director approved the PR (he had no consequences to him), but I also was really pissed off having to deal with that shitshow, so I felt little remorse for the staff engineer.
Very commonly, it is not the mistake itself but how much you piss off the higher ups.
Devboe@reddit
I don’t think it was the right thing based on what you’ve said. A majority of the tenured engineers at my company have caused a P1 at some point and they’re still here. That’s why you perform RCAs and learn from your mistakes and take action to prevent a similar mistake in the future.
mrbennjjo@reddit
I think that's true only under the assumption that they come clean and let others know about what has happened. I think mistakes followed by cover ups are sometimes fireable. I can deal with incompetence but I can't deal with self serving liars.
tonjohn@reddit
If the they are hiding because the team doesn’t offer psychological safety that isn’t person’s fault.
mrbennjjo@reddit
Yeah but they're going to get fired regardless.
tonjohn@reddit
If my report hides from or lies to me, I ask myself why. Beyond talking to the individual, I reach out to others in and around the team to get a better understanding. Their failure is first and foremost a reflection on me and the culture I’ve built. It’s possible that I’ve made people feel unsafe or that I’ve allowed others on the team to do that.
If the environment isn’t safe, I should fix that first before considering firing the person.
mrbennjjo@reddit
And that's very good and forward thinking of you and I agree. But fundamentally at some point individuals are capable of deliberate neglect. Individuals can be a liability that you can't stomach hanging on to, some people deserve to get sacked to say that's never the case is codswallop
tonjohn@reddit
I never said otherwise.
thekwoka@reddit
Yeah, if someone can't handle the responsibility, then they shouldn't get the power.
bluetista1988@reddit
I made a mistake like that once when I was a junior developer.
We were testing some custom notification utility, which I was developing locally and pointing to a test environment's database. I updated my configuration files incorrectly, and my script started talking to the production e-mail server. Since we didn't scrub e-mails from our prod restores to our test environment, real e-mails were linked to their profiles. The e-mail server happily processed SMTP requests from my local machine and about 50 users received e-mails about open tickets from our test environment before I noticed the error and halted the operation.
Fortunately I had an outstanding tech lead and an understanding manager who helped me navigate the communication/remediation and helped get to the root cause of the issue.
Looking back at that now, I can think of a few places I've worked at since then where if a junior did that they would be seriously reprimanded.
monkeyinnamonkeysuit@reddit
If the company allows an environment where one person acting alone can break production, then that is a risk they have accepted and must understand that everyone will eventually make mistakes. There should be guardrails in place to prevent this happening, checks and balances.
Wilful disregard of process is the only time I have ever had to discipline anyone for a mistake that broke prod. Ignorance of process is a grey area but I tend to lean towards "the environment should not have allowed this person to do this", the guardrail should not be an optional process. Post mortems on these incidents should always focus on "where did the process fail" rather than "who's fault is this".
serial_crusher@reddit
A single mistake in the job has to be really bad to get you fired. I've never seen an employee in good standing shoot themselves in the foot so bad to get fired. Well, I've seen sudden firings over sexual harassment and other inappropriate conduct, but that's not the sort of thing we're talking about here. Even those, it takes a big incident to get fired on the spot vs. a warning.
Sustained patterns of poor work, combined with a bad attitude and/or an unwillingness to do better, is the most common reason I've seen people get fired. Even people who make a lot of mistakes but try hard to do better tend to stick around until layoffs happen.
DeterminedQuokka@reddit
So our policy is generally to consider intentions. If you are doing your best to do the right thing then you won’t even get in trouble.
But if you say you’re doing your best and you make the same stupid mistake 15 times… I don’t believe you anymore.
chunkypenguion1991@reddit
You're pretty generous to give them 15 strikes
MoveInteresting4334@reddit
Well, how do you play baseball then?
chunkypenguion1991@reddit
For serious mistakes after the 2nd I would have a talk about being more careful. If there is a 3rd time revoke privileges. Then management would have to decide if there's any benefit keeping someone on we don't trust with access
actually_a_tree@reddit
The goal is always to find new and innovative fuck ups, not the same old fuck up
2rsf@reddit
Fireable is extreme, and as most of the comments say is very rare, but mistake have their consequences- your salary and promotion will suffer if you make enough mistakes.
GendrysRowboat@reddit
No genuine mistakes but the most egregious (massive negative impact to the company) should be cause for termination.
However, a consistently careless approach, not learning from and repeating mistakes, or, as you say "deceit, malice, evasion" can certainly be justifiable reasons for firing someone.
It's less about the action/impact and more about the person's motivation/behavior/attitude.
2rsf@reddit
A developer at Swedbank, one of Sweden's biggest banks, pushed a wrong configuration to prod and caused a downtime of almost 24 hours. The bank was fined with ~100,000,000$, not because of this mistake but for not having the right processes in place. Would you keep this person employed? NASA lost spacecrafts due to one person's mistakes (and lack of good enough process to detect it), are they fireable?
Having the right processes in place (review, test, automate) is more and more important the bigger the possibility for damage is, it is very rarely one person's mistake that causes the problem.
Ok-Key-6049@reddit
Disrespecting fellow coworkers: fireable offense. Introducing bugs, dropping dbs, etc: non-fireable offenses.
Lonely-Leg7969@reddit
Mistakes, not really. Poor attitude and unwillingness to improve - bye bye.
Suepahfly@reddit
Mistakes based on deceit, malice or evasion are not mistakes. But purposeful ill intent.
bighappy1970@reddit
https://www.etsy.com/codeascraft/blameless-postmortems
Scarface74@reddit
Making mistakes that were caused by not following procedures.
But how in a well run organization do you make a mistake that causes major harm that was your responsibility alone? There were supposed to be guardrails, preproduction testing, backups, rollback procedures, feature flags etc
GeorgeRNorfolk@reddit
IMO it depends on the process. Human errors happen, and where that's a possibility, the process must have automation that safeguards the process from them.
If a process is reliant on humans never making mistakes then it's a bad process.
xelah1@reddit
That isn't enough - at least if by procedure you mean 'any process written down by anyone important'. There's a reason work-to-rule is a thing.
Is it something widely known and observed? Are managers putting people in a situation where their instructions can only be met by ignoring them? Are the consequences of not following a procedure clear? Was there a clear and genuine reason to think that not following the procedure was a good decision to make on behalf of the organization (or for someone's safety, to follow the law, etc)? Why was the procedure created and by whom?
Everyone knows intuitively that the real rules and structures of day-to-day behaviour in an organization are the ones in people's heads and actions, not the ones on paper. Powerful people writing stuff is an effective way to influence them, sure, but we all know rules that aren't really rules and non-rules that are.
eloel-@reddit
Even then, some procedures aren't particularly obvious. They live in a document you can't find unless you know where it is, seven layers deep in document hell.
Whether those still count as procedures if nobody can really follow them is an interesting question though.
Scarface74@reddit
And in that case, it’s still an issue. Why aren’t the procedures documented and enforced on a technical level?
Schmittfried@reddit
Because many kinds of procedures are not enforceable on a technical level.
thekwoka@reddit
Yeah, it needs to be clearly communicated, clear in how it's applied, always applied, and trained into new hires.
Appropriate-Dream388@reddit
Had a "difficult bug" recently that was caused by invalid reproduction steps. I traced the issue over a couple of hours and raised it to the responsible team, and they say "Ah yeah, that's a typo. We don't use staging. Just validate in production."
Incredible experience.
thekwoka@reddit
A lot will be this.
If a procedure doesn't exist, or is so poorly laid out/trained/enforced that it can simply be unknowingly violated, then the mistake that is caused by it is something anyone could do.
You should then built the procedure to prevent it.
Other than that, only making the same mistakes multiple times could be an issue.
AdministrativeBlock0@reddit
That's far more often a signal that the process is broken or difficult than a sign someone should be kicked out.
JadeXY@reddit (OP)
I agree. Every well established organization must have some level of procedures and systems to prevent the most critical ones from causing serious damage, either to the org or the customers/users.
It really depends on the context: business critical systems (say payment processing systems for an e-commerce site), you would want the tightest guardrails since any serious bugs would cause the business a lot of money. But a newly rolled out feature that is in its experimental phase, still looking for that product market fit, may not need such restrictions.
diana137@reddit
Yes this is such a good answer. It should be procedure that work is reviewed. Human make mistakes every day, it's inevitable.
It would be ridiculous to pretend that that is not the case and people who make mistakes should be fired. That would literally be everyone at some point.
As said above, it should be in the process to keep the risk and gravity of consequences low.
gomihako_@reddit
It’s a matter of “whose fault it is”
If you went through a postmortem and the answer is “not enough training” or “IAM fuckup” or “no defined process, lack of docs” that’s on the leads/manager/organization
If the postmortems consistently reveal “bob didn’t follow the doc even though we walked him through the process and he’s done the same thing 3 times” then it’s a matter of attention to detail and totally on the IC; PIP time baby
Whatdoesthis_do@reddit
Depends on the mistake. Is it something else every time? Is it a true, god honest mistake, or is because of things like not being serious enough? Or are there medical reasons, eg loss of concentration.
thekwoka@reddit
I might say those aren't mistakes at all.
roscopcoletrane@reddit
I have never seen an instance in my career where someone was fired for a single one-off mistake, even if it was a big one. But I have seen more people than I can count who were let go after demonstrating a consistent pattern of small mistakes or carelessness that aren’t fireable on their own, but in the aggregate they represent a major drag on team productivity. It’s been rare that anyone on the team is surprised when those people are let go.
jeerabiscuit@reddit
If the other guy or girl finds no value in you, then your mistake is fireable.
TopSwagCode@reddit
Only bad companies fires people because of mistakes. There should be process in place to ensure that same things doesn't happens twice.
Appropriate_Cat5316@reddit
I think it's the wrong question. Instead of looking at the mistakes it's better to look at the employee and whether you see a future with them.
If you do, then you'll make it work and if you don't then what's the point of continuing with them?
If malice is involved it's hard to continue. If it's negligence or indifference then what is the cause? It might be something really easy to fix before getting rid of a potentially great employee.
Unless you want to micro manage everyone you have to accept that mistakes of all kinds will happen and the default should be that mistakes are not ground for firing someone.
It's a potentially long and expensive process for both parties to replace the other.
ConsiderationHour710@reddit
If you make a mistake and own up to it you can still be fired for it. I caused an outage on some logging we depended on for ads and that caused my perf review to go to a meets most even though I out in tests and updated the process after. Optics matter
bitNation@reddit
I agree with others that mistakes are part of the process. We all kind of get that dopamine hit from solving problems. With that comes a lot of trial and error and failure.
What I haven't seen in comments yet (didn't read em' all) is apathy or neglect, incompetence, flagrant disregard for process or not caring, or again, incompetence. I don't want that person on my team where I am constantly picking up the pieces.
p_bzn@reddit
IMO there are no “fireable” mistakes.
Mistakes are natural part of any process. What shouldn’t be part of the process are repeated mistakes, especially recurrently repeated. If mistake happen it is fault of a business. Business has to protect itself with procedures, guidelines, training.
What could be concerning is a neglect of existing rules, or explicit avoidance of them. As a manager you’ll never know whether person had a rough day and overlooked something, or just careless. But there are patterns you’ll see.
pwndawg27@reddit
My two fireable offenses are if you try to break shit intentionally or you lie to me. Im generally fine with the occasional fuckup or a senior who's never used some part of our tech stack (you'd be surprised how many seniors do not get k8s or infrastructure in general) and needkng the time to learn it.
Hell I'm fine if you miss a deadline, but you need to be owning up to your deficiency and have a plan to correct it; ask for help early when I can still help you or reset expectations. Not running that up a flagpole is effectively lying to me about progress or skills.
To put it like Robert Dinero in Casino, you're either too stupid to see what's going on or you're in on it, either way you're out.
ninseicowboy@reddit
A more important question is whether it’s a pattern
TurrisFortisMihiDeus@reddit
Depends. Team to team. Org to org. Company to company. The way I navigate this is leveraging "team agreements" and company/HR/compliance policies.
Draw up a list of non negotiables - obvious ones like exfiltrating confidential data/code, trading on mnpi, harassment, lying on resumes etc are usually irrevocably fireable. The rest could be encapsulated within team agreements. Here's what we agree to do as a team - write good code, support each other, etc etc but then also mention that very frequent repetition of the same kind of mistakes, esp. Ones that impact others and delivery schedules and product quality will have consequences. First learning, then coaching, slap on the wrist, then warning, then likely pip or termination.
These aren't ever fully set in stone. Fundamentals seldom change. Eg the non negotiables. But everything else evolves. Mostly slowly.
deefstes@reddit
What exactly is a "mistake that is based on malice, deceit, evasion"? That sounds like sabotage to me, not a mistake.
But the bottom line is, you can't fire someone for making a mistake. How much damage the mistake causes is irrelevant. Everybody makes mistakes and it's the organisation's responsibility to put guardrails in place to protect them from mistakes. If those guardrails are so woefully inadequate that a mistake causes serious harm, then the conversation should be about the poor guardrails, not about the mistake.
You can fire someone for sabotage. That's a very different thing.
chrisza4@reddit
Short answer: pattern of mistakes is fireable.
In my opinion, single instance of mistake, regardless how big it is, is not enough to deserve a fire.
On the contrary, pattern of repeated mistakes, no matter how small it is, is firable.
Wide-Pop6050@reddit
I've seen people get fired either for something actively malicious, or for an atrocious attitude. Mistakes at work might delay a promotion or something, but actual firing isn't norma..
Altamistral@reddit
Good companies should have established process and guidelines to prevent mistakes. If mistakes happens while following these processes and guidelines, blame should always be attributed to the process, not the person. The best example is code review and CI/CD: if there were code changes and the code was properly reviewed and tested, any problem deriving from those changes should not be attributed to any single engineer, no matter how ugly the code or costly the problem.
Deliberate behaviour to skip known established process and guidelines on the other hand is a personal fault and should be addressed, and when repeated it should certainly be cause for termination.
The only "single-time" reasons for termination I can think of are severe policy violation, but these are never "mistakes".
NowImAllSet@reddit
At the end of the day, any level (or amount) of mistakes can be a performance problem. And firing someone based on performance failures is completely context dependent. You can apply that to any mistake, small or large.
If your newly hired staff engineer is making junior-level mistakes, that's a problem. If your junior engineer is not learning from their mistakes and repeating them frequently, that's a problem. If any mistake, by anyone, was due to obvious negligence and resulted in significant losses, that's also a problem.
Exotic_eminence@reddit
If they like you then any mistake is no big deal, if they don’t like you every mole hill is a mountain
Sometimes they need a fall guy or they do stacked ranking culls every year so they hire you to work on vapor ware or something that is “not impactful enough” and you get “calibrated” out because you were hired to be the fall guy
That is where the line is drawn - where should it be drawn? I think the team should be able to fire the manager if they don’t provide actionable feedback- feedback that says you smile too much is not really actionable feedback but that is feedback I have received and I do not care to change hahaha 😀😃😄😁😆😊😇🙂🙃
justUseAnSvm@reddit
Mistakes are part of the game. It's what you do after the mistake that makes all the difference.
For a long time, I used to keep track of every mistake on a Note on my computer. The goal wasn't to make fewer mistakes, but for every mistake on there, not to make the same one again.
Only one mistake I made twice: basically a problem with a github workflow in shell that was a result of not having a type checker. If you ever remove a variable, you need to catch the dangling references!
phonyfakeorreal@reddit
No one should get fired over a mistake unless they were being negligent or keep making the same mistake over and over again. If someone breaks prod, figure out why and put guardrails in place to make sure it doesn’t happen again.
reddit_again_ugh_no@reddit
I think a "mistake" means an unintentional action with negative consequences; it's different from malicious behavior. No mistake should be cause for termination, unless if it happens repeatedly which is now a performance problem with the employee.