In theory firing fast is the way to go. Sometimes you really can tell within a few weeks that a person is just not working out. However, at least in my industry, doing this repeatedly will likely earn your company a bad reputation. Fired employees who don't agree with your decision will spread rumors and it'll earn you a black mark, reducing the flow of qualified candidates.
The ideal situation is for both employer and employee to come to an agreement that it's not working out. An employee that understands why they are leaving and why it's a bad fit will often remain a vocal supporter. Unfortunately, in my experience, this takes time and energy far beyond the point of noticing the issue... I wish I knew of a solution!
Why? Why is this more "the way to go" than "hire with deliberation so you don't have to fire half your employees"? 'Cause from where I stand that hurts less people. Your "fire fast" hurts them inequitably, it hurts them much more than it does you or Your Important Business--it deprives them of their previous job, it magnifies the opportunity costs they incurred to trust you to come work for you.
Firing for "culture fit" means you fucked up. Your judgment failed. It's on you and the hurt and pain you cause is your responsibility. So it strikes me that it's being a minimum-level human being to hire carefully and with deliberation to minimize the times you fuck up and the people you hurt. Because they're people, and in every case--even the asshole ones--they deserve better than to be hurt because of your poor judgment.
It seems to me that it is because the hiring process is a short-term one. The rationale for firing someone can happen over hundreds of hours. Sometimes you don't know that someone will be a bad coworker until they've been a bad coworker.
Hiring processes optimize for people who are good at getting hired. Working with someone (if you're willing to prune the bad coworkers) optimizes for people who are good colleagues.
This is really the meat of the issue. Nothing short of actually working alongside a person for a week or two will tell you what it's like to... well, actually work with them. People are nervous, friendly, energetic, and all manner of things at heightened states during the interview process. Most of the time this provides a good indication for who this person is but rarely it does not.
In those circumstances, when yes a fundamental mistake has been made, I believe that in theory it's best to end the relationship quickly, for both parties involved. In practice it's obviously not that easy or simple.
I've heard of companies instituting mandatory work days or even work weeks for prospective hires to vet how they will fit into the workplace. That sort of thing is attempting to solve the issue but how on earth do you convince anyone, especially someone already gainfully employed, to go through with that process? I suppose I'd do it for a company I absolutely, positively, had to go work for (very few if any)... realistically it seems hard to accomplish if not rude to request.
Ultimately I think the hiring process is one in which mistakes can happen. What's the most equitable way to resolve them when they do?
The ideal situation is for both employer and employee to come to an agreement that it's not working out. An employee that understands why they are leaving and why it's a bad fit will often remain a vocal supporter. Unfortunately, in my experience, this takes time and energy far beyond the point of noticing the issue... I wish I knew of a solution!