4 skills of an effective distributed software development team manager
Managing remote, globally distributed teams, is no easy task. During the past 10 years I have seen all sides of this role, good and bad. I want to share some of the competencies I think are fundamental to be an effective remote team manager.
I see empathy as ones ability to place oneself in the shoes of another person; to understand the thoughts, feelings and motivations of the people you work with. As remote team management is all about collaboration, empathy is the most fundamental character trait needed to succeed with globally distributed teamwork.
Especially in offshore software development teams, empathy is often a rare trait. Technicians are mostly men. Men are in general less empathic than women. And technicians love pc's and data but not necessarily people. So much for the generalizations, but I guess you get the picture...
By being empathic towards your remote team members, you start understanding why they behave the way they do. You see what influence the local (company) culture has on behavior, what your remote team members value in life, in work, in other people. You learn how they deal with hierarchy, relationships, responsibility. And you can also reflect on your own behavior to create understanding back and forth. Without this empathic sense or curiosity, it's almost inevitable that a culture of 'us and them' starts to evolve.
We behave in a certain way and 'they' do this different and that's wrong. Or 'we explained everything clearly' and 'they didn't listen and delivered something else'. Without empathy, people often don't observe 'us versus them' and if this pattern evolves, the people working in the team can never become a true, collaborative team.
So if you make someone responsible for managing a remote team, figure out how empathic he or she is.
Remote teamwork requires an extra level of organisation. One needs to think carefully about how the collaboration process works, how the team communicates, at what intervals and with what agenda. One needs to carefully pick the right tools to support the collaboration (tools like Trello, Jira, Asana, Slack, Skype, Github). The manager also needs to keep an overview of everything that's happening. With a collocated team this is also fundamental; in a remote team it's harder to see what everyone's doing and whether the team is on the same page. A structured and well organized character is needed.
Related to empathy, the manager needs to have patience. If the distributed team is newly formed, the individuals have to get adjusted to each other. This takes time (from several weeks to a couple of months depending on the prior experience working together). People miscommunicate. People misunderstand one another. People have their own behavior that might not match completely with the managers or other members' expectations. Over time, people understand better how they behave and what is expected. During that learning period, the manager needs to be patient and accept that others are different and may make mistakes.
4. Able to let go
Responsibility needs to be shifted to the people doing the execution. In a remote team, this oftentimes means that the remote team does most of the work. As the manager cannot see on a daily basis what they're doing, he doesn't talk to them at the coffee machine, doesn't see their screens, he needs to trust the team 100%. He needs to let go of the urge to control what people are doing. The management needs to be on output and on process.
To take an analogy from scrum, he's the product owner; the team and the scrum master are accountable for the output of each sprint. The product owner defines clearly what output he expects, the team acknowledges understanding of the expectation and commits to the delivery. The product owner joins retrospectives, which deal with the process. In those meetings, he can voice his opinion on the process and performance of the team, but during the sprint, he needs to let the team do the work.