Over the years I've had the opportunity to work with numerous software development teams in both large and small organizations many of whom have a singular focus of hiring technical rock stars. Though it sounds like something we should all aspire to, I think that we often lose sight of how great a team is when everyone works together over the individual rock star mentality
Point in case the 2014 Chicago Bulls. They yet again lost their rock star (Derrick Rose) due to injury and the team could have just thrown in the towel, but they didn't. They weren't considered 'rock stars' by how people in the NBA view talent , but they had something that rock stars don't always have, commitment to the team. A selfless focus on what they had to do to win a game in the NBA and for several months they had the best record in the NBA from January through March.
Another Bulls analogy would be the championship Bulls of the 1990's. Until Coach Jackson was able to get Michael Jordan to work as a team member and not be the rock star that he obviously was, the Bulls didn't win a championship. Only when Michael began to work within the team structure were the Bulls able to win six championships.
The point here is that rock stars often can't/don't deliver for a team, rather they achieve greatness within the context of themselves. Many technical rock stars are singularly focused on achieving technical dominance based upon this mythical rock star status we give to them. This leads all to often to these individuals climbing into leadership roles for which they have no real skills to succeed with.
Teams that deliver understand that we all must sacrifice something of ourselves for the betterment of the team. Rock stars don't see it that way and those that never see it that way are destined to be winners to themselves and not to a greater good.
Sports unfortunately is often the best analogy to teams and in Agile our Scrum concepts come from a team formation from Rugby, so perhaps the sports analogies are appropriate in most cases when talking about technical teams that deliver.
Agile is all about delivery, and fast. But with speed comes the need for discipline, multiple disciplines in a Scrum team. Everyone, and I mean everyone, has to pitch in. If you are a Java developer and you have legacy C++ code, guess what?? You need to learn from C++ so that when time is tight and the delivery important you can step in and help out. That's teamwork, no rock star needed, just a willingness to put yourself out for your team. If you are a developer and there needs to be testing in order to close out the Sprint, guess what?? You need to test. It's amazing what you will learn when you test your own code from another perspective.
When I'm hiring I look for people who have had broad level of experiences. People who have done just one thing but are considered a Rock Star for it, aren't really my interest. Great products and high quality come from those with well rounded backgrounds, who see the edges as places that we need to explore.
Great teams have that, broad level's of experience.
So when you are thinking about building a team remember that an organization, any part of it, is a sum of the total parts, not just the rock stars.