What I have learned from my time in the military is that onboarding is more important than candidate selection. Regardless of onboarding success comes down to personality. The quality of a candidate’s professional experience is more a reflection of that personality than an indication of current technical competence, which is where candidate selection is often severely misunderstood. Provided a properly selected candidate there can be enormous room for positional success if the criteria of success are well defined, documented, and trained. This is where onboarding is important. I have never seen corporate software get this correct even though the same company likely has this mastered in other career fields.
The common expectation is that some other company trained the candidate for you and that they are fully technically competent walking through the door. That is an unrealistic expectation born from poor planning and lazy leaders. The result is beginners that need tremendous hand holding and the bar of acceptance to be continuously lowered or seniors that are everything the company wants except compatibility with people who need too much hand holding.
I once had a fairly positive onboarding experience when being assigned to a new project with a new team at one company I'd been with for a few months. That was positive because there was a priority user story assigned to another dev on the team that spanned a two week period pretty much titled "Get Darren up to speed and answer any questions he has." It worked.
1. Step by step instructions to get the development environment setup. If they run into an issue, update the guide.
2. Deep dive into the product, how the business works, where product is going + why, and how their work impacts all that.
3. Set 30/60/90 day goals.
4. Give them tasks (maybe explicitly make some of them pairing tasks if that is part of your eng culture).
5. Regular check ins (this varies based upon their progress and how much they're reaching out for help on their own, but at least weekly).
6. Have them schedule 30 minute informal chats with everyone they'll be working with on a regular basis.
The idea behind these steps is to give them the tools, context, and support they'll need to be effective then getting out of the way so learning through doing can start as quickly as possible.
Take turns driving.