September 29, 2020
Last updated October 3, 2022
By: Tom Henriksen
Team Cognitive Load is an interesting idea. I have heard other people discuss cognitive load and how it relates to developers; the team aspect is a new wrinkle to me. Recently I had the privilege of talking to Manuel Pais. He is the co-author of a book called Team Topologies about team structures and how they should work together. Manuel starts by talking about how cognitive load from the individual perspective can affect each one of us. Then we look at teams who must juggle different aspects of the application. Naming the problem is a big step. Manuel points out that many teams feel this pain. Now that we have a name we can begin to address this issue that teams face.
Three Types of Cognitive Load
- Intrinsic cognitive load –
Intrinsic cognitive load is the cognitive load that is inherent in the task itself. It is the amount of effort required to understand and complete the task. There is a limited amount of Intrinsic cognitive load that can be handled at one time, so tasks that are complex or require a lot of mental processing will have a higher intrinsic cognitive load. This deals with the skills we need to understand. For instance, Java developers need to know how to write classes.
- Extraneous cognitive load –
Extraneous cognitive load is the cognitive load that is not inherent in the task itself but is added by the environment or the way the task is presented. Extraneous cognitive load is the tasks around software delivery. A few examples Manuel shares are provisioning a resource, deploying and application, and monitoring an existing application.
- Germane cognitive load –
Germane cognitive load is the cognitive load that is necessary for task completion. It includes the Intrinsic and Extraneous cognitive loads, but it is limited to the tasks that are essential for completing the job. This type of cognitive load allows people to focus on the task at hand and reduces distractions. This is the business domain we must know. If our application is a banking system we need to understand how that works. This can have subtle changes for each company.
Cognitive Team Overload and Performance
All of these factor into team performance. Manuel points out that teams can be overloaded. If this sets in, the team can take shortcuts that lead to quality issues. Another aspect of the team being overloaded is demotivation. He shares how we must remember Daniel Pink’s book Drive,here he calls out three parts to motivating a team: Autonomy, Mastery, and Purpose. Cognitive team overload is a state of mind where team members are so overloaded with cognitive tasks that they cannot complete them effectively. This can lead to frustration, fatigue, and mistakes. It can be caused by a high intrinsic cognitive load, extraneous cognitive load, or a combination of both. To reduce cognitive team overload, it is important to reduce the amount of extraneous cognitive load as much as possible. This can be done by eliminating distractions, simplifying tasks, and providing clear instructions.
The Importance of Autonomy
We expect our teams to be autonomous. This is easier said than done. A team must have the time to make the decision. When numerous deadlines hang over them they may just quickly decide. They also must have the pertinent information they need to make decisions. However, if the data they use to make a decision is outdated they will likely choose poorly. We need to ensure the team has the time and information to choose a solid path. This means that team members are able to make decisions about how they will complete their tasks without needing approval from a manager. This can lead to increased creativity and efficiency, and it can also help to build team morale. Increased team autonomy can also lead to better communication and coordination between team members.
Evaluating Team Interaction
The way teams interact needs to be called out. Instead of just letting things happen we need to be intentional. If we let things happen in varying fashions this increases the team cognitive load. What does intentional communication look like? When we create means of interaction, for instance, the build team needs to interact with the API team. Think about how that information should flow. Try to enable communication so it doesn’t overwhelm the team. Perhaps the team prefers to be contacted via Slack. Some teams want all changes to come in via Jira. Others may want teams to share them during certain meetings. Simplifying communication helps reduce the team’s cognitive load.
Manuel also shared that we need to limit the interaction. Contemporary software can rarely be made by one team. As a result, we shouldn’t have unlimited interaction with other teams. Similar to noise in a public space, this can be a distraction. This can seem counterintuitive in that more interaction seems better. This can overwhelm the team and degrade performance. The level would probably be different for every team. So adjust as needed to the level the team desires.
Teams can come in various forms. One team type is the Enabling team. This is a team of experts in a domain. For instance, we might have a Test Automation Enabling team. They would work with teams that need to improve their Test Automation. The engagement would be limited while they train the team and t hen coach them in the area to a level of competency. Stream teams are aligned with the business. They produce software for the business needs. So if we start a new stream team they might need help from one of the enabling teams.
In conclusion, using these techniques can help teams thrive. Instead of overwhelming the team to do everything. We can focus them on one area. Therefore, we reduce the overall Team Cognitive Load.