← Back to context

Comment by scarface_74

11 hours ago

Every company does this. You don’t invest in your future these days by investing in a pipeline of “talent” knowing that the average tenure of a software developer is 3 years and at any time an employee can leave.

You have processes that outlive people. Companies don’t care about society - they care about their bottom line. They aren’t there to make society as a whole better

If you want a society of well trained software engineers ready to work in corporate America, you support your public education system. Just like if you want a society that has universal healthcare, you put the onus on society and not corporate America.

My job is to do what’s best for the company as long as it is not illegal or unethical. My job is not to make society better. I got one open req. I want to hire the best person my budget allows

  >  You don’t invest in your future ... the average tenure of a software developer is 3 years and at any time an employee can leave.

Well this is a 2 stage problem and I think the response is bad for multiple reasons.

1) Tragedy of the Commons: If we all act like this, then no one gets invested in. If we all invest in our employees then when they leave another company gets the rewards. That's still true when "we" are the "other company". You still benefit regardless. Under the condition that most companies (or rather at least the big companies) collude in this way. They have good reason to as coalitions maximize utility for all parties involved.

2) Why the fuck are we training people and then tossing them away? We do this in many ways but the most obvious one is hiring a new dev and paying them more than the current devs. Guess what? That new dev needs to be trained and now your old devs are pissed that they aren't getting paid as much. So now you not only waste time and money onboarding someone new, you lose your experience.

  > Companies don’t care about society - they care about their bottom line

I'm telling you that this is dumb shortsighted thinking. This is a low order approximation. It is true under "spherical chicken in a vacuum" type of settings, but not in the real world. These are not mutually exclusive things. Remember how Ford paid his employees more and gave them time off? We're told that story as he needed customers. But there's a side benefit to that too. Not only are the workers happier and more productive (leading to fewer mistakes and costly accidents) but they're walking advertisements. There goes that Ford employee in his car, I wish I could be like them. Yes, it requires understanding abstraction and making future predictions to understand this rather straightforward logic, but we're programmers who spend all our days dealing with abstractions and trying to predict future events (i.e. how the damn thing will be used and especially used incorrectly).

  > My job is to do what’s best for the company as long as it is not illegal or unethical

Exactly!

I don't understand why you think we're in disagreement about this. Every single one of my points has come down to this. I've said it explicitly. My very first message stated that there were selfish reasons to do these things. The selfishness and foresight doesn't apply just to yourself.

  >  My job is not to make society better

Not always, but these are usually strongly correlated. There's 3 ways about it, right? If your job makes society better, awesome. If it is neutral, so be it. If it makes society worse, well you deserve hate because you're harming people. But the point of an economy is to align value with improving society, right? We don't have to get super philosophical here. There's many ways to improve society. Entertainment, a new widget, social action, cleaning shit, whatever. I'm not gonna judge here and pretend what's better and not.

But it is just a weird argument all together anyways. Your job isn't to make society better? Read that again. Your job isn't to make your life better? Certainly a paycheck makes your life better, right? I really hope it isn't making it worse. But we're social creatures too. Your job isn't to make your family's lives better? Your job isn't to make your friends' lives better? If it isn't to better yourself, your family, and your friends, then what the fuck are we even doing here? You have autonomy. And here's the fun part, if we care about our local groups and improve our local groups, this usually improves broader groups by extension. We're interconnected. I'm not saying you need to care about some dude on the opposite side of the country, but I sure as hope you don't think your job is to do harm. The "not illegal or unethical" part really is concerning. Frankly, I'd call doing harm unethical, even if it is small. It's more unethical to steal someone's wallet than to snatch a penny, but both are still unethical.

So I really don't get where you're trying to go with this. Because frankly, the selfish act improves society. It's just you have to consider that other people exist. If you're selfish and you model a world where you're alone, then yeah, maximize yourself at all costs. But when there are other agents in the world, the way to maximize your utility is through coalitions, through improving the group.

  • I agree with you, but I think that there's one area of the argument that is worth figuring out how to strengthen.

    > If we all invest in our employees then when they leave another company gets the rewards. That's still true when "we" are the "other company". You still benefit regardless. Under the condition that most companies (or rather at least the big companies) collude in this way. They have good reason to as coalitions maximize utility for all parties involved.

    You are right that in a world where most companies collude in this manner, we all benefit.

    However, in that world, a company that chooses not to contribute (by investing in inexperienced employees) also has access to the same benefits (trained employees).

    Furthermore, they can use the money saved by not contributing to inflate the value of the trained employees (offering them higher pay), so they have an incentive to not contribute. This doubly deprives the rest of us of some of that benefit.

    How do we adjust the incentives so that bad actors are not motivated to cheat the system?

    (In case it seems like a familiar scenario, yes, this is similar to playing Iterated Prisoners' Dilemma with the rest of the world.)

  • I’m not saying it’s logical. I even said that as a hypothetical manager, I would fight for the junior to get paid market wages. But HR sets the budget. I have to work within the framework I have.

    Yes I know it’s insane that a manager can’t get the budget to give raises. But can get one to hire someone new at prevailing market rates.

    Given those are the facts, I had to aggressively job hop between 6 jobs between 2008-2020 to get the money I wanted after staying at my second job for nine years getting 3% raises.

    Now at 50 on my 10th job, I can optimized for different things.

    How are you going to convince HR or the PHB that their policies are insane? As a manager or a team lead, your job is to create processes to make developers interchangeable “resources”.

    •   > How are you going to convince HR or the PHB that their policies are insane?
      

      The underlying issue at hand is much more widespread.

      I'm not trying to play wack-a-mole here.

      I'm trying to be infectious so that the knowledge becomes widespread. We had it before, so I don't think it is naive to think we can't have it again. It was considered "common sense" before, the question is why it was lost. Given your age I guess I should be asking you why we dropped the aforementioned cliques. It's weird how common "you get what you pay for" was and how now we act in opposition to the clique: buying the cheapest option and making it hard to determine quality.