There would seem to be at least two independent problems here:<p>1. How can you recognize that someone is actually a better programmer than you are, as opposed to someone who can bullshit beyond your ability to detect it? (It may be easier to detect that someone is a <i>worse</i> programmer than you are.)<p>2. Once you've found someone who you're convinced is a better programmer, how do you convince them to join a company where they'd be the most skilled programmer (and thus have nobody to learn from)? You might need to offer them extra compensation and a better job title than they'd be able to get elsewhere.<p>Also, I'd question whether you can actually rank programmers on a linear scale of better/worse. The best programmer I ever hired was better than me in some ways (could build complex systems faster than I could) but worse than me in other ways (the systems he built were less maintainable).<p>I don't really have good answers to these questions, but hopefully this might clarify some of the issues and help get the conversation going.
Another problem I wrestle with is how to hire someone with skills way outside your own skillset and outside anyone else's skillset in the company. For instance I'm in a situation where I can tell the people that have set up the infrastructure are not capable of doing it right because the infrastructure stinks by any outside measure. But without knowledge of how to do it myself, how am I supposed to hire anyone better?
Common, dramatized problem. Hiring can be only occasionally perfect.<p>"Will burns the proof. Lambeau tries to save it.<p>LAMBEAU: You're right, Will. I can't do this proof. But you can, and when it comes to that it's only about ... it's just a handful of people in the world who can tell the difference between you and me. But I'm one of them.<p>WILL: Sorry.<p>LAMBEAU: Yeah, so am I. Most days I wish I never met you. Because then I could sleep at night, and I wouldn't have to walk around with the knowledge that there's someone like you out there ... . And I didn't have to watch you throw it all away ..."<p><a href="http://www.qedcat.com/moviemath/GoodWill.htm" rel="nofollow">http://www.qedcat.com/moviemath/GoodWill.htm</a>
once you actually find someone, make sure they have the authority to set (or help set) policy for your team.<p>Otherwise they'll be spending their time fixing up everybody elses code forever or get bored and leave.