TechWorkRamblings

by Mike Kalvas

202110220845 Remote team management

#structure #source

This structure note records my learnings from taking the Coursera How to Manage a Remote Team course.1 These notes come from a time before my Zettelkasten and are longer, more verbose, and less atomic than I'd normally like, but I'm just going to leave them as they are. That way, I can link to them and search for their contents without investing the time in breaking them down more.

Managing a team of remote workers presents unique challenges and opportunities:

Communication is Crucial

Embracing Asynchronous Communication

In a world dictated by calendars and schedules, people are conditioned to operate in synchronicity — meaning that they inhabit the same physical or virtual space at the same time. Asynchronous communication is the art of communicating and moving projects forward without the need for collaborators or stakeholders to be available at the same time your message is sent.

In an all-remote setting, mastering asynchronous workflows is vital to avoiding dysfunction and increasing efficiency. The benefits include enabling your team to work effectively across time zones, reducing meetings, and enabling team members to work on a flexible schedule — all of which raise morale and productivity. However, shifting to this way of working requires a lot of large and small adjustments.

Iteration

Asynchronous workflows are more easily adopted when you foster a culture of progress over perfection. Practicing iteration means sharing work that is in draft; working on multiple projects at once; and having a low level of shame. Perfectionism is an impediment: iterative work requires most things to spend a lot of time in “draft,” while they wait for another party to unblock progress. This requires intention and effort.

If you're only working on a single project, asynchronous can feel taxing and inefficient, as you're perpetually waiting for another party to unblock you. This creates idle time and makes synchronicity seem alluring. If you're working on five ongoing projects, for example, it's much easier to make iterative progress on one, tag a person or team for desired input or action, and switch to another ongoing project while you wait. If you cycle through your assigned projects, making iterative improvements on each before handing off, you're able to create minimum viable change for many more projects, while being less concerned over the immediate response to any one of the projects in particular.

Asynchronous works well when you manage multiple concurrent projects, though this does require discipline and an ability to context switch and compartmentalize. Aim for progress, not perfection.

Asynchronous workflows require a culture where incremental improvements are celebrated equally, if not more, than massive launches. If leadership casts shame on unfinished or unpolished work, workers will be reluctant to work asynchronously. Rather, they will optimize for delaying work until a satisfactory amount of consensus gathering can occur. Consensus feels good, but can easily mask inefficiency, progress, and innovation.

Documentation and transparency

We can’t overstate the value of a single source of truth for transparent, up-to-date documentation. This must be an essential part of any remote team’s strategy, if you want asynchronous workflows to function well. GitLab’s handbook is our single source of truth for all processes and stable information. For projects, tasks, and short-term initiatives, we use a project management tool — in our case, it’s GitLab — and we enforce creating issues for all work and keeping them up to date.

Having a documentation-first approach allows us to avoid common problems, miscommunications, and delays. It also empowers employees to seek out information and act in a self-directed way, which reinforces independence and self-motivation.

As a team scales, the need for documentation increases in parallel with the cost of not doing it. Said another way, implementing a documentation strategy becomes more difficult — yet more vital — as a company ages and matures.

In early-stage startups, it's particularly tempting to avoid a documentation strategy. With only a few team members, it's feasible to keep everyone informed via meetings, shared documents, Slack, or email threads. Long-term, this oversight becomes increasingly harmful. You will observe slowdowns, mistakes, and delays as important information gets lost in email chains and document drafts. Teams can quickly become siloed due to lack of shared information, and it’s a matter of time before this causes significant problems and strife.

Using synchronous tools to support asynchronous work

Most of the communication methods we’re used to, such as chat and meetings, are synchronous by default. Even in an asynchronous workflow, there is a space for synchronicity: namely, to solve problems.

Our policy is: after two async check-ins on a topic or task, call a meeting to discuss it further. When the issue is clearly understood, the process can continue asynchronously. Slack or a chat tool can also be useful for getting attention to a timely issue; we are all naturally inclined to respond more quickly to a chat message than to an email or project update. However, make sure that work discussions are redirected to your single source of truth.

Implement forcing functions to limit the value of your synchronous interactions. For example, GitLab requires every meeting to have a written agenda, and we allow people to RSVP “no” or stop participating if the meeting isn’t relevant or valuable to their work. Most meetings are recorded, so invitees can watch them on a flexible schedule. We also set our Slack messages to automatically expire after 90 days, ensuring that any work discussions that people need to preserve will be moved to the single source of truth.

