Saturday, March 11, 2023

What is a Team


The last couple posts have focused on teams, but I haven't addressed a basic question; What is a Team? 

I ran cross-country in college, so I was on the team, but was it really a team? On days we had meets, it was really everyone for themselves out their on the course. Once we left the starting line, I would see little of my other teammates until we all finished the race. I could have completed without the rest of my team, and it wouldn't have had an impact on my performance. Sure, we had a coach shouting encouragement, but having a coach doesn't make us a team. 

I recently came across the book Leading Teams by J. Richard Hackman. In the book, he outlines the five conditions that need to be in place for a high-performing team. Among the list is the idea that it has to be a "real" team. He defines this as meaning the team has shared responsibilities, clear boundaries, and stable membership. 

I have worked with more than one team where there was no shared responsibility. Each person had their own role. User stories were assigned to the person that knew how to complete that specific type of work. When I encounter a team like this, my first inclination is to start pairing people on work. In the short run, it makes the team less productive but in the long run the team becomes more agile because each person has built additional skills and they don't get stuck because only one person can complete a certain task. 

Boundaries are important because it keeps the team from being inundated with work. In Team Topologies, Skelton and Pais talk about cognitive loads. If you put to much work on a team, it diminishes their ability to deliver, just like to many things in my "doing" column causes me to suffer from task-switching. 

Clearly, there has been a lot written on teams. Going back to the example I started with, my cross-country team doesn't fit into the category of a real team, but a basketball team would. If we start looking at our work teams thru the lens of Hackman, we can start seeing how we can build more effective teams. 

Sunday, January 22, 2023

What is the Right Team Size?

Team in front of Computer Code, generated by DALL-E 2

 What is the right size for a team? Can it be too big or too small? I worked with a team once that had 3 developers. They spent most their time mob programming in front of a 42 inch monitor, taking turns at the keyboard. They didn't need to do traditional stand-ups because they were swarming around one thing at a time. The Scrum Master kept an eye open for impediments, but otherwise was focused on the next thing that would improve the team's productivity. 

I also worked with a team of 15. My first thought was that was too big, but as I watched the team work, I saw that wasn't the case. The team was doing data-science kind of work. They needed people who could write SQL to pull data from legacy systems and put it in data lakes and people who could take that data and package it in a report with Tableau. For this team, having all the skills on one team meant they didn't have dependencies with other teams. 

An often cited paper by George Miller states the magic number at 7 +/- 2 people (sometimes referred to as Miller's Law). The 2-pizza rule says a team should be small enough to feed with 2 pizzas. Robin Dunbar's research suggests 15 is the upper limit of the number of people we can deeply trust. 

There are other considerations beyond just the number of people. As I pointed out in my last post, dependencies slow teams down. My 15 person team was big, but still effective at delivering because they didn't have dependencies on other teams. 

This larger team also had true cross-functional skills. My smaller team was effective because they were developing in a narrow field and didn't need a broad range of skills. However, if they found they were having dependencies on another team because of a missing skill, enlarging the team to include this skill could be a smart move. 

In the book Team Topologies, Matthew Skelton and Manuel Pais talk about cognitive overload. Teams can only handle a limited number of different areas of focus. If the team is asked to do too many different types of work, the effectiveness of the team will suffer. Just like individuals can't multi-task effectively, neither can teams. So when deciding on the team composition, this should also be taken into account. My 15 person team was probably suffering from cognitive overload, but I wasn't looking for that at the time. 

Too often I see teams put together without much thought. Worse yet is when people are partially allocated to more than one team. I think regardless of what framework or methodology you are using, you need to start off with deliberate thought about how to set up teams. I would recommend the book Team Topologies for guidance on this topic. 

Wednesday, January 04, 2023

Even the Best Chefs can't make a bad recipe taste good; why someone else's Agile Transformation recipe may not work for you


 I've been reflecting on some of the agile transformations I've been involved in over the past few years. In some cases, I see some real progress made. Other times it seems like just re-arranging the deck chairs on the Titanic. An organization follows some recipe, but they don't get the results. Why?

I was working with a large financial institution. They had adopted the "Spotify Model" (yes I know, it's not a real thing) and after that they adopted another scaling framework. I came in and started looking at what was going on and discovered they had a huge challenge with dependencies across teams and products. They failed to realize how much the dependencies on other teams was slowing any one team down.

I took some on-line training recently, a course called Agile Physics - the Math of Flow led by Troy Magennis. In it, he talks about Amdahl's law, which was developed in the late 60s to explain parallel processing. The bottom line is that there is always going to be a limit on how much additional output you can get by adding more processing power. Troy points out the law applies to people and teams as well as CPUs.

One source of the limit is how much can be done in parallel, or said another way, how much dependency there is between teams. So two processors (teams) in parallel with no dependencies can produce twice the output of one. However, as less of the work can be done in parallel (ie, dependencies), the output drops. Using the formula Amdahl developed, if you have 4 teams and 80% parallelization, your output is 2.5 (not 4). If you want to learn more, take the course...it's free and some really interesting ideas.

Back to my client with all the dependencies. What could have helped them? Maybe if before they applied the recipe for scaling, they took some time to look at how their teams were set up and came up with a better approach there, that is, one that reduced/eliminated dependencies. More on this idea in a future blog post.