Where my product delivery leads were not a team
I want to share an experience I had as a team lead at a company once. This was a different company to the one I work at now. When I joined the company I was very team focussed, my goal was to help my team get to the next level. We had ambitious goals, we were going to do great things.
Now to give you an idea of my team. There were 7 of us. Two QA’s, one BA and the rest Software Engineers My team members were skillful and passionate about their work. As part of the wider organisation, we were one team of about 6 teams working on the same product Each team had their own lead and was roughly the same size as my team.
Early on with my team (about a month in) we had another team contribute to our code base. They did this in a way that irritated me. We came in one morning and there was this pull request. No context, no upfront communication, just a bunch of work done in our area. Looking at the pull request, it wasn’t very good. Tests weren’t great, they clearly didn’t understand the context of the code and when we merged it, it broke the build.
At our daily stand up my team was frustrated and angry. How unprofessional this other team was to make these changes without reaching out to us first. How could they waste our time. I expressed my frustration and disappointment and promised to have a word with their lead.
I set up some time with the lead. I didn’t know him that well. While we sat two rows apart, up till then we had only had a handful of conversations. The conversation went kind of alright. I think he apologised although I’m not really sure. I just remember coming out of it thinking not great but alright.
Fast forward a few months later and things had not improved. There was clearly a divide between our teams. Whenever our teams work crossed boundaries there was friction and frustration. My team just didn’t trust that team. My relationship with the lead also wasn’t great. I was never quite sure where he stood on things or if he was being fully transparent. We spoke sparsely and only when there were issues.
Looking at the wider we had driven this culture of autonomous teams and while the delivery teams were working there were gaps in the wider system.
For instance, I was never quite sure how defects or bugs got done. My gut feel was that bugs were getting reported by our customers but getting put on a backlog because support couldn’t figure out which team was actually meant to do that work. Hiring was fragmented. Teams were definitely looking for different things in people. Career progression was also a mess. It was never clear on how to progress from one role to another.
I had a team member who was employed as a mid level engineer who had been with the company for about a year. He was good however in our career progression conversations it was clear that he still had some growth areas before being ready to be a senior. I remember one week having a 1:1 with him where he had agreed with me that he wasn’t ready to be a senior, only the next day for me to be given a letter informing me of his promotion. I now needed to go back in to meet with him and convince him that he deserved it. This was one of many weird promotion challenges we faced.
Now, why do I share this experience with you? If I look back at that organisation, each team was great at delivering their vertical of the work. We were not good at working as an effective wider system. While there is some accountability on others for that, in hindsight I was also accountable for it. When I joined the organisation I had seen my team as my delivery team. I had focussed on us being effective. What I had realised was that my first team was actually the other team leads and that we were dysfunctional, unaligned and ineffective.
Where my product delivery leads began working as a team
A second experience, this one is a happier story. So I’ve spoken around how we had these autonomous teams with very little alignment between teams. About a year into the experience we went into a restructure and new teams were formed with new leads. In my area there were 4-5 teams still working on the same product.
Now in this experience I’m going to share how things worked with a single team, and then how things worked with a wider group. Let me start with a singe team.
There was team we were going to work closely and it just so happened that they were hired a new team lead. When he wjoined the company, the first thing he did was reach out to me to get to know me and set up a regular 1:1. In those catch up’s we would talk about what experiments each of us was doing with our teams. How we were running retro’s, what was working, what wasn’t and so on.
At some point he suggested we start doing sessions where our teams would meet together to learn about individuals in the team. We would meet every two weeks for 30 minutes and someone in the team would share pictures about their life and background. It was a way for us to get to know the people behind the names.
A few months in and we realised our teams would be working on a shared code base where they would be building many of the services my team would consume. We came up with an experiment we called team tourism. For two weeks I would send one of my team members to be part of his team. They would attend stand ups, mob, pair and work as a full fledged member of that team and then he would reciprocate sending a member to my team. It was a way we could increase our wider understanding of the system. Our teams began to work really well together.
About 6 months into our engagement I got a call from him. He had just had a 1:1 with his BA. In the 1:1 the BA said that he felt like I had spoken down to him and was offended and hurt. This lead asked me if I would be up to meeting with this person to understand where they were coming from. I was totally surprised, it certainly wasn’t my intention and readily agreed to meeting with him. When we met he explained the situation and how he had perceived it, I straight away apologised as how he had interpreted it wasn’t what I had intended. What could have been a potentially critical conflict was easily resolved because of the trust and good will we had built up.
Over the next year that our teams worked together I don’t think there was ever a major disagreement. There were times when we saw things differently and whenever that happened we drove for alignment and understanding. It was one of the most effective working arrangements I have had. Interestingly, this team that we worked so well with wasn’t a few desks away, they were based in another country.
Now I want to take a step back and share how we were now working as a wider group. The leads in our 5 teams began meeting regularly in what we were calling a coaching circles. In these circles we would share the challenges we were facing in our teams and find out how others were handling things. This became a mechanism for us to learn from each other and also identify challenges that were common across our teams.
When we found common challenges, we would share them with our manager. Some of these challenges he would take on to resolve - ie. we would say here is a problem, and this is what we’ve done to adjust it. Some of the things we tackled included interviewing across teams, a common performance review system, how to handle promotions. While we never explicitly called out these leads being our first team and we still had a way to go we at least started acting like a team.
Key points
Fifedoms (we are better than that team) Systemic issues that nobody ever brought up to resolve cross team Team vertical issues would get resolved, but challenges that were cross team boundries rarely got addressed Felt that other teams code, practices and behaviour was never up to scratch When someone from a different team had a problem, you came to the defense of your team member, you had their back