202110220845 Remote team management
#structure #sourceThis 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
- All meetings must have an agenda.
- Prevents knowledge leaks.
- Creates searchable record of the discussion.
- Makes meetings more inclusive. Allows people to participate who can't be there. Allows people to articulate thoughts ahead of time not under pressure.
- Captures notes, takeaways, and outcomes.
- Take comprehensive notes directly in the agenda document.
- Record the meetings. Create meeting transcriptions as needed.
- Start and end meetings on time.
- Minimize disruptions. Allows people to manage their own time.
- Use speedy meetings for buffers.
- Allow multi-tasking during meetings.
- It's ok to look away.
- Empower each person to manage their own attention.
- Don't shame people who ask for information to be repeated.
- There's a difference between managing meeting time and relevance and just being inattentive to things that you should be participating in.
- Make meetings optional. Cancel recurring meetings.
- Avoid hybrid calls (all remote or all in person).
White-boarding, brainstorming, and collaboration
- Minimize tool stack.
- Less time and cost to get everyone working on same docs.
- Extract additional value form tools you already use.
- Embrace iteration by starting with an imperfect notes document.
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?
- Use a system of written goals laddering up to business objectives (OKRs).
- Have periodic reviews
- Make sure that everyone is encouraged to work with others to move in the right direction.
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:
- Is it possible to get us to actually use these tools like they're supposed to be used?
- Why is it always a struggle?
- Wouldn't everyone be more organized and productive if the tools were embraced?
- Is it because there's high churn and therefore low investment?
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:
- Refining issues is the process of ensuring all new issues are set up consistently, with the right amount of clarity, scope, and actionability.
- Vetting issues is the process of reviewing the issues that are assigned to a team or group, checking them against team objectives, and deciding what to move forward on.
- Using milestones helps by organizing issues into groups of deliverables that are all due at the end of the same one- or two-week period.
- Creating issue templates improves efficiency and efficacy, by providing a framework so new issues don’t have to start from a blank page.
- Automation helps keep issues cleaned up and updated, and can be highly customizable to suit your unique environment.
- Label hygiene is the process of creating a streamlined system for issue labels or tags, so the entire organization can understand and use labels to find information and organize issues.
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
- Don't evaluate people on synchronous communication
- Avoid expecting people to respond outside their work hours
- Understand cultural difference and how they affect performance and collaboration
- Encourage managers and leadership to use transparent communications
Time Off and Burnout
- An "always on" mentality is a cause of burnout
- Leaders must emulate good behavior with PTO and advocate for using it
- Create safe environments for bringing up issues with burnouts
- Use O3's to ask how they're doing
Team building
- Team cohesion can improve the team's performance and morale
- Encourage team members to build relationships with informal communication
- Create opportunities for personal connection
Career Development
- Encourage ongoing skills development
- Transparently share career pathways and information about promotion
- Help team members understand where their careers can take them within the organization
Creating Effective Feedback Cycles
- 202104291528 Leaders have to accept a slower feedback loop
- 202205021956 Feedback is for changing behavior
- 202402171455 Feedback can only affect future behavior
- Strong feedback cycles empower team members and provide structure
- Employee evaluations document formal feedback for use in promotion and raise considerations
- 360 reviews can be done asynchronously using a secure online tool
- Use feedback to develop action plans for ongoing career development
- Give feedback in real time when possible
- Positive feedback should be public if possible. Critical in private O3s
- Document feedback best practices in the handbook, including how to share feedback and how it can affect team members and their career trajectories
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:
- Have a bias for results and action - Promote employees who take self-directed actions that contribute to the organization.
- Continuous learning - Encourage employees to take time out of their day to learn new skills. It’s never been easier to access on-demand courses and sites for learning and development; make sure your team is supported to take advantage of these opportunities on “work time.”
- Transparency around job families, pay, and paths for promotion - Make it easy for team members to understand their opportunities. Because it’s harder to have regular, organic check-ins about advancement, remove any potential barriers by allowing team members to do their own research on where they can go
- Inclusive, engaged career pathing - Clearly define the steps to promotion and advancement, and back this up with formal, regular check-ins where team members are encouraged to discuss their ambitions.
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.
- The GitLab Handbook is our single source of truth for all training related material. We use the Handbook as the foundation for all training material. It is text based and is straight to the point. It’s an excellent tool to understand how we operate at GitLab.
- Live Learning sessions. We host monthly live learning sessions on a range of topics that meet the strategic needs of GitLab.
- Ask Me Anything sessions are a great way for team members to learn from one another and ask questions in an open/transparent setting.
- Custom learning content. We develop custom learning content from a wide variety of stakeholders across the organization that is bite sized and easily consumable.
- Continuous Learning platforms. At GitLab we leverage several continuous learning platforms to enable on-demand learning for our team members. These platforms include bite-sized and virtual instructor led courses that cover a range of hard and soft skills.
- Enable team members to create learning content. Your people are the experts in their fields. Set up mechanisms so that they can develop, design, and deliver training on their own.
When training your employees in a remote environment, there are a few areas that need to be emphasized regarding L&D:
- Personality assessments. Since you are no longer in a face-to-face setting, personality assessments help increase team dynamics by helping team members get to know each other faster.
- Self-Learning. Set up capabilities and an infrastructure to enable team members to access learning resources on-demand. There is a large learning ecosystem with partners that can help establish this capability.
- Guided Learning Paths. With easy access to the internet, remote employees may be overwhelmed with all of the resources available to them on the open web. In a remote environment, develop guided learning paths with curated content that is selected by the L&D team.
- Establish learning forums that cater to various generations and learning styles. Build learning content that is adaptable based on learner preferences that encompasses various formats to include lecture/activity/experiential based content.
- Hard and Soft-Skill Training. There is no doubt that your organization will rely on technology to enable remote working. L&D will be responsible for developing technical enablement training materials to increase adoption. In addition, soft skill resources will be needed to ensure team members develop and hone interpersonal skills.
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.
- Job Families. Our job families are open to the public. We are transparent about how we develop job families and the criteria to develop them includes various stakeholders to validate their roles and responsibilities.
- Compensation. GitLab uses a compensation calculator that includes a formula to assess paying local rates based on cost of market (also referred to as cost of labor) into evaluating pay for our team members. We are an open organization, and we want to be as transparent as possible about our compensation principles.
- Promotion. At GitLab, we do not have minimum time in role requirements for promotions. Team members bring their ambition to be promoted with their manager to discuss a professional development plan. We do not have an “up or out” policy at GitLab and many team members have a desire to continue being an individual contributor. We respect this ambition and use promotions as an individually guided pursuit with manager support.
- Share opportunities for growth and promotions. When interviewing for remote roles, find out what the candidates career aspirations are. Some remote candidates are not aware of growth potential in remote positions. Be clear about possible promotions from the start.
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.
- It's a crutch to see everything synchronously as a leader. We should strive to be better than that and develop skills that will help us thrive here. Check out the GitLab handbook.
- Don't allow silos to develop. Broadcast what you're working on and accomplishing.
- Encourage other leaders in your org to do things the right way.
- Communication is a challenge and is more so in a remote environment. Use multi-modal communication. Everything should be said 3 times in 3 different ways.
- Allow employee expenses for home or shared work spaces.
- Documentation culture is key.
- Treat all calls as 100% remote or co-located. No hybrid calls.
- Being data and metrics driven is important for companies at a certain size no matter what but it's extremely important for remote orgs.
-
Murph, D., & Reeder, J. (2020, October). How to Manage a Remote Team. Coursera. https://www.coursera.org/learn/remote-team-management ↩