I was working at a company in a role where I both actively coded and guided the work of others. On one occasion a new senior manager was counseling with me regarding what to do with an underperforming team with high attrition. The question at hand was something like “Do we just cut our losses and disband the team?”. I didn’t know a lot about the team dynamics so I suggested I could embed with the team for a time to understand conditions and report back.
When I embedded with the team I did confirm what was observed. Morale was terrible, only a trickle of work was being completed, and in my first meeting with the team I learned another person had plans of leaving. It was clear something had happened to leave a deep rift in this team. The team had a large backlog and without them, other overloaded teams would be further underwater with work. Due to industry and system complexities it would take months to hire and train replacements. My report back to the senior manager was to give me some time to see what I could salvage.
Listen before speaking
My first order of business was to meet with each person individually. We talked about the work and we also started on a path for personal connection. Most of what I did was listen and take notes. I asked people to elaborate on what makes things difficult. A common thread emerged: The team was loaded with the dirtiest jobs, given impossible deadlines and was constantly criticized. Some people who left the company didn’t even have other jobs lined up, they just needed to get out. They would rather be couch surfing than enduring the difficult psychological conditions.
Be an advocate
I was honest with people, the problems were deep and difficult. I set the expectation that I couldn’t fix every issue and solutions might take a long time. The only thing I could commit to was effort. They understood this and appreciated someone even trying to help. I looked through the backlog and found a few work items that would be quick wins for the team. I asked the team to take on the hand picked items I had selected.
At first there was reluctance to switch tasks. The team brought up tasks that had been previously assigned and lingered in an unfinished state. They didn’t want to be scolded for changing tasks. I worked with the team to find stopping points for some work and in other cases I worked with stakeholders to renegotiate expectations. For example, some members of the team were working on resolving bugs that rarely happened or had established work arounds. Stakeholders were happy that more important requests buried in the list were getting attention. The team completed a few of the new tasks and got their first set of wins. I expressed gratitude and conveyed the satisfaction of stakeholders. This was perhaps the first time the team had been thanked in months.
Provide support
After passing the first tests of trust, the backlog started to move again. Enthusiasm began to build but there were only so many quick wins we could pull out of the line. Eventually we needed to go back to harder subjects and make forward progress. No one reported any problems during team meetings but I knew from experience that something was off.
I set up time with individuals to have pair coding sessions. I didn’t want to hear status, I wanted to understand at a code level what we were up against. For some this was very intimidating and I eased tensions by offering to drive. We focused on how to reproduce the issue, we talked about ideas on what might be happening and what a fix might look like. In some cases the problems were difficult to reproduce. I got to have several teaching moments as we looked at what conditions must be true for the error to happen and then worked backwards to determine how to force the error to happen. Maybe we didn’t know how inputs got to be bad but we could code defensively to not have our code break. I also taught the team to continue this deliberate investigation up the chain to fix the root cause.
We did all this in quiet settings. When the engineer got unblocked they carried the ticket the rest of the way and got the glory. This second wave of trust tests established that I wouldn’t embarrass them and I was there to help build them up.
Be a human
The team began to stabilize. They passed their existential crisis. The senior manager was no longer considering disbanding the team and he asked me to stay with the team longer to continue the new momentum I had started. For me personally, it wasn’t good enough to have a team that was just happy enough to not quit. I had been a member of and managed high performing teams in the past and I knew the team was capable of more.
In my one on one interactions with each team member I focused on getting to know each person. What were their talents? What were their dreams? What were their motivations? I tried to break down cultural barriers by learning about their local culture and traditions. One team member was religious and enjoyed going on a long pilgrimage each year to a religious site. Other team members liked to watch and participate in sports. I shared my interests, answered questions about my local traditions and helped with questions about obscure parts of English.
I took notes on every person and followed up on their personal situations. They did the same for things happening with me. When I was in larger planning meetings I could remind the group about foreign holidays and I would suggest adjustment to key meetings to make sure the team could be there. We celebrated in the team when people had life milestones, we become more than just people writing code, we became a team with strong bonds.
Once stronger connections were made, something magical happened: The team did more without being asked. When we had team syncs people actually asked for help and helped each other. People shared ideas for proactive improvements. People found ways to squeeze in an extra story or two. And of course they were appreciated and recognized for the good things they did on their own free will.
Think of your own life, how much more are you willing to do for people you care about?
Conclusion
Psychological safety is critical for teams to perform tasks. High attrition is a sign that organizations have experienced an extended period of time without psychological safety. If a company wants to try to reverse the lasting impacts of high attrition, the solution requires concentrated efforts by leaders to rebuild trust.
Rebuilding trust is a process that involves listening, advocating for change, support and human connection.
What can you do to grow trust within your organization?