Have you ever hired a developer and after a couple of months thought they were below average and perhaps they should be terminated but you kept them on and a year or two later they had really become a star developer?
I'm a software developer and I have been managing developers for 20 years. There have been many cases where I hire someone and after a couple of months I think "this person isn't doing as well as I thought they would. They aren't totally incompetent and they show an occasional flash of insight but over all, if I had it to do over I wouldn't hire this person." Should I fire this person? HR and others say "you need to work with them and try harder to train them and get them up to speed". I don't think mediocre and sub par developers grow up to become good or great developers. They do get more experienced but mediocre interns turn into mediocre young programmers who turn into mediocre middle aged programmers.
Full disclosure. I fully admit that I suck at hiring but it isn't from lack of effort. I've read a lot and I've tried many different approaches and it is the single hardest professional task I've ever had.