Learning how to "yield the floor" for more extroverted team members and how to find a quiet moment to pop in for more introverted members is something that remote workers _need_ to learn quickly.
Offering remote employees a stipend for a co-working space is something we do today at FullStory. Some of my team members choose to make use of that to get more socialization. Others will just occasionally work from coffee shops.
I think that managers are the ones who struggle most in the conversion - you need to trust that people are getting work done and that can be difficult.
In general, if you are hiring remote, it’s good to plan to do things like this, plus have stipends for office supplies / equipment (buy people a nice chair and/or standing desk, send them good headphones).
Replace the “free lunch and beer” budget with things like that. It helps with retention and a sense of belonging and team identity... eg, if you send a “branded gift box” with AirPods Pro to each team member unannounced, they’ll probably really appreciate that, plus you can toss in some swag, like a branded case or bag, t-shirts.
Just because folks are remote doesn’t mean you should treat them any less like an employee. Retention is key.
This is my biggest fear having recently been asked to make a few infrastructure changes to allow remote workers. My company is beginning to allow support staff to work and connect to key systems remotely, and while I can’t say how effective the individual workers will be, after a few years here (and soon about to depart) I have to place a vote of no confidence in my leadership to actually put any meaningful weight behind their words of “we are now supporting remote workers”.
the reality is they’re now allowing remote workers in a part of the company that sees the most attrition, has the lowest promotion numbers and historically has not received near the same treatment as other departments. I don’t have confidence they’ll be well supported judging from how other remote teams are “supported”, mine included.
Then I discovered the Mondragon Corporation, the largest co-operative in the world, with 13 billion in revenues per year. MC has launched and average of 3 startups every year in an 80+ year track record. Only two have ever failed.
So far the co-op shows both promise and pitfalls in ways I didn't anticipate. I think the promise overrides the pitfalls so far. I get to work with people whose little kids I want to see go to college.
You really have to believe in the owner-worker model and commit to it. And you can't have owner-workers who are only there because of the benefits: there's a burden in running a company. Management works for you, not the other way around. So you have to be really responsible. Everyone is counting on you. You don't abdicate any decisions.
I'm more senior at my company, so when I notice more junior people get on I like to ping them via IM to make sure they aren't having any problems with what they're working on.
A project I'm working on is solving this with regular check-ins, where everyone summarizes what they were+are+will be doing. I'm interested in how others approach this.
My team does daily video stand up (it is good to see the team face to face each day) but if too many timezones involved slack channel updates can work just fine.
Remote teams are ideally communicating with each other throughout each day.
Imagine forcing remote people to get presentable just for a 10 minute daily standup
If that person had been co-located, they'd have pretended to work and otherwise browsed facebook when no one is watching. You might have liked them, because such a nice guy to talk to and so on, and had given them a second chance and eventually decided that … outcomes are not there.
I did bad hires, remote and otherwise. I don't think there is a way to avoid that. Our insight from interviewing is just so limited. You give your best when screening, and then you gotta make a leap. And deal with crap when it happens, as it always will.
The only problem was my father died while I was visiting relatives in France in December and it really threw people on the team off what they were supposed to be doing heading into the holidays. I was focusing on how to store a dead body from across the ocean for about a week.
My takeaway: uncertainly can knock you for a loop in an expensive, subtle and quick way. Work to eliminate uncertainly for your team and if they're good, they will be happy and healthy.
Ditto. I'm still pondering how working with junior folks might work. In-office teams _may_ be able to absorb and level-up more junior people.
Would love to spitball ideas on this with anyone else interested in that topic.
It isn't that difficult to do remotely. But some people just don't like it in general.
That said we are trying to bring in more junior engineers via our internship program: https://about.gitlab.com/handbook/engineering/internships/
If our internship pilot is successful we hope that this will be a feasible way to bring in more junior engineers.
- Setting up your environment is scary. For a new junior hire, you must have someone responsible for helping the junior dev set up their machine. Someone patient and non-judgemental. Documentation must be unambiguous, really step-by-step, without assuming anything about what the dev should know already. Getting to the point when I could run a project on my computer without any issue is a big deal.
- Junior developers need a safe space to ask dumb questions. In the office, I would stand up and go ask a senior developer. From meetings and conversations, I could identify the ones that were more open to answering very basic questions in a non-judgemental way. These were the ones on your team and others who took the time to come present themselves to me, show interest in you and your background, and explicitly say that I could go to them and ask for help if needed. For some people, this is natural to do in-person. But I have the impression that those same people wouldn't do that as spontaneously in a remote environment. This should be encouraged. Tell senior developers from other teams, to go and make this intro and offer for help in individual channels, not just a formal message on the public channel. Go into a DM and make sure the junior dev is comfortable with messaging that developer with "dumb" questions any time.
- To the point above really work, your team must have senior developers that are patient, non-judgemental, and willing to help junior developers. Not just the ones in the junior dev's team, but a few others in other teams too. This is true for in-office too, but worth saying. In my first job, I could go to 4 or 5 senior frontend developers from all over the company to answer my noobie questions. That was ideal. I could rotate the ones that I would interrupt, I could try to identify the one that it was in a better position for me to interrupt, I could have different styles of explanations from different people, I could ask something that I had already asked, but forgot, only to a different developer so I wouldn't look stupid or annoying.
Some very knowledgeable developers are great discussing complex problems of software architecture, but the moment a junior dev asks why they are getting a weird error when running a project without realizing that they just forgot to do "npm install" they just think "I don't have time for this shit" and it shows.
There is such a thing as a junior dev asking too many questions too fast (without proper research on their own), but a junior dev should never feel afraid of asking. Make them comfortable to ask anything first, and only if they start incurring in this behavior of asking too much without trying on their own, you give this feedback so they can improve.
- Code Reviews are essential for junior developers. In this case, almost nothing changes by being remote. Just remember that code review of junior devs should include an education part. Explanations, code samples, links to resources, clarifications of terms. Things that would sound patronizing to senior developers are fundamental to junior devs. Err on the side of explaining too much. Some code reviews require more clarification than what's written on the review. So make sure a junior dev being reviewed is comfortable in DMing the person who reviewed for clarification and guidance.
- DMing itself might be an issue. I know remote teams encourage all discussions to be on open channels, so the knowledge is not siloed. But junior devs really need a private line for clarifications without exposing themselves too much. It is easier to ask dumb questions in a private message.
- Lastly, I do think regular junior devs (who are also young and inexperienced, not just technically junior like myself) need closer management. At each beginning of the day, it must be clear what are the tasks to be done; at each end of the day, it should be written what was done. It can be done in a way that is not micromanagement, but it is much easier for a junior to be lost, and that leads to being unproductive. Procrastination might come from confusion, not just time management.
Also, get suspicious of a junior dev going too quiet. A senior dev might disappear from communications for a whole three days and come back with a very well-done and researched PR. A junior dev doing that will probably come back in three days and say, "I am not sure if it is that what you wanted... but I did this." And it was a totally different thing. They just lost three days googling weird error messages, reading tutorials, copy/pasting stack overflow answers, only to learn they were doing something that was not what was asked. Check junior devs work every day. Of course, it requires management skills to don't do it in a condescending or micromanaging ways.
"Documentation must be unambiguous, really step-by-step, without assuming anything about what the dev should know already" this will just about never happen. Documentation always lags. You have to be able to connect some dots sometimes.
Some of them didn't like it and went back to Amazon or Google or some other startup.
My advice if you're starting a remote job for the first time- give it a chance even if goals and communication seem unclear at first. You have to develop an entirely new way of communicating and it is hard.
1: Synchronisation of effort for a team is absolutely crucial.
2: The top priority is for the teams to communicate amongst themselves fluently, and feel comfortable to communicate with practically anyone at the company at large.
3: If you don't live in a tech hub or a large city (which, to be honest, are mostly the same things), the life as a remote-only can get really lonely.
4: In a profession with a pretty big fraction of existentialists, learning to keep office hours and being able to turn off from work mode is essential for long-term stability.
5: You need a separate workspace for an office. I learned this the hard way. The ability to walk away from work after the day is important. And you really should have a separate computer for work, so you don't even accidentally look up the work stuff outside of office hours.
6: Everyone needs hobbies. If a person lives their life through their screen, it is very unlikely that they are suitable for long-term remote-only work. If you're a manager at an office, you usually want to know what makes your team members tick. If you're a non-junior at a remote-only company, it is absolutely essential that you learn what makes your team mates tick.
7: Teams need to meet up in person frequently. A day or two every 3-4 weeks is good. Several days at least twice a year is essential. Because there are no watercooler or office corridor moments, the company needs to provide an environment where something like this can take root spontaneously.
8: Meta-review for code review can be surprisingly helpful, even after the onboarding.
The truth is, not everyone is cut out for remote work. Because long-term mental health depends on being able to turn off and walk away, you are automatically selecting for wealthier individuals. I know this sounds really harsh, but it's true. A person who can afford the space for a dedicated office for their working hours is several times more likely to stay around and grow into a bigger role in the company. A person whose hobbies involve physical activity and getting out of their house is far more likely to be a good remote-only employee than someone who at the end of the day switches from emails and code to computer games and Netflix.
Loneliness and detachment are the biggest problems, at least in my experience.
3: You mean “professionally lonely” as not physically meeting enough other, say, devs? Why can't you get your tech interactions online and satisfy your need to meet people with non-tech people? That would remove the requirement for a tech hub.
8: That isn't specific to remote?
I very much agree that remote work isn't for everyone. But then, nothing is. Not even mango float, and that's a _fantastic_ dessert.
I don't agree with your reasoning, though. Many people are in horrible office-type jobs and their sanity would depend on them walking away. They don't, often for the same reason. Wealth helps because it gives freedom, but this isn't specific to remote.
Also, depending on what you define as remote work. In a not-so-rich country, remote work helps people in more remote and hence usually poorer regions get jobs. Yes, those aren't always great jobs—but they're in line with qualifications, and they do enable people to live better lives.
As engineers, makers, tinkerers and creators, we tend to find our social networks among like-minded folk. When I was remote, I was living in a smaller town, where not much happened. There were a number of IT employers, but nothing particularly interesting. So I didn't have much "professionally aligned" groups to hang out with.
Working from home also allowed to skip trivial outdoorsy stuff, and the weather being inhospitable for >6 months a year didn't help. At the office we meet like-minded people all the time. Those at the company who lived in large cities (3 in the entire country that qualify) could meet in person outside of company activities, and they had groups of other makers to socialise with. Where you have a tech scene, you tend to have lots of nicely aligned activities. Living in a more distant location, you're alone.
As for number 8, you're of course right. It's not specific to remote, but I've found that at an office environment talking about some tricky problem that has surfaced during code review happens automatically, and discussing wider aspects of the code review in general tends to be part of workflow/tooling.
Yes, I do review code review at the office but it's not essential. (Important, sure.) But when your communication channels are not in-person, going over code review as matter of course becomes critical. Not being able to walk over and chat about engineering practices is something you will only miss once you've seen both sides for long enough.
The selection for wealth? Here I'm talking about jobs that require deep concentration. Tech is notorious for our constant search for the flow state. Interruptions and bad ergonomics can be devastating. But more than that, in order to remain mentally stable at a remote-only job for a long time, you need to be able to respect office hours and have a clear way to cut yourself off of the work environment.
If your work machine is the same as your personal use machine, those lines can get awfully hazy. Not good for mental wellbeing in the long run.
I find this to be true even with my phone! I have decided to get a cheap used Motorola smartphone to put slack + email + PagerDuty on and leave it in the desk unless I am oncall.