Hiring people in a business filled with creative and technical challenges like the game industry is extremely difficult. I've generally found the best hires come from the pool of people you already know or are referred to you by others you know well. When we started Uber every single person involved had shipped a game with at least one other person starting Uber. Hiring people you know tremendously reduces the risk that someone may not work out.
Over the years I have interviewed hundreds of potential programming candidates so it's the area I'm best able to speak to. It's impossible to make a solid determination about someone without actively working with them for a while. Anyone that claims they can hire 100% effectively has lower standards than I do. I've come up with a few strategies to help minimize the risk by looking for certain indicators that a programmer is dedicated and serious about their craft. For one thing I always ask questions about fundamental computer architecture. Know what a cache is? Do you know how many cycles a cache miss may burn on <insert architecture you claim to know something about>? If you don't understand how the computer works, how are you supposed to program it effectively? I also put a lot of emphasis on a good basic understanding of how the languages that we typically use work and how the compiler maps that onto the hardware. These types of questions don't guarantee anything they are just indicators that help shape my opinion of someone. The final decision almost always involves some level of gut reaction and I'm not claiming anywhere near 100% success.
Once you find the best people, hire them! If you have a position open and someone that is "overqualified" is available then hire them and expand the responsibility of the role you are hiring for. Make room in your company for exceptional people. Most importantly once you have hired the best treat them well. Pay people well, treat them like adults and give them the flexibility they need to live their lives. If your company is a great place to work that will come through in the results. If we fail we all fail together, if we succeed we all succeed together.