jeremy.marzhillstudios.com/content/remote-managing-engineers.md

4.7 KiB

+++ title = "Remote Managing Software Engineers" date = 2020-05-13 draft = true [taxonomies] tags = [ "teams", "management", "remote" ] +++

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. Now 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. I've been thinking about this lately and wanted to note my thoughts on the matter.

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.

Autonomous decision making

Remote management requires giving your team a clear mental framework for decision making. In my previous article article I mention how important narrative and identity are in engineering management. It's critical when managing remotely. You will be less present to your team physically. They can't just stop by your desk to ask a question. You won't overhear conversations at desks when you walk by and many of the tools you used to promote a team identity and culture are harder when you are remote.

Written communication

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 teams meets in a video conference make sure that someone is keeping notes that can be recorded after the meeting. It helps keep those who had audio issues or weren't able to make it keep in sync on the decisions.

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.

Consistenct Communication

Being remote magnifies inconsistencies in your communication. It's important 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 you to be involved will be reduced.

Be virtually present

Be available to your team through the various mechanisms for communication your team has. Management tends to be more interrupt driven than software development is. Have virtual office hours. Hold training sessions. Whatever you do don't miss your one on ones with 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 to.

Building trust

It is much harder to build trust without a physical presence. A lot of trust gets build via 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. You also need to demonstrate follow through in what commit to. Don't promise something you can't deliver and be frank about it when you mess up.

When the team learns they can trust your word they will get more comfortable. This forms a feedback loop into 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.