Let me explain how the salary and career path model works in tech.
You hire a junior engineer with little to no relevant schooling or experience. You pay them far more than they bring in, and you invest more time in training them than it would take for you to do the work yourself. You do this in hopes that after 2 or so years, they have absorbed a ton of information and become a productive, contributing member of the compny, and then you promote them to mid-level engineer and pay them more. A mid-level engineer’s salary is less than the amount of value they bring to the company, so a net profit for the company. A junior engineer’s salary is more than the amount of value they bring to the company, so an investment for the company. This is by design, because tech is not something you can realistically expect to learn enough of in school to be productive at a company. This business model has been massively successful for people with the potential to climb a steep learning curve in return for high pay. I myself started out entry-level and doubled my salary in something like 3 years.
I’ve compared this model to being on scholarship. You get paid to study for a couple of years, and then the scholarship expires and you have to start earning your keep.
This guy, a junior engineer, is earning a salary that it’s hard to justify if there’s no sign the company’s money is being well invested. Furthermore, some much more highly paid mid-level engineers, senior engineers, and managers are having to spend more time explaining things to him and correcting his mistakes than it would take to just assign the work to us on top of our existing workloads. This is fine if it’s going to pay off, less fine if it’s not.
My low performer may have a net positive effect on the morale of his coworkers with his cheerful attitude, but the net effect of money the company is paying out directly (his salary) and indirectly (time spent coaching him and fixing his mistakes), compared to the extra work that’s getting done, is hovering around zero. That’s why reasonable people can disagree on whether it’s a net negative and we should let him go and put the salary money to better uses, or a slight net positive and we should keep him around until we can find someone better. My boss and I are absorbing most of the negatives of his lack of skills and shielding the team by doing his work when he can’t do it, fixing his mistakes, and coaching him…but my boss and I are also the highest paid members of the team and have to justify how we’re spending our time.
The reason we wouldn’t be able to replace him with someone better is that for a junior salary we would get another junior engineer, who would also effectively be on scholarship, and that person would need hand-holding that would cost a lot of highly-paid engineer and manager time. If we found someone with the potential to become a mid-level engineer, that investment would pay off in about 2 years (and the amount of loss would decline over the course of the 2 years), but there are two problems with that. Problem one, this is our second consecutive failed attempt to train and promote a junior engineer in this role (I say “our”–I wasn’t involved in the hiring of either, I might or might not be able to make a better selection, but I’m not confident I can), and after 4 years, it’s getting harder to justify investments that haven’t paid off. What we need is a mid-level engineer who can do a reasonable amount of work, and since we’ve failed to create one so far, we’re going to have to ask for a higher salary to hire a mid-level engineer who can start contributing right away. But that requires having extra budget, which leads to my second problem with keeping this guy around indefinitely: we’re under a budget crunch. No one is getting regularly scheduled raises this year except in very exceptional circumstances, and we’re getting messages that if someone quits or is let go, they might not be backfilled at all, as opposed to upper management going, “Oh thank goodness, that’s one less person we have to lay off.”
So there is very much a case to be made that it’s in the best interests of the company to have this guy leave. Approximately the same amount of work would get done at minus the cost of his salary if we didn’t replace him. And I don’t know exactly how much he makes, but you can google “junior software engineer salary” for the midwestern US and subtract a little, and tell me if you would pay that on scholarship to someone who wasn’t learning and was only ever going to get a small amount of work done.