How do agile teams achieve cross-functionality? Hint: Contrary to what you might have heard, cross-functional does not mean everyone on the team must know how to do everything.
Every sandwich shop in the world has figured out how to work cross-functionally. So it's surprising to me that so many agile and Scrum teams still struggle with what it means to be cross-functional, especially when it comes to balancing specialists on an agile team.
Think about the last time you watched a team fulfill your order for a sandwich. Likely, you noticed that there were one or two specialists—someone who only cooks, and someone who only works the counter.
But you probably also saw a few multi-skilled individuals. Maybe someone sliced the meat for your sandwich, but then took off their gloves to answer the phone and take an order. Or maybe the person who rang you up, also moved over to flip a sandwich over once the cheese had melted.
When I did my obligatory teenage stint at a fast food restaurant, I was a floater. I wasn’t as quick at wrapping burritos and making tacos as Mark, one of the cooks. Nevertheless, I wrapped plenty of burritos during the lunch rush.
And whenever the cash register needed a new roll of paper, I had to yell for my manager, Nikki, because I could never remember how to do it. Nikki knew, though, that she could depend on me to ring up orders when she got busy.
Although Mark and Nikki had clear specialties, we were consistently able to achieve our common goal of delivering products to our customers, because we also had people like me: floaters.
Specialists on Agile Teams Are OK
It's not that different when agile teams work collaboratively. Yet perhaps the most prevalent and persistent myth in agile is that to be cross-functional, every team member must possess every skill necessary to complete the work.
This is simply not true. It is perfectly acceptable to have specialists on Scrum teams.
A cross-functional team has members who together have the right mix of skills to deliver a working product increment to their customers. But it's rare to see a team where each member has all of those skills.
I suspect a lot of productivity has been lost by teams pursuing some false holy grail of having each team member learn how to do everything.
If my team includes the world’s greatest database developer, I want that person doing amazing things with our database. I don’t need the world’s greatest database developer to learn JavaScript.
How Cross-Functional Collaboration Works
However, too much reliance on specialists can indeed cause problems for agile teams. Too many specialists make it hard to balance the types of work that can be brought into a sprint.
Let's look at a few cross-functional collaboration examples.
In Figure 1, we see a four-person team where each person is a specialist. Persons 1 and 2 are programmers and can only program. This is indicated by the red squares and the coding prompt icon within them.
Persons 3 and 4 are testers who do nothing but test. They are indicated by the green square and the pencil and ruler icons within those. You can imagine any skills you’d like, but for these examples I’ll use programmers (red) and testers (green).
The four-person team in Figure 1 is capable of completing four red tasks in an iteration and four green tasks in an iteration. They cannot do five red tasks or five green tasks.
But if their work is distributed across two product backlog items as shown in Figure 2, this team will be able to finish that work in an iteration.
But, any allocation of work that is not evenly split between red and green work will be impossible for this team to complete. This means the specialist team of Figure 1 could not complete the work in any of the allocations shown in Figure 3.
The Impact of Multi-Skilled Team Members
Next, let’s consider how the situation is changed if two of the specialist team members of Figure 1 are now each able to do both red and green work. I refer to such team members as multi-skilled individuals.
Sometimes people to this mix as generalists and specialists, but I find that misleading. We don’t need someone to be able to do everything. It is often enough to have a team member or two who has a couple of the skills a team needs rather than all of the skills.
Figure 4 shows this team. Persons 1 and 2 remain specialists, only able to do one type of work each. But now, Persons 3 and 4 are multi-skilled and each can do either red or green work.
This team can complete many more allocations of work than could the specialist team of Figure 1. Figure 5 shows all the possible allocations that become possible when two multi-skilled members are added to the team.
By replacing just a couple of specialists with multi-skilled members, the team is able to complete any allocation of work except work that would require 0 or 1 unit of either skill.
In most cases, a team can avoid planning an iteration that is so heavily skewed simply through carefully mixing the type and sizes of product backlog items. In this example, if the first product backlog item selected was heavily green, the team would not select a second item that was heavily green, even if that means pulling some product backlog items out of order.
The Role of Specialists on an Agile Team
From this, we can see that specialists can exist on high-performing agile teams. But, it is the multi-skilled team members who allow that to be possible. There is nothing wrong with having a very talented specialist on a team—and there are actually many good reasons to value such experts.
But a good agile team will also include multi-skilled individuals. These individuals can smooth out the workload when a team needs to do more or less of a particular type of work in an iteration. Such individuals may also benefit a team in bringing more balanced perspectives to design discussions.
Evidence from My Local Grocery Store
As evidence that specialists are acceptable as long as they are balanced by multi-skilled team members, consider your local grocery store. A typical store will have cashiers who scan items and accept payment. The store will also have people who bag the groceries for you. If the bagger gets behind, the cashier shifts and helps bag items. The multi-skilled cashier/bagger allows the store to use fewer specialist baggers per shift.