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.
A team must work for each other and not for themselves and no-one should utter that old phrase" it's not my job". Team members must be allowed to express themselves in the areas where they are strongest and take advice on their weaker areas.
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.