Finally, encourage the use of synchronous communication for what it’s best at: informal, social connection. No experience can replace a casual conversation, and without the ability to connect on a personal level, your team can become lonely or burned out. Use Slack and video calls for coffee chats, sharing wins, giving praise and thanks, and connecting over personal interests. In that way, these tools can add to your team experience rather than impeding it.

Challenges of asynchronous communication

One of the biggest challenges of communicating asynchronously is providing enough context. For example, if a manager gives their team instructions that are incomplete, it can take several communication cycles to clarify the requirements — or the work may need more iterations before being completed successfully. Especially when there are several time zones involved, this can impede and delay work.

As we mentioned previously, it’s important to use low-context communication, providing full information and additional references or resources, so that the recipient of your message can effectively act on it. This should be part of manager and employee training. Please see the linked resources for more on how this works.

Another challenge is a lack of in-person connection. Asynchronous communication is mostly written by default, and while that’s efficient, it doesn’t allow as much space for expression. It can also lead to misunderstandings and hurt feelings. Address this by encouraging people to assume a positive intent, but also by making sure your team is creating social bonds through informal chat. And in the case of misunderstandings, turn to a synchronous chat to resolve the issue.

Finally, some roles — particularly those that are oriented around client and partner relationships, in-person events, and social media — do not always have the ability to work on a fully flexible or asynchronous schedule. These teams and individuals need to be given the power to set their own boundaries and workflows so they’re able to do their jobs effectively. Give special attention to these roles as they develop their remote best practices, and ask how they can be supported to feel included in an async-first team.

Meetings and Collaboration

Document Everything

White-boarding, brainstorming, and collaboration


Measuring Success

Adopting a Results-Oriented Mindset

Don't try to measure productivity or attendance. We really want to understand: is the work getting done, is it done well, is it on schedule, is it relevant to the business goals?

Project and Task Management

Good project management practices keep everything flowing, even in a remote, asynchronous environment. If you’ve got good communication and documentation strategies, it becomes much easier to implement strong project and task management. But there are still some considerations to take into account.

Project management is largely similar whether you’re in a colocated or remote environment. The main difference is the preference for asynchronous work. Standup meetings can be much more rare, because they are often more difficult to execute. Many of GitLab’s projects use an asynchronous, written check-in for standups, posted in a shared channel, instead of a synchronous meeting.

Without the reliance on synchronous check-ins, there’s increased need for good documentation. People will always have questions and need information. To make this function across time zones, it’s important to create a single source of truth for any initiative. Without strong documentation, projects and teams quickly become chaotic and inefficient.

Streamline tools and systems

From the outset, identify tools that will work for as much of the team as possible. While it may not be reasonable to expect all functions of the organization to use the same services, it is possible to have everyone using the same project management systems. This helps prevent teams from becoming siloed, encourages sharing of information, and supports transparency throughout your organization.

Having all teams use the same PM/task management tools also makes it easier to onboard new people, since they’ll quickly be influenced to start using the same systems as their teammates. It certainly supports collaboration. It can even lower security risks and information loss.

At GitLab, the entire organization uses GitLab as our project management tool. Our primary reason for this is to dogfood and improve our own product — but the implementation of a single system greatly simplifies our project processes and increases efficiency. Whether you use a git-based tool or another project management service such as JIRA, we can recommend some best practices and essential concepts.

Correctly use epics, issues, and tasks

Most project management tools are designed to help you define large deliverables — what we call epics — and break them down into smaller components. An epic is roughly the same as a project: it may take months to complete, have multiple interdependencies, and involve cross-functional collaboration.

An issue is the term for a single piece of work within an epic. The average issue might take a week or two to complete. It can be assigned to a single person to oversee the work, even if other people are contributing. We refer to this person as the Directly Responsible Individual, or DRI. This is the main level at which work happens in a project: issues are small enough that it’s easy to know when they’re “done,” but big enough that they don’t take too much administrative time to maintain.

Within an issue, there may be several sub-tasks that are quicker to complete and may not need to be broken out as separate pieces of work. Tasks can usually be done within a day or two, by a single person, and they don’t require in-depth instructions to execute.

Let’s look at an example of planning a multi-day conference. The conference planning would be organized as an epic, since it will take months to complete and will have multiple phases and contributing teams. It may even have some sub-epics, comprising things like speaker management, launch and marketing, and event production.

Within the conference epic, there will be separate issues for each chunk of work. For example, there should be a separate issue for each speaker’s talk; separate issues for swag production, social media promotion, and paid campaigns; and so on. GitLab also allows us to create kanban-style issue boards, including burndown charts that are automatically updated so that project managers can quickly review progress. Issues can be linked to each other if they’re related, or can be listed as blockers and interdependencies.

