The next part is the entire tech screening process. I remember back in the day when we used to just ask people if they could do FizzBuzz now we're looking at if they used an interface to wrap their ORM usage. That's something that can get picked up at code review and taught. Not everyone is going to code by default at the style of a company but they can learn to do the things the company wants.
Then there is the obivous, lets test people for things they aren't going to do. Google and co made this the in thing and the fact we now have books upon books just designed so people who are good at tech can pass a tech interview is a sign in itself that there is something rotten. Hell, there was one guy that took almost a year off to study for the Google exam, err I mean interview. In a world where the shortage of tech employee means they're on the eligble for a visa list in pretty much every country in the world.
I've literally had someone be failed on a test before they did far more than expected therefore didn't have time to finish the test. No, that's the person you 100% want. They exceeded expecations.
I've made pretty much every mistake in interviewing others, I've had these mistakes while I was interviewing. I've come to realise what is important is, can they do the basic level programming required? If so get them in and if they really suck let them go during the trial period. Our worst developer at the company I work for interviewed amazingly, he falls asleep during meetings.
A bunch of companies keep trying to improve the hiring in tech, the problem is, they are the problem.