Ask HN: As managers, how do you make sure your distributed team is aligned?
We use Slack for internal comms, but it's used mostly for chit-chat conversations and real-time issues. Is there a product for slow-thinking updates where I can share teams news and align my +40 people team? How can you be sure people don't actually miss things in the noise of Slack/Email?
74 comments
[ 0.29 ms ] story [ 119 ms ] threadA better approach would be to have distributed teams where the teams are cohesive unit with co-located members. Each team has local autonomy and a central mandate. The teams could be located anywhere but the team members would be in the same office.
Aliging distributed teams is easier as they can agree on coarse details , have few or limited dependencies and they execute on their own. Otherwise you are just shepherding cats.
> Such teams will be always outperformed by co-located teams.
Could you share data to back this assertion up?
For me, I've been fully remote for many years and was primarily remote for a few years prior to that.
Companies I've been at where there is no flexibility whatsoever typically suffer from poor management or are the type of work place where there are pieces of hardware or other resources one can not really work on remotely.
One of the primary benefits for me when initially working remotely was the time saving that resulted not having to spend 1.5-2.5 hours a day in the car.
Provide examples/data for this or I cant take this comment seriously.
As someone who has worked on successful fully remote teams for 6.5 years I couldnt disagree more. My current team is mostly remote and moves Billions of dollars, delivers features at a rapid pace. It comes down to select the right team members, having centralized places of communication and empowering each member with the autonomy and ability to contribute no matter where they sit.
The "butt in seats mentality" is very outdated imo. How many hours are wasted commuting?
That said, if you have someone in leadership (especially high up the chain like a VPE) who is all about "butts in seats," your distributed team is designed to fail. And I'd argue that that leader is probably doing their part to ensure it fails to prove themselves right about co-located being better.
Split communication in small teams/groups and design just one person per group to deliver periodic status. Meeting with the whole team are absolutely inefficient and costly for the company.
Create a policy where any change must be documented and informed to all stakeholders.
Tools vary depending on your business, but sites like Trello can be really usefull.
For longer term alignment we always post "decisions" that are made during these meetings in a slack channel so that others can keep up to date if they weren't in the meeting. We can also go back in time to see the context of why a decision was made.
Office space - millennial edition
We have 12 teams and 150 people and prob 50+ channels.
I ran a team of about 25 in the past and followed the following agile principles to help with alignment: - retrospectives - "sprints" (preference on the 3-4 week range) - Sprint Review
Alignment, while tricky, isn't all that hard so long as processes are evolving from retrospectives and you have a single source of truth for long form documentation.
From a people perspective, clearly defining goals and constantly asking clarity questions to gauge if there is alignment is the only real way. Also if you notice people are not aligned but they think they are, declare that you're not sure they're aligned. They'll hash it out themselves.
It also helps for people to declare when they're unavailable in something like a slack channel. Finding out someone is not there when you expect the to be is very jarring/frustrating.
Couple ways you could do it: 1. a webcam recording of yourself, using quicktime (only on mac) or similar webcam recording tool 2. a screen recording where you talk through a slide deck of news, roadmap, etc. Again, using quicktime or chrome extensions such as the one I built: https://outklip.com. Outklip's advantage is you can record webcam along with screen, annotate during recording, do post-editing and upload to YouTube with a click.
I interiewed Sid Sijbrandij, the GitLab CEO (GitLab has 500+ members and is all remote) on running a distributed company. He said this about alignment: "I think it’s really important to write things down. People are very efficient at reading things. So, if you wrote it down you can refer to it, so you don’t have to say everything again, you can just drop a link. So, we write down a lot, in our handbook, on our OKRs page, you’ll find all our goals and strategy, etc. And at some point you keep repeating that, keep dropping those links and you keep answering questions. So, repetition is still needed, repetition is easier if you have one writeup and most people have already found it even during onboarding.". Interview video and notes here: https://outklip.com/blog/gitlab-building-a-distributed-compa...
Another interview with Sid about how GitLab uses video for remote work: https://outklip.com/blog/using-video-for-remote-work/.
[1] https://gist.github.com/cowpig/8d8194ac55e3789d9a3c4136d1e1a...
Have your most important values written down. Technical and non-technical. Ask new joiners read them and refer to them when discussing short and long term plans.
Don't believe that a fully flat hierarchy is the solution for all problems. A distributed team makes communication harder, so you might need more process than usual -- for 40 people you almost certainly need other managers to help you.
Have a strategy for the corporation that everyone understands. Team leads will then understand what their team has to contribute, and individuals will understand how to contribute to the team. If the company strategy is not well-known, your remote team is doomed.
Focus on alignment to values and vision, not to what you tell people directly. You're doing your job well if people and teams become autonomous.
Find and remove anything that blocks lateral communication (i.e. that goes outside of the hierarchy chain).
Be skilled in people management. Recognize isolation, burnout, depression, tension early enough and be able to solve them. If you are not skilled, learn from professionals, not from blog posts.
If needed, break rules. An important rule in a distributed team is that people don't meet often. If necessary, break this rule.
There's a lot of good advice in this thread, but one more thing that I need to add:
Your tickets need to be well-written, and actively groomed. This means things like:
- Clear ticket title
- Clear steps to reproduce
- Process followed (Varies based on product, in our case this means attaching logs and documenting filenames.)
- When someone clarifies things, they must update the actual ticket title / description instead of clarifying in an email / comment
- Management must not expect engineers to handhold ticket writers through things like this, and must expect that testers and support own clearly communicating what the issue is
- Do not combine multiple bugs into the same ticket
- Do not "fail verification" when finding a new bug
- Relate similar tickets, don't identify new bugs / issues in a comment
Some examples of "bad" tickets:
- Giving a title that's basically "It's not working." Every product has an analogy of "It's not working." In our case, novices who don't take the time to explain a problem will just create a lot of tickets titled "It's not syncing."
- I had a ticket today where the steps to reproduce said, "Take a screenshot." There's MANY ways to take a screenshot. The steps to reproduce must say which tool / button combination were used.
- Constantly needing to ask for things that are expected in the process. All products have different needs. In our case, all tickets need logs and a sample filename to look for in the log. When I need to constantly ask testers for this information, it's a problem that management must address quickly
- "Oh you fixed it but now it does this." What this creates is a situation where many bugs are part of the same ticket, and someone needs to spend hours reading through all comments to understand what the bug is. If the bug is fixed and a new bug is found, verify the first bug, file a new ticket, and relate them.
Edit: Actively grooming means:
- The bugs assigned to someone must be realistic. Don't leave 100 bugs assigned to someone for a release when there's no chance that they can do them all.
- Don't let your ticket submitters triage their tickets. QE shouldn't assign a ticket to anyone. That just results in the 100 bugs assigned to someone situation.
- Dumb feature requests should be closed immediately. Someone using your ticketing system to make dumb feature requests (and assign them to people) should be stopped immediately. (An example is a tester requesting lots of automation or helper tools from developers via the ticketing system.)
- Out-of-scope bugs should not be assigned to a release
- Major projects are not bugs, don't leave "bugs" that require major refactoring assigned to someone when you aren't going to dedicate the time to do it
- Establish a feedback loop so that QE can better steer tickets on submitting them. (IE, if there is a clear server error in a log, it's not a client bug.) QE should be smart enough to do enough diagnostics to direct the bug before it hits triage.
- Don't constantly assign tickets to the wrong team. If someone keeps saying, "this kind of ticket goes to this team," listen, otherwise they will go to your upper management, CTO, architect, ect or and make you look like a fool for not knowing the difference.
Why? In a distributed team, meetings can become a severe time sink. A lot of people hold meetings to feel busy and important, and even less people put in effort to keep the conversation focused so that the meeting ends on time.
Some basic things are:
- Determine an agenda in advance. The agenda must be part of the meeting invite. An agenda is more than "Talk about XXX." You should have a list of 3-6 topics that will be discussed in the meeting.
- Make sure that everyone on the invite list needs to be there. Explain why you're inviting people in the meeting invite.
- During the meeting, make sure that, as time progresses, the topics on the agenda are discussed. If one topic is discussed too long, there's different techniques for moving to another topic. (Binning it, declaring it a rathole, ect.)
- Decline poorly planned meetings.
And, I shouldn't need to say this, but meetings begin on time and end on time. Don't make everyone wait 45 minutes to start what's supposed to be a 30 minute meeting, but then it really drags out to 90 minutes.
Furthermore, have a 0-tolerance policy for latecomers and people who always need 15 minutes to figure out the teleconference software. Hold your interviews in the teleconference software you use with your team as a way to filter out the idiots.
We just Skype for Business and Zoom at work. Both are just one click. Webex is also good. It's little confusing though (too many options). My partners use it so I have to also use it.
Maybe, you need to evaluate your teleconf s\w.
There are idiots who constantly take 15 minutes to figure out those teleconference software. Each and every time. I can understand taking 3-5 minutes extra the first time using something like that, and I can understand occasional technical difficulties.
What's not acceptable is after 2 calls still having technical difficulties.
For example, A year ago I started working with a driver developer who would constantly drop out of the teleconference after 7 minutes, without a polite "technical difficulties" IM or email. Turns out he was always calling in from within some kind of VM and always needed to reboot in the middle of the meeting. We had to get the manager to tell him to stop it.
Another example is that, a few days ago, I interviewed someone through WebEx. She took 10 minutes to figure out how to get her microphone to work. After 5 minutes I made up my mind that, unless she was spectacular, I wasn't going to hire her. (She interviewed very poorly.) What's extremely frustrating is that she didn't have the decency to just have WebEx call her phone, and instead kept me waiting for 10 minutes. That's just plain rude.
For example, if developers using Linux are asked to teleconference using tools built solely with Windows in mind, sometimes it will work with a VM, but often it randomly doesn't.
If I remember right, Intel used Skype for Business which as a teleconferencing tool was just rubbish. (Maybe it still is?)
Don’t blame the people when all you give them are shite tools.
Our IT team has sent out a bunch of surveys trying to triage the cause of the intermittent issues, but haven't been able to result the problems yet. It drives us nuts though. And that's with the resources of a Fortune 100 trying to deal with it.
Glad it's working well for you, though. That gives me hope they can't get it working more smoothly for us eventually.
Switching to Teams has made life a whole lot better.
Skype within the app is good, but if you use their dial-in numbers, it takes a minimum of 30 seconds to get into a conference.
So, yeah - keep weeding out those idiots?
Professionally, I might recommend staying with Linux as your daily driver, but also branching out just to say you know the key differences between the OSes and how to be productive within them. This could help to prevent a situation where your dependence on Linux becomes a liability or roadblock in your career ("I prefer Linux" vs having to say "I can only use Linux").
From a development standpoint, Windows has been doing some cool stuff too - Windows Server Core for example. All my servers are of course running Linux, but my work desktop is running Windows, which I happen to prefer for productivity. Many of my SWE colleagues develop on Mac laptops, and leading UI design tools like Sketch only work on MacOS, so it looks like we're not getting any closer to a single-OS landscape in our industry.
The Effective Executive
Making of a Manager
ReWork
Start with your own mindset around this topic first, then roll out a system and/or tool to make it happen.
Looking for a tool to do this is wishful thinking
Email. Email is perfect for this. If you use GSuite, groups with the email gateway is ideal for this. You can have threaded discussions with a long history.
Stripe was(maybe still is?) really good at this. They made a policy very early on that every email had to CC a mailing list (unless it was truly a personal one on one communication). The lists has a structure were some were designated as archival only. Even if no one read the list, at least the archive was there for the new employees. Or for an employee who was on vacation to read and catch up when they came back.
> How can you be sure people don't actually miss things in the noise of Slack/Email?
For Slack, make sure it's truly just for real time discussion. If something looks like it's going to be a long discussion, move it to email.
For email, if you're using groups/lists for everything, then there shouldn't be a lot of noise. You should be able to just go to the groups interface or filter on the group the message was sent to.
Then author the email in the google doc, paste it into gmail and send - along with a link at the bottom to previous notes.
Is there an unseen advantage to not including the actual text in the email?
If anyone here feels passionately about this area and is a remote manager, I’d love to talk to you 1:1. My email is in my profile.
I’m part of a team launching a manager training program this fall, and our emphasis is on managers that have to deal with distributed teams. We’re looking for guest speakers across a wide range of topics, including alignment, and I’m pre-screening potential guest speakers right now.
I’d love to connect and learn more about your practical experiences!