Notes on working in a team as a full-stack engineer.
I think it's best to start by looking at why we work in teams. What are the advantages & disadvantages of working in a team opposed to working by yourself.
- More gets done. It may seem obvious that a team of 2 working on something will build faster than 1 person. In software however, doubling a team size does not equal double the output.
- A better solution. Mutiple perspectives looking at a problem will produce a better solution than just 1.
- Social need. Humans are social creatures. We need a level of interaction with others. Although you can get this from family & friendship circles, in my experince, this isn't enough. Work can be a source of friendships that can outlast any project.
- Learning. If you can, join a team where you aren't the smartest guy in the room. Working with others that are better than you is a huge opportunity to learn & grow.
- Communication. Communication is hard. Creating & maintaining a shared understanding between team members is 1 of the hardest tasks in team work.
- Focus time. Time to focus on code without distraction can be highly productive. You have this in spades when working alone. When you join a team, some of this time is replaced by other requirements, like communication.
Joining a Team
Strategies when joining a team:
- Listen. To begin with, during work-based events (such as meetings), be a gray man. The team will have norms (rules or expectations that are socially enforced). Observe & learn these before contributing.
- Earn trust. In social situations, ignore the above & be yourself. This will build trust. Another technique a product manager I worked with uses is to get an understanding & empathy of what others are trying to achieve in their role. Have a conversation with each team member and find out what they care about, what is important to them in their role.
This section refers to team meetings, not meeting with external parties, such as reporting to higher-ups. I’ve come across 2 popular strategies that can provide an approach for running meetings:
- Psychological Safety
- Disagree & Commit
Imagine it's the early days of Saturday Night Live. It’s Monday morning. You have 6 days to get a live show ready. You collect a group of highly talented comedians, all with massive egos, & put them in a room together for a meeting. 1 would assume that this would be a recipe for disaster. When this played out in reality however, the opposite happened...
The team was highly effective & Saturday Night Live thrived. This was attributed to the guy running the meeting, Lorne Michaels (creator of Saturday Night Live). Labeled a master of creating physiological safety. When he ran a meeting, he went around the table & made everyone say something. Throughout the meeting, if someone hadn’t spoken up in a while, he would stop the meeting, call out that person & ask what they were thinking about. If someone looked upset, again, the meeting would be stopped. Lorne would take them out of the room & ask what was wrong. Although this greatly increased the duration of meetings & implies reduced productivity, Lorne was known for his productivity. In the case of Saturday Night Live, a high-pressure schedule requiring a live television show every week, it worked.
Google’s years of experiments found psychological safety is the single greatest determinate of whether a team works or not. When a team is created, over time they begin to form norms (rules or expectations that are socially enforced) about how they interact with each other. 2 norms that had a huge influence on a team’s performance:
- Everyone in the team has the opportunity to get their voice heard.
- High social sensitivity. The ability to pick up what others are thinking & feeling based on non-verbal cues.
Together, these 2 norms create psychological safety.
Disagree & Commit
Disagree & Commit is a management principle that is referenced in Amazon’s Leadership Principles & Netflix's culture.
Disagree & Commit has 2 objectives:
- Encourage disagreement.
- Commit as a team. Unite the team in committing to a decision.
This objective is to try & avoid the Consensus Trap. Although in theory, it seems as though everyone in the meeting is in agreement, in reality:
- The majority disagrees, but simply keep quiet.
- The decision is so important that nobody wants to assume full responsibility.
- Everyone wants to get the meeting over & done with as soon as possible.
A technique for encouraging disagreement is interpreting silence as a negative & ask every person in the meeting clearly if they agree with the decision.
Commit as a team
Committing means that whatever final decision is made, the team must do whatever they can to implement it. Everyone at the meeting is responsible. It assumes all people in the meeting are satisified because:
- Everyone had the opportunity to express their opinion.
- If you disagree, you want to be proved right by having it fail because of the idea, not because of poor implementation.
A theme that comes across from both of these approaches is engaging all team members in conversation. A weakness in Disagree & Commit is it seems to focus on just decision making & uses disagreements as the indicator of a successful meeting. I think it identifies but overlooks 2 big problems:
- "The majority disagrees, but simply keep quiet." &
- "Everyone wants to get the meeting over & done."
Why is the team keeping quiet? Why does the team hate meeting? Wouldn't it be better to aim for meetings that people looked forward to. Shouldn't meetings be the peak of collaboration? I don't think Disagree & Commit is aiming at the best target. Lorne's approach to Pyshcological Safety by constantly proding members to engage in conversation looks to be more fruitful in terms of:
- surfacing problems between members that could be impeding collaboration in & outside the meeting,
- getting input from members beyond just their view on big decisions &
- strengthing relationships between team members.
2 common complaints I've heard about meetings:
- "This could have been an email" &
- "I don't know what the point of this meeting was".
Think of meetings as an expensive activity. Before organizing 1, have a clear goal(s) & consider if there are cheaper options that could be used to achieve them, such as:
- an email,
- a Slack thread or
- a casual 1 on 1 chat.
When I was a teacher, a common rule was to never let a lesson go for more than 50 minutes. This was the limit at which students' could maintain focus. On the 51st minute, learning would plumet & bad behaviour would skyrocket. I think comparisons can be made between this and meetings. Personally, meetings that drag on past 50 minutes start to lose their value. A technique I've seen used to refocus everyone is, after a certain time, the facilitator instructs everyone to stand up, stretch, then continue with the meeting. In my experience, this is like applying a band-aid to a bullet wound. It doesn't do anything. If you have more than 50 minutes of content to get through, split it up over multiple meetings. Ensure there is enough time between each for people to reflect, recharge & perpare for the next one.
A common reason why meetings drag on is because a consensus on a issue can't be reached. You can avoid this by not attempting to reach 1. What is clear in Disagree & Commit is you can't please everyone. What is clear in Psychological Safety is that everyone wants to be heard. As the decision-maker, don't aim to make everyone happy, just aim to make everyone heard. Then, with the information you have, make the decision you think is best. If the decision isn't time sensitive & you need more time. End the meeting. There is no rule that meetings have to end in a decision. Nor is there a rule that has everyone has to be in the room while you think.
When interacting with team members, practice emotional maturity. These have been selected & adapted from The School of Life:
- The majority of bad behaviour from others stems from fear & anxiety, not nastyness & idioticy. In my experience, nastyness can also come from a lack of awareness that one's actions are hurtful or from someone who wants to feel better about themself by pushing someone else down. In any case, always assume positive intent & talk to them about it. Don’t bottle it up. Don’t complain about them to others.
- You understand that what is in your head can’t be automatically understood by others. Communication is a valuable but difficult skill to master. Don't assume your good at this because you have been communicating with people all your life. Intentionally work at it everyday.
- You acknowledge that you make mistakes. If your actively learning, then mistakes are routine. You apologogize & take responsibility.
- You understand that everyone, like you, is making it up as they go along. Don’t hold people to a standard that you could never reach. Don’t hold yourself to a standard that others couldn't reach.
- You keep track of what things effect your mood & factor this into your activities. If you get tired after eating, don't plan meetings just after lunch.
- You let go of the idea perfection in preference of good enough. Understand there isn't a perfect choice. Each choice has pro's & con's.
- You don’t dwell on past mistakes. Rather, you learn from it & move on. Live & learn.
- Celebrate the small wins.
- Your good at both creating an environment for & accepting feedback.
- You understand that events in your past influence your response to events in the present. You compensate for the distortion. Be suspicious of your 1st impulse to things.
Feedback is critical for learning. Aim to get into a team that practices feedback regularly. A team with a feedback strategy in place, such as Radical Candor, is a good indicator.
Strategies for giving feedback
- Give it as soon as possible, while the event is still fresh in mind for both parties.
- Being clear & direct. “When you did X, it had Y effect”.
- Provide an actionable solution. “This is what you could have done instead”.
- Give feedback regardless of position. Just because someone is above you, doesn’t mean your feedback is worthless. If someone wants to grow, they will accept feedback from any team member. If they don’t want feedback, note this as a negative when deciding whether to remain with the team or move on.
- Only give it if it’s authentic. If you care about the person & want to help them to be better. People can detect insincerity & it can just result in conflict. Honesty without kindness is cruelty. Kindness without honesty is manipulation. Note, this does not apply if someone offends you. This should be brought up with them irrelevant of your feelings towards them.
Strategies for receiving feedback
- You’ll need to practice not getting emotional. Accept it gratefully & make them feel appreciated. The last thing you want to do is kill the messenger by getting angry. This will demotivate them from giving future feedback.
- Act on it. You’ll be a better person for it.
Adding a New Member
Seal Team 6 is the best of the best. The highest performing organization on the planet. How do they pick a new team member? They look at 2 traits:
- Performance: Performance on the battlefield. Skills. “Do I trust you with my life.”
- Trust: Performance off the battlefield. What kind of person are you. Who’s always got your back. When the chips are down, they’ll be there with you. They create an environment for everybody else to succeed. "Do I trust you with my money & my wife."
Everybody wants a team member that exhibits high performance, high trust. No one wants someone that exhibits low performance & low trust. But when the team is faced with people that fall outside of these 2 extremes, they found that a high performer with low trust is a toxic team member & would prefer a medium, or even low performer, that has high trust. Unfortunately, these people are hard to find. We have many ways to measure performance but hardly any to measure trust.
The importance of trust is echoed in a Harvard study. Compared with people at low-trust companies, people at high-trust companies reported:
- 74% less stress.
- 106% more energy at work.
- 50% higher productivity.
- 13% fewer sick days.
- 76% more engagement.
- 29% more satisfaction with their lives.
- 40% less burnout.