First draft of article on remote engineering management.

This commit is contained in:
Jeremy Wall 2020-05-13 20:39:49 -05:00
parent f5fbc4c16e
commit 0a968d5fc2

View File

@ -0,0 +1,97 @@
+++
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](@/engineering-managment-is-hard.md)
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.