Each issue has a full description of the work to be completed along with relevant links, tasks, deadlines, labels, and attachments. Team members can tag each other in an issue, follow the issue to receive notifications, and assign issues to one another. The issue includes a comment section, which is where any relevant discussions should happen so they’re tracked and easy to revisit.

Open questions about using tools better:

GitLab and many other tools include version control, so that any edits and updates are tracked in case it’s necessary to look back at the history of an issue. All these features combine to create a single source of truth: the definitive, central spot where work happens, and where anyone needing to participate or interact with this issue can easily find the current status and information.

Adopt strong practices

Most modern project management tools are designed to allow distributed teams to work individually and asynchronously. However, they only work if your team has good practices and consistent behaviors. This begins with getting your entire organization onto a single system, but it’s important to proactively train individuals and managers and reinforce project management literacy. Here are a few behaviors we recommend teaching, especially in a remote environment:

Last but not least: as we’ve mentioned before, having a strong and consistently updated handbook is crucial. Project management processes and expectations should all be enshrined in the handbook as a reference for team members. That’s the best way to ensure consistency in projects, and it’s also an effective source for training materials as new team members onboard into your organization.


Personal Development and Leadership

Understanding Job Satisfaction and Performance

Communication

Time Off and Burnout

Team building

Career Development

Creating Effective Feedback Cycles

Career Development

For leaders of distributed teams, career development is all about empowering your people to take initiative in their own careers, while providing guardrails on how they can achieve their aspirations within your organization.

Career development is more than just promotions. How can you support people to grow and thrive in your organization, so you can maintain strong retention and performance? This can be much more challenging in a remote environment, and you’ll find that remote workers need to be more proactive about defining their career paths. In a remote setting, you don’t have the opportunity to stop by your boss’s desk and talk about your career.

Here are some good tactics for enabling remote career development:

Let’s break down each of these areas with more detail.

Bias for results and action

Earlier in this course, we discussed the need to measure results, not hours. This also connects to hiring for a remote role, where we discussed the benefits of hiring candidates who have a history of taking self-directed action. In career development, this thinking comes full circle. By putting emphasis on action and results, and then tracking those results, you can reward and support people to take self-directed actions that contribute to your organization.

Remote employees have to build their case for promotion throughout the year, so when the right opportunity arises, they can be prepared to show their accomplishments. Documenting progress and metrics that show results is an excellent first step. This is an excellent use case for OKRs: not only do they support organizational objectives, but they support employees in measuring their accomplishments.

This doesn’t mean that employees must bear all the responsibility for their own career development. Support employees to take action as follows.

Continuous learning & development

The Learning and Development (L&D) function within a remote organization cannot rely on face-to-face instruction and training. There is an increasing focus to design learning experiences that consider evolving learner needs and harness the power of technology to upskill and train employees through on-demand resources.

At GitLab, we use a variety of learning vehicles to train and upskill our people.

When training your employees in a remote environment, there are a few areas that need to be emphasized regarding L&D:

Inclusive career pathing

At GitLab, we empower team members to map out their career scenarios and aspirations based on a defined set of competencies and skill sets needed to advance their career. Career pathing has to be inclusive remotely in order to build engagement and retention.

It is important to stress to your remote team members and managers that they need to take time out of their schedule every quarter to discuss career goals. Make time to have a career development conversation. Make these discussions transparent and train managers to hold these types of conversations with their people regularly.

Risks - it’s easier to be non-inclusive in a remote environment, because certain groups of people are less likely to speak up. There is less time for in-person career discussions. Studies have shown that compared with employees who spend at least some time in the office, remote employees are 30% less likely to have a discussion with their supervisor about career goals.

Formalize practices to make career pathing an integral component of your remote organizations people strategy. Start with sponsoring and advocating for a culture of career development conversations with your people.

GitLab uses weekly Zoom calls and Slack channels to engage across audiences and time zones on a range of topics. If career development is on your employees’ minds, encourage them to be active participants in these forums and have their voices heard.

Transparency around job families, pay, and paths for promotion

Transparency is one of GitLab’s values. This includes transparency around job families, pay, and paths for promotion.

Remote Leadership and Responsibility

You have a responsibility to model the correct behaviors (like taking PTO). Need to be actively asking for info about things like burnout. Breaking work down is a lot more important because it has to be done to support the async workflows, but be aware that you may need to use an "expensive" sync solution sometimes.


  1. Murph, D., & Reeder, J. (2020, October). How to Manage a Remote Team. Coursera. https://www.coursera.org/learn/remote-team-management