Team dynamics on the dev team are so important. A team that is healthy, well-balanced, everyone has an equal voice and trust each other is a great place to be on. If you're on a team like this, you feel motivated, learn more, the team gets more things done and both you and the team get more recognition. Let's call this team a healthy team.
Contrast this with a team where things are not so good. It might be a team with a conflict between two or more people. It might be that the lead takes too much authority, not leaving space for others. It might be one team member not pulling their weight, without knowing about this. Whatever the reason, this team is an unhealthy team.
From experiences that you've had, what are characteristics you've observed that healthy teams have, and what was true for unhealthy teams? These experiences could be from your own team or for ones you've worked with. Here are some of my experiences.
Healthy team:
- On meetings, everyone speaks roughly evenly. No one dominates the conversation and no one is completely silent.
- Team members help each other out all the time. Even when this means interrupting their work.
- Team members care less about completing their work and care more about the team/sprint/project succeeding. They'll pause their work if they think helping someone else complete a more important or complex work is more important
- Responsibilities are rotated: more senior members offer to more junior members to stretch themselves, delegating some things they do. For example, the role of who leads the standup, who facilitates the retrospective and others would be rotated.
Unhealthy team:
- Regular and visible conflict. Even if it's only between two team members, this has a hit on the whole team.
- Absent team member: when a person doesn't show up regularly and makes no communication that this will happen. The "oh, I didn't tell you that I'm working from home?"
- Being spoken over. One or more team members are regularly being cut off.
- It's about taking credit. A few team members are all about showing off how clever they are and how their ideas or contributions are the most important.
- Group thinking. On meetings and discussions, when people have a very different view, they don't bring it forward, not wanting to rock the boat. Often, this means no strong opinions and settling on a decision no one is really happy about.
- Too much authority. One or more senior members dominate decisions.
- Toxic code reviews. Code reviews result in a lot of tension and arguments. Even when it seems to be about the code or best practices, the code author and reviewer both end up being bruised and not wanting to talk to each other.
- Finger-pointing. When things go wrong - such as bugs introduced - people call out who made the mistake. This is in contrast of a blameless culture, where people accept that anyone will make mistakes and try to address the systemic root cause instead.
What have you seen great and terrible teams do or not do?