As the startup grows over years and pays good money, getting very good people much gets compromised with nepotism. As the time pass, one comes to know that quite few guys have connection and it is average or below average candidate. Why doeas it happens so? How can totaly prevent it?
You have to look at the root cause of the problem here: if a manager brings on 'B' players, he is the core of the issue, not the new hires. Always strive to hire people smarter than you who will make the company successful and make you look as a hiring manager.
At the outset, hiring team members is one thing that engineers never learn in academics and is more an acquired expertise than a curriculum-based one. I think this is a serious deficiency in engineering / other academic programs. If such course works were to exist, it speeds up the experience curve drastically.
"First-rate managers hire first-rate people. Second rate managers hire third-rate people, and everyone notices."
I heard this (indirectly) from Genentech's former CEO and current chairman Arthur Levinson, but he many have been quoting someone else. Way too often managers don't hire people smarter than they are, because they're afraid the smarter people will steal their jobs. So you end up with a department with second- and third-rate people. Occasionally there are a few first-rate people, but they're often suppressed by the second-rate manager in cooperation with the second- and third-rate people.
Large companies can get away with this for a while. It's death to a start-up.
I've heard the best way to hire is to find and hire the smartest people you can find -- whether or not they have the exact qualifications -- and give them lots of freedom. They'll come up with clever ways to do things you never would have thought of and never would have discovered if you kept strictly to people who had the exact qualifications.
However, occasionally you'll discover smart people who are terrific on their own, but are unable to work with the team. So you have to realize that a job is similar to a marriage. Most people spend more waking hours with their colleagues than with their spouses, and if the job relationship is disfunctional then life won't be much fun. So when you hire people, realize that you might be stuck together for a long time so select people who are going to be fun to work with.
You also need to hire a variety of people. You can't have all super-stars who can't deal with drudge work.
And hire senior people who like writing. They can write design documents before doing the design, and then someone else can do the detailed design later, e.g., the "new guy". PhDs are good for this, because after writing a dissertation, a 50-page design spec is nothing.
I think the essential point is that hiring for a startup is very different than hiring for a large company. Yes, every potential new hire needs to have the right skills & experience for the position, but in a startup, it's more like choosing a new family member than just choosing an employee.