To Team or not to Team?
The comparison between Kanban and Scrum obviously comes up often when we're talking to teams, especially in the context of Professional Scrum with Kanban. While they are more similar than many practitioners realize, one key difference is the perspective on Teams.
If you look at the definition of Kanban or Lean, you wouldn't find teams anywhere there.
If you look at the Agile Manifesto, you can find "The best architectures, requirements, and designs emerge from self-organizing teams"
Scrum is quite clear about the topic (Quoting the Scrum Guide)
"Scrum Teams are self-organizing and cross-functional. Self-organizing teams choose how best to accomplish their work, rather than being directed by others outside the team. Cross-functional teams have all competencies needed to accomplish the work without depending on others not part of the team. The team model in Scrum is designed to optimize flexibility, creativity, and productivity."
Does Kanban believe teams cross-functional self-organizing teams aren't useful?
I personally believe that even if kanban the tool doesn't talk about teams (obviously since it's just a visualization and process-driving tool), despite the fact that the Kanban Method for evolutionary change doesn't talk about teams (obviously since it starts from where you are, respecting your current structure, letting changes be pulled from actual need), more effective patterns for team formation will emerge when Kanban is used professionally.
At their core, Teams affect communication bandwidth. They partition the organization to enable increased communication bandwidth among people in a team while counting on the fact that communication bandwidth to people outside the teams is not that important. Since we are talking about people, not network nodes, teams also allow the communication bandwidth to increase, the longer the team is working together, due to the team formation model. I recently read "The Talent Code" where the behavior of our brain around learning new skills using myelin to wrap neurons to increase bandwidth reminded me of how teams behave.
So it seems like teams can really increase our effectiveness, and everyone in a reasonably sized organization cannot even bear to think about getting rid of the partitioning, right?
Well, some of the Kanban thinking says that since Kanban massively reduces coordination costs via hyper-visualization and the pull system, the size of teams can increase significantly. Since we advocate using classes of service to allocate capacity to demand, thereby maintaining flexibility, we shouldn't allocate people to demand.
The main reason not to go to teams is that teams might be local optimization. If our workload/demand was certain, and the uncertainty as to what effort/specialty is needed to deliver it was low, we could build the teams that optimize our performance. If that workload/demand didn't vary over time, we could maintain the same teams and still have optimal effectiveness. But since in most environments we are facing a complex system with uncertainty/variability in the workload/demand, as well as the implementation effort/specialty required, it seems like sustaining stable teams will cost us in some optimization.
You could see that all of those modes could map to Scrum Teams. And that the classic recommendation for doing Scrum professionally would be to have stable cross-functional teams that pull work in - option 4 above.
You don't have to decide on one model. Not all work is created equal, so not all teams should follow the same structure. Some interesting examples:
Some organizations will jump in, create work cell teams, and start working. This is the recommended Scrum with Kanban pattern and the one I see most often in the field these days. It requires the right organizational energy to make this maneuver. If you have the ability to go down this path, do it.
There are other cases where a more evolutionary path makes more sense. Maybe you don't have strong support/conviction in the value of this new work structure. Maybe the organization is reeling from a recent change and you don't want to rock the boat too much at the moment.
If you want to go for a more evolutionary change mode, consider the following:
When creating teams be careful not to spread yourself too thin. If you have too many small teams it might be an indication you are not managing flow effectively at the Initiatives/activities level. I love teams of 4-5 people by the way.
If you find many people need to be on many teams, you have a real problem. It is ok for a minority of the people, especially specialists, to be needed by many teams. Maybe they should stay as auxiliary on-demand, while spending some of their capacity offloading knowledge to the teams. But if it's not a minority, then you really need to work on versatility, or the on-demand might be a better fit. The whole point of the teams is to create the communication bandwidth. Without that, they're just overhead.
Implementing the right team structure for your organization is a complex matter. What do we do in complex environments? We avoid "best practices", we get familiar with some "good practices" and mainly try something, get some transparency on whether it's working well or not, inspect, and adapt. Hopefully in this article I provided some patterns to help you inspect and adapt your team structure whether you're already using Scrum, Kanban, Scrum with Kanban, or if you're just starting.
Article originally posted by Yuval Yeret on Scrum.org