I'm a Remote Manager now
If engineering management is hard try doing it remotely
I'm one of those people who enjoys working from home. I'm just introverted enough and have enough focus that working from home is kind of my ideal state. I'm also a manager now though and that adds a whole dimension to working from home compared to being an engineer. It's no longer about your effectiveness when working from home. It's also about how effective your team is in a remote situation.
In this Covid19 world we find ourselves in, many software shops have found themselves suddenly transitioned into a full remote working environment. This poses new challenges.
Good remote management is just good management
Many of the things that make for good remote management of software engineers are also just good management practices. You need to empower your engineers to make decisions autonomously. You need to be able to trust your engineers and you need them to be able to trust you. You need regular communication with the engineers in order to facilitate all of the above. These same principles that make a remote team successful also make all engineering teams successful. Mastering them when you are remote managing will only make you more successful when you are local.
Principles of Remote Management
Remote management works best when you have given your team a clear mental framework for decision making and autonomy. You can't be as available for that quick clarification or to obtain immediate permission. You need your team to have the tools required for autonomy in their decision making. In my previous article article I mention how important narrative and identity are in engineering management. When managing remotely, It's crucial. They can't just stop by your desk to ask a question. You won't overhear conversations at desks when you walk by, and neither will your team members. Many of the tools you used to promote a team identity and culture are harder when you are remote.
Written communication can go a long way to giving your team a reference for decision making. Keep a blog or send out weekly and monthly memos with your perspective on the state of the team. If there are policies or processes that are required for the team to follow, make sure they are clearly documented and easy to find. When the team meets in a video conference make sure that someone is keeping notes that can be disseminated after the meeting. It helps keep those who had audio issues or weren't able to make it keep in sync on the decisions. This all helps the team to understand how you see the teams identity and the narrative you wish to craft.
Written communication helps keep the mental framework the team uses for decision making stable. If there are disagreements among team members then documented policies and processes give them a way to resolve the disagreement quickly by referring to that documentation.
Being remote magnifies inconsistencies in your communication. You have to be consistent in how you apply the principles that define your teams identity. If you change how you make decisions every week then it's difficult for your team to learn how to make decisions on their own. They'll continually be referring decisions to you and you'll find yourself micromanaging. Micromanaging a team is nearly impossible to do when working remotely.
Give your engineers a way to reliably make decisions that won't surprise you or other team members. If they have a consistently communicated framework for decision making then they will be able to make decision without fear and the need for your involvement will be reduced.
Be virtually present
Lack of a physical presence is a barrier that must be overcome. You need to find ways to be available to your team through as many virtual mechanisms as you have. Management tends to be more interrupt driven than software development is. Have virtual office hours. Hold training sessions over Video Conference. Pair with team members over Video and a shared screen. Whatever you do don't miss your one on ones with the people you manage. It will take time for them to build that mental framework for autonomous decision making and there are no shortcuts. Make sure your team can access you when they need it.
The foundation of an effective remote team is trust. It is much harder to build trust without a physical presence. A lot of trust gets initially built via non-verbal communication like body language. You will have to work harder to build that trust when remote. The above points about regular consistent communication are critical to your ability to build trust.
Demonstrate follow through in what you commit to do. Don't promise something you can't deliver and be frank about it when you mess up. Honesty is key to success. When the team learns they can trust your word they will get more comfortable.
This forms a feedback loop with their autonomous decision making. When they feel like they can trust the foundation they'll walk more confidently and make better more consistent decisions. That in turn will cause you to trust them more as well. Clear consitent communication leads to consistent decision making which leads to more trust in both directions.
If your reading this and thinking "This is just good managment in general", then you are absolutely right. Most of what makes a good manager is also what makes someone a good remote manager. The only real difference is that any failures in these principles is magnified when you are remote. But if you can excel at it then some of the benefits can be incredible. Engineers who are remote get more deep focus time than in the typical open plan office you have today. If you can nail the team identity and narrative and keep everyone on the same page then productivity on your team might just skyrocket.