How many job interviewers or managers will tell you the following highlights about their team?
- Our workers are nice guys, they love what they do.
- They play soccer together some day every week or they go to drink some beers once they end their work day!
- When things go wrong, everyone stays here together!
This is going to be my opinion, but this isn't my definition of team work.
Team work seems to be something more complex than just people smiling every day. It's people collaborating as a single unit where decisions are taken in group and everyone is responsible of his/her own acts, but they work in a way that their own participation tries to have a positive effect. Do great things and do them for everyone.
During some job interview, company's CEO talked me about how software developers may provide incredible value if they are those ones that might fix a critical bug. "Some developers provide more value than a project manager" (said). I would say that a project manager which doesn't provide value isn't the right project manager.
Actually some companies and individuals understand team work as a group of disconnected silver bullets which collaborate in the same project. Obviously, it seems like it's not the right answer to the question of what's team work?.
My opinion about this topic is a good team is a one having a clear separation of roles. Separation of concerns anyone? How many times have we heard about how to correctly separate concerns in a software project? Do you remember domain-driven design? We, software professionals, always say we want software done on top of good development practices but we forgot that this is possible if we achieved some preconditions and skills.
Working as part of a small, medium or large team means mixing our individual goals with others' ones, and it doesn't mean that we need to throw away our professional competence. If you know something that's missing in some colleague, why don't you practice mentoring?. Provide training, samples. Discuss why your colleague should get better.
I won't say that your own competence has no value. Everyone has his/her own experience, passion and skills, and this is why we get hired, because we're better in some field. It's not about being the best in everything. Really, it's about developing projects by a competitive team.
Another detail is, even if you practice agile project management and you open the decision workflow to everyone, each professional should have a role in the team. It won't work "everyone can participate in everything". Some degree of specialization is a key requirement in any project. But I find role definition an important part of success because it restricts responsibility: no one is responsible of everything and this forces everyone to work together with the rest of the team to achieve some goal.
That is, beers, soccer, tennis or anything else are great, but this isn't team work. Team work is sharing success and failure, responsibility, respecting your team mate, engaging others to do great things, collaborating with others to achieve project's goals. And, of course, drinking beers.