Process is expensive. Bigger teams, working from a distance, part time team members, and many specialists are all factors that lead to a more elaborate process. This might be obvious, but the more companies we get to know, the more we experience that this is something being ignored.
This article is a collaboration between Nomad8 and Crisp. Click here to read the original Swedish version. It was written by Hans Brattberg (Agile Coach at Crisp, Stockholm) and Jimmy Janlén (Nomad8).
When we use some kind of agile process, such as Scrum, Kanban or Lean UX, we highly value collaboration between different people of different competences. A team consisting of complementary skills, that can bring an idea from start to finish, is known as a cross functional team.
A cross functional team is a team that can bring an idea all the way to a release
The simplest possible agile process for members of a cross-functional team might look like this:
- Gather a team of three to five people. Together they have broad experience and knowledge, and all necessary skills.
- Make sure the members work full time (100%) with sole focus on the team’s current project. 100%. Period. No other assignments or commitments to other teams or projects.
- Give the team one big nice room to enable maximum knowledge sharing and learning. Provide plenty of whiteboards for visualization and communication. Flexibility with furniture enables the team to self-reorganize depending on collaborative needs.
- Establish a direct dialog between the team and real users so that the team receives fast and regular feedback. Deliver in small increments.
- Convey clear expectations that they should regularly pause, reflect and together discuss and agree upon how they work better as a team.
A minimal process, where the whole team sits together, undisturbed and 100% focused. When seated together a lot of spontaneous knowledge sharing happens, something that otherwise requires formalized process and meetings.
Working remotely leads to more process
If you sit in the same room, communication happens without effort, naturally, all the time. You can easily raise your voice, or roll your chair over to a colleague to ask a question. You can spontaneously collaborate on a task. Knowledge and shared understanding spread throughout the whole team as through osmosis.
Sometimes, even the thought of getting up from the chair and venturing to another floor, is too big of a mental threshold
If you are sitting far apart, you end up needing to formulate and write an email or chat message, and then pause and wait until you get a response. It could get even worse, some communication might not happen at all since it is simply too cumbersome. Less communication increases the risk for misunderstanding. Sometimes, even the mere thought of getting up and climbing the stairs to another floor, poses too great of a mental hurdle. Your colleague might as well be sitting in another office, or be on another continent for that matter. Same mental threshold. There is no significant difference between seven stairs and seven time zones.
Working from home, or remotely from another continent is practically the same, even though the time and cultural differences increase between countries. It is always worth the effort to find local competence.
Part time work leads to more process
When someone is away, and then returns, that person needs to be brought back up to speed and be informed about what has happened while they were away. Best case scenario, you manage to extract the most important things. Worse case, no synchronization at all.
Part-time workers also make it difficult to find things to work on together, which of course has a negative impact on collaboration. Furthermore, meeting times need to be adjusted to fit their schedule so that everyone can participate. As a result, the person working part time probably experiences a vast increase in the number of meetings, and then he or she gets little work done. The meeting overhead for the part-time worker becomes relatively high. The more part-time workers in the team, the more meetings and less time for value added work.
|If a person works remotely (or is sick, or home taking care of kids) on average 1 day a week, the likelihood of everyone being in the same room at any given point in time is:|
|Team Size||Probability that everyone is|
present at the same time
Specialists lead to more process
The more specialists we have, the more people we need to be. More people means more synchronization meetings.
With only specialists in the team it becomes much harder to attain a balanced distribution of work. All skills or competences are rarely needed equally, and the competency need varies depending on what the team is building. A team with a few people with broad general skills, who can pitch in where required, is necessary to reduce inefficiency.
One strategy to reduce the number of individuals (per team) is to recruit more generalists with a broader skillset, as opposed to more recent graduates with a narrow speciality. For example: maybe a front-end developer with graphical skills. Maybe someone who can code both frontend and backend. Maybe a tester who also can write automated tests. And so on.
More people lead to more process
As soon as we are too many to be able to have ONE conversation, we split into subgroups and the need for synchronization meetings emerges. In our experience, a team seems to breach a magic limit when they grow beyond five members. (For example, imagine a dinner conversation. When does the dialog split up into two or more parallel conversations?)
More people means vastly more conversations
The room we sit in, and the way we have furnished it, also imposes limitations and might force us to split up in ways that undermine communication. Any division over multiple areas makes eavesdropping much harder, and you can no longer simply turn your chair around when you have a question. This introduces the need for more meetings.
The more people in a team, the trickier it is to achieve a configuration that fits within one room, we need to seek other solutions and divide ourselves into multiple rooms.
The more people we are, the more frequently team members will be leaving or arriving. Every change in team composition pushes the team back into storming and forming. New working agreements need to be established. Members need time to get to know each other, and adapt. This costs time and introduces more processes.
Frequently Asked Questions
Question: Is size more important than competence?
If you can’t become cross-functional without being as many as nine people, you need to be a team of nine. But be prepared for more process.
Questions: How do I reduce the size of my team?
Make sure you get more experienced generalists/multi-skilled-people.
The more people with only one speciality, the more people are needed to create a cross-functional team.
The more generalists/multi-skilled-people you have, the fewer people you need overall.
Everything becomes easier.
Question: We are ten people in our team, how do we split?
Make sure that you are cross-functional in your groups as far as possible.
In the case where you only have one tester, assign him or her 100% to one of the teams, rather than 50% in both.
When the other team needs help, provide that through knowledge transfer.
Question: Several of us work part time in other projects, what should we do?
Try to coordinate the time when you are present and the time when you are away.
One way to accomplish this is to book team time in your calendars.
Another way is to agree upon which days you are gone so that everybody is away on the same day.
Question: I work in two or more teams, what should I do?
Try to make one of your teams the primary team. Instead of belonging 50% to both, you spend 60% of the time with one of the teams and 40% with the other. Adopt your primary plans to fit with the team you belong to the most. Instead of committing to tasks on your 40% team, transfer knowledge (help to self-help), in order to reduce their need for your help in the long term.
Question: I do some work remotely, and the synchronization consumes a lot of time?
One approach could be to formally leave the team, and instead provide a service to the team. As such, you don’t need to attend all synchronization meetings, your presence is asked for when the team feels it is needed.
CAUTION: This won’t work if you are a bottleneck.
CAUTION: This won’t work if you need to attend the joint meetings in order to understand the bigger picture.
Specialist outside the team. Only works when the specialist isn’t overloaded with work. If the specialist is a bottleneck, everyone’s priority will be the same as the specialist’s.
Another way to view service providers is to think of them as a fire station. Fire fighters need plenty of slack in their calendar. A fire station is not rewarded by how busy it is, they are measured on how fast they can respond and help people in need. When a fire fighter isn’t busy helping out, they spend time practicing, installing fire alarms, inspecting workplaces, and educating people on fire security.
Question: There are a lot of distributed teams that seem to work well. Is the best thing really five people, all in one room?
The short answer is yes if you have the competence locally. If you can find people with a better skill set located remotely, it could outweigh the cons even though they are spread out across the world. For a longer answer, read more here: http://martinfowler.com/articles/remote-or-co-located.html
Question: We use git and slack and other tools to enable working remotely, so why do we need to sit together?
These tools work excellently when seated together as well, so don’t hesitate to use them even then. A team chat is the perfect place to ask for non-urgent help that doesn’t require you to break someone’s focus. But certain kinds of discussions are difficult to conduct in a chat program. Especially when feelings get involved. The only thing that works then is to meet face to face.
Question: What kind of meetings are needed for teams of different sizes?
A team of five that is co-located might need the following meetings if they work in an agile fashion:
- Weekly planning, 30 minutes
- Bi-weekly retrospective, 60 minutes
- Backlog refinement, when needed
- Daily Stand-up meeting, on demand
If the team is bigger, around 8 people, with someone working part time or remotely, the following is a common setup (differences marked in bold):
- Weekly planning, 60 minutes
- Bi-weekly retrospective, 90 minutes
- Weekly Backlog refinement, 60-120 minutes
- Daily Stand-up meeting, every day with a conference call for the remote worker