I'll answer the original question first, but also want to expand on some of the rationale provided because I think it surfaces an underlying problem that has the potential to aggravate the situation provided.
Is having an all friends team good for business? What do you think?
If I had an employee with a friend who might fit a role I was filling, I'd certainly put their resume on the top of the stack for consideration. After that, I'd go through my normal process and hire the best candidate, regardless of their relationship to any current employee. Hiring someone ill-suited for the role is a great way to create hard feelings when you have to let the friend go after 45 days. Friends who are competent in their respective roles and back each other up can be a great asset in the workplace. There are also some risks involved, so be prepared for them. I wouldn't let those risks deter me unless there were other environmental factors (see below).
Reasons for Hiring
The company has a high turn over, development team comprises of interns where one of the challenges I have is to build a strong full time dev team. I feel that by hiring his friend I may help further convince the high performer to go full time.
If the company has high turnover and your "star developer" doesn't want to go full-time, I'd suggest taking a look at the conditions that are causing turnover and making good employees waffle on committing to the team. That is the ONLY way you are going to build a strong development team. The cost of finding qualified people in a challenging field usually FAR exceeds the cost of retaining good people that you can build on.
Might it convince the high-performer to go full time if you hired their friend? It is a long 'maybe'... and if it did happen, it would be until his friend isn't there, or they both decide they don't like the environment and move on together, feeding off of each other's negativity. That friend you hired could just as easily convince your star to leave. Figure out what you need to do to land good employees. Hiring a friend is a not a reliable way to go about it.
Motivate the high performer to work even harder.
If you have a great performer, why are you trying to wring even more productivity out of him/her? That is a great way to burn out your best player. No developer is infinitely productive. Try to give them opportunities that would help the organization be more productive as a whole, not try to squeeze out extra lines of code. If you have an enthusiastic employee, keep them challenged, help them build their skills, and compensate them appropriately so they stay onboard. Then focus on finding more good developers and getting rid of the low-performing aspects. Offer special bonuses for successful delivery of big projects requiring extra effort, and then give ample recovery-time. If your best people are going at 120% all the time, and it is expected, you won't keep them long.
A great way to lose good employees is to surround them with
idiots low-skilled co-workers. Eventually the good ones are going to get sick of putting out fires caused by everyone else, friends or not. Your top performers will quickly tire of carrying 80% of the weight while only being paid marginally more than the bottom rung.
Reasons for Not Hiring
Unlike the current developer - the friend's technical skills are not brilliant, I gave him a programming test as part of the interview process and could see that even though he did the task the code was not well written. So there is a part of me thinks that I am not hiring him on merit.
I've seen great developers produce mediocre results on a development test, and very poor developers do exceedingly well. Used the test to weed out the folks who don't know how to write a line of code. Otherwise, if they pass, then gear your next interview questions towards determining if your concerns are valid If you are concerned that the code had no comments, then ask the interviewee to explain to you what their perception of "good code" is, and why it is important. I wouldn't base a hiring decision on a development test unless it was completely obvious that the candidate was completely lost.
I am concerned that this can lead to office politics, if I am hard on one member of the dev team, the other member of the dev team is more easily influenced and likely to take sides with the member of the team I am being hard on. I have previously worked in environments like this.
If you are worried about employees ganging up, you already have a problem. You can't stop employees from talking to one another, but you can hold folks accountable fairly, and if someone is being a "negative nelly," address that issue specifically.
That being said, if you hire Suzy's 'bestie' from grade school and then have to let her go, expect Suzy to at least form an opinion. Again, if employees are treated fairly, this usually isn't an issue, but based on some of the other things I've seen, you already have a tenuous workforce. If Suzy feels her friend was treated unfairly, she will expect the same treatment towards herself. To weather situations like this your staff needs to trust you and/or the company, which is something that is built through consistency, communication, fairness, and accountability.
And one last statement that I wanted to address directly...
I feel that by hiring his friend I may help further convince the high performer to go full time
Why not forget about hiring the friend (in regards to incenting an existing employee - not altogether) and look into what motivates the individual in question. Are they motivated by challenges? Aspire to leadership? Feel like your compensation or benefits aren't competitive? Don't like the office space? Question the company's stability? Addressing their concerns would be a more productive and permanent solution than hiring their buddy.