In a recent job description, I said that I was looking for
something similar. Here's what I mean:
- You like working with others. This doesn't
mean you have to be particularly extroverted. But if you don't like
collaboration, we'll just make you crazy.
- You have some social skills. As a fellow
programmer, my standards aren't super high here; I'm pretty dorky
myself. But you have to know something about how to play well with
others.
- You care about other people. Knowing how to
get along with other people isn't enough. You have to care about
how other people are doing, and what effect you have on them.
- You're more interested in team achievement than
personal achievement. Glory hounds, heroes, and cowboys
can wreck a team. As in sports, good development teams win or lose
together.
- You can think independently. The best teams
have people with varied backgrounds and the strength of character
to maintain their own viewpoints and opinions.
- You can compromise. Even though you think
independently, you don't have to win every argument. If the rest of
the team prefers a difference code indentation style and you can't
persuade them otherwise, you can let it go.
- You're generally happy. Eeyores, whiners, and
mopers can suck the energy out of a team. You don't have to be a
ray of sunshine every second, but you should be able to stay
positive and enthusiastic most of the time.
That seems like the basics to me.
I should note that when some people say "teamwork" they mean
people who will put up with unending because that's what someone in
power finds convenient. Those people will say that somebody
standing up for themselves (or for the customers) "isn't a team
player". But when support goes just one way, that's not a team.
Beware of that!