Antipatterns In Distributed Teams
If you’ve been developing software for a while and have changed jobs a few times, you’ve probably run into a situation where you are working with a distributed team. If you are like many of us, you probably also ran into a distributed team that wasn’t as efficient and welcoming as it could be.
“Now it’s getting increasingly common that teams are both diverse and distributed across multiple offices or even continents.”
Managing a distributed team is at least as difficult as managing a team on-site, especially when it is across timezones and international boundaries. It takes not only a better style of management, but it also requires that the team put forth some effort to make it all work. And odds are good that if you find yourself in this situation for the first time, you won’t be given any instruction on how to make it all work.
Working on a distributed team can save your company money, but that doesn’t mean that it’s going to be easier. In fact, you have to be more conscientious when working with a distributed team because of all the things that can go wrong. There are things you can do as an individual and as a manager to mitigate these problems, but you’re going to have to put the effort in to make them happen.
09:45 You constantly find yourself waiting on a team in a different group.
The ultimate cause of this is that people don’t plan ahead if they don’t have to. As an individual, plan ahead and use asynchronous communication methods to get things you need.
“Or when you’ve got two people that live 5 minutes away from each other and they don’t do the outline until the night before.”
As a team lead, keep asynchronous communication as your default and push back on those who attempt to change it back to synchronous. As upper management, require teams to use asynchronous communication methods and make sure they have the tools to do so.
15:20 Teams are regularly in conflict between locations.
“Where I work we have 4 different teams and we’ve named our teams.”
This comes from humanity’s innate tribalism. As an individual, you must resist the temptation to treat remote team members as members of a different team.
“You can set your teams up so that the people that are naturally going to gravitate toward one another are on the same teams.”
As a team lead, you have to find ways of interacting with remote team members as if they were local. As upper management, you have to ensure that you are just as reachable by team members in other locations as you are locally. In addition, upper management needs to stymie attempts to become tribal between teams.
18:40 You find yourself constantly talking to the remote team leads instead of the remote team.
“It’s the angry divorced parent communication protocol.”
This happens because communication is broken in some way and the organization is structured to try and minimize the damage. This could be anything from protecting corporate fiefdoms, to a language barrier, to problems with time zone differences. As an individual, you should combat this by having direct contact with the distributed team members.
“You gotta say, ‘If we’re working together on something I’m talking to them.””
As mid-level management, you need to encourage your people to talk to the distributed team, including allowing them to make some decisions themselves. As upper management, you need to keep your teams from atomizing like this due to bad reasons. It may still mean that there are primary contact points at each location, but you should not allow it to develop such that there are solo contact points at each location.
24:18 Your corporate leadership doesn’t trust team members at some locations as much as others.
This can happen because of regulatory differences, previous events such as a merger, acquisition, or even bigotry. Regardless, the boundary of trust will create problems if things are structured such that trust is required across locations.
“For some reason I’m in Hyderabad…”
As an individual, you need to find out exactly what they don’t trust the other team (or your team) with. As management, you need to be trying either give the team being distrusted the opportunity to prove themselves, or trying to mitigate the damage. As upper management, you either need to be giving the other team a chance to fix the impression, or you need to get them out of there.
28:00 Communications in voice meetings are difficult for many people to understand.
Different accents can be difficult to understand, even if everyone is speaking the same language. This can often lead to inter-team resentment, as it’s very mentally taxing to try and parse everyone’s spoken language. As an individual, try learning a little bit of the other languages your team uses. You don’t have to be able to hold a long conversation, but you’ll be surprised how much this helps you understand them.
“Try impersonating them, on your own not in a derogatory way, but think about the things they’ve said and try to say it that way.”
As middle management, keep meetings small, and brief, with only the required parties. There should be no daily scrum with 20 people across 3 continents. As upper management, you need to avoid the long, cross-team meetings unless really required.
33:00 Meetings are continually scheduled at very inconvenient times.
“This has never ever happened to us…well not this month.”
This is a function of simple geometry. When one side of the planet has light on it, the other side doesn’t. People are on both sides. As an individual, you need to plan ahead for things you need, instead of getting them at the last moment. Individuals also need to enforce strong boundaries with regards to after hours interruptions. Middle management should make sure that they aren’t putting after hours pressure on teams, especially remote ones because it’s easy to forget timezones. Upper management should make sure teams have the proper tools and processes for communicating in a distributed fashion. Speakerphone and screen sharing is not enough.
38:23 Teams in other locations are remote and mysterious to you.
“You don’t KNOW them”
This happens because you aren’t face to face and communicating regularly. As an individual, you should try and participate in some non-work chat over the available communication channels.
“It’s basically water cooler talk.”
As a middle manager, you need to spend some time trying to encourage people to make better contacts on teams in other locations. This may require assigning people to work together. As upper management, you need to make sure your policies and procedures for using work tools for chitchat and socializing don’t make people afraid to do so.
43:20 People are afraid to rock the boat because it might hurt the team.
This comes from treating people as a member of a group, rather than as individuals. You really don’t want this kind of fear reaction on your team. As an individual, you need to form alliances with members of other teams as well.
“When we learn something new we’re constantly on slack going back and forth.”
As middle management, you need to make sure that you aren’t playing teams off of each other. As upper management, you need to clamp down hard on any turf wars between middle management at disparate locations.
46:36 Various people are uncommitted or unaccountable
It’s easy to lose accountability in the shuffle. As an individual, keep yourself accountable and be in regular communication with your chain of command to make sure you aren’t the problem.
“That takes a certain strength of character to say I messed up.”
As middle management, make sure you hold your direct reports accountable so that your team doesn’t have the problem. As upper management, hold middle management accountable if they drop the ball and make sure responsibilities and requirements are clearly communicated.
50:27 Domain knowledge is fragmented across teams.
“Initially when it starts it’s a way to avoid all the communication problems.”
This is easy to do, especially with teams working on separate items. It is also risky, as a team getting cut can mean the sudden cessation of support for chunks of your app(s). As an individual, you’ve got to document your stuff. Pad estimates if you must, but do not be the problem. As middle management, insist on specifications and documentation as part of project deliverables. Push back on higher ups and developers who try to skimp on this. As upper management, provide your team with the tools to keep documentation up to date in a distributed fashion. Passing word documents around by email does NOT work, even on a co-located team.
53:10 It’s hard to gauge team morale.
“The monkeys up high in the tree look down and see only smiling faces, while the monkeys further down look up and see…something less favorable…”
You can’t easily tell in a distributed team how the rest of the team is doing. As an individual, you need to bring concerns to management early. As middle management, you need to elicit feedback from your people, especially the remotes, because you aren’t a mind-reader. As upper management, you need to empower middle management to fix morale problems or escalate them to you if they are serious and people are unlikely to be entirely forthcoming with you.
Edible Robotic Fingers
Edible and biodegradable these robotic parts serve a multitude of functions. While not actually IoTease they could be used along with IoT devices. They are designed for tasks like handling fruit or passing through your GI track. Medication could be added to the gelatin mix so they deliver it while digesting and record or transmit the process. They could also be used to track wild animals or sent into wilderness areas to safely decompose once they are finished with their task. They are made from gelatin, glycerin, and water.
Tricks of the Trade
The structure of an organization will often change the structure of the code it produces. The reverse is also true. Be aware that this is a two way street that you can leverage from a much lower position in the hierarchy than you might think.