At-will employment, dude. Termination at most companies below the size where bureaucracy sprouts (where most of my business comes from) is a pretty trivial "you're out."
Rather, it's a recognition that we are business partners and the relationship must be collaborative and in good faith, with a much different dynamic than employer/employee.
Legally it is pretty trivial. Respectfully though, just looking at it from that angle misses a lot.
- The person you've hired has made friends. You might like them personally. Firing them will have repercussions for your team's morale.
- Onboarding is a good bit more hassle than interviewing. Just like how it's cheaper to find bugs in dev rather than in prod, filtering during phone interviews is cheaper than in on-site interviews is cheaper than post hiring.
- Constantly hiring people, discovering they are incompetent and then firing them has implications for your own ability to lead and develop a team. So maybe now I look like the type of team lead who codes fine, but just isn't cut out to deal with the people side of things.
- In a small team environment, every team member has to be able to move the needle for the project individually. If I only have 3 engineers and 1 is bad, can I afford to pair half of my good engineers with the one who is struggling?
I'd much prefer to work at a company with a strong filter out front that then invests in the people it hires. Much better to say "Gee, Joe is mostly a wonderful employee but not great with skillX, let's see if we can pair with a Sr to work on that during the next project cycle" than have constant churn.
> I'd much prefer to work at a company with a strong filter out front that then invests in the people it hires.
But then you leave anyway, because leaving is how you get paid, and the company is out those resources.
Unless an employer literally always pay top-of-market, there is a severe disincentive for companies to invest in you. (A non-trivial part of why I went into consulting--my rates allow me to invest in myself.)
I think you think I have a problem with interviews; I don't. I have a problem with interviews that require the candidate to pay all the freight. Candidates have less time and fewer resources than an employer. Hitting them with some stupid code exercise that they can never reuse just to be considered for inclusion into your august freaking house is disrespectful and awful, I think.
Certainly its cheaper to find problems early. But its also possible to retrain; to create policies that enable progress regardless of the individual skills; to shift duties to match strengths etc.
Its not always possible to hire stellar teams (by definition half of all teams are below average). Still work can get done. Look at Pair Programming, look at Agile. Efforts to create a process where predictable work gets done regardless.
Rather, it's a recognition that we are business partners and the relationship must be collaborative and in good faith, with a much different dynamic than employer/employee.