A great team is like a marriage - it takes time and an awful lot of patience!
For a team to work, I feel that you need a core of people who are all professionals. By this, I mean people who can work under pressure, that understands that temper's get frayed and arguments are commonplace, but also that these arguments are just "handbag dramas" and should be forgotten.
No-one within the team should be treated with disrespect for their lack of experience or skills, although there is a difference between banter and abuse.
Above all, all team members must be happy in their working environment.