- the utter unfairness that some people are really effective (possibly because experienced) remotely and can just do it while others are not. The latter we gradually “released” into remote work, with a lot of feedback.
- Biggest skill to be learnt, of course: communication. so much patching up is possible by just noticing someone is in a bad mood, or switching to a live discussion. Doesn't work with remote.
- hard to support juniors: they need to learn both work skills and communication—and often even don't realize it.
- learning to take responsibility. You're Internet at home doesn't work today? Too bad—I'm not fixing it for you. You're remote, you figure it out.
- currently: the realization that most things are _not_ urgent. Going more and more async.
edit: late-night formatting
In an office, someone will fix it if the internet is down. That's why you have an office: to outsource infra to people so you can focus on your own job: writing, coding, whatever it is.
If you're remote, your internet being down is _your_ problem and you're expected to figure it out. You have more responsibility—and that was an unexpected part of working remotely for some people.
If the company REALLY wants that to be my responsibility, they can pay for me to run a 2nd ISP line, or any other myriad potential solutions.
Even in-office, most places don't run backup ISP connections, the internet goes it, it goes out.
- People miss socializing in the office. We've addressed it by actually drinking coffee and chatting on camera for about 15 minutes after the daily. Also considering regular team-based video game sessions, though the question here is whose time they're on (the company isn't too excited to fund weekly counter-strike time and team members aren't to happy to spend their free time to improve work relations).
- Daily meetings become way more valuable, as you can no longer just turn to people and go "Hey, Julia, what was that flaky integration test you were fixing yesterday?". It takes a lot of adjustment to figure out when it's worth interrupting people and when you should just write something down and ask on the daily.
- It's more difficult to effectively manage people. You notice everything on site - sighs, high fives, facial expressions, keyboard rattling, all the things that can help you recognize whether people are happy, stressed, bored, productive etc. Being remote, you need to develop processes to get that information "manually" and in a way that respects your team members (i.e. without constantly breathing down their necks).
send it and let the person respond when they are free. doing that in remote work all the time
My general observation is that the worse your processes are before your transition, the worse the conversion will go. "By the skin of your teeth" and informal processes are less efficient. Communication must be documented and asynchronous.
We use a typical scrum process. We do daily (short!) standups to keep in touch with each others' stuff.
We're all expected to be on voice chat during work hours. (We have multiple channels for side discussions, meetings, etc). This helps a lot with the feeling of isolation.
We get together in meat space twice a year.
The biggest challenge going forward is growth. We're now too big for one scrum. Even the voice chatter has lessened now, because radio discipline is more important te
I second this - 100% remote is very important because otherwise there are communication gaps.
Also, in our case, we built our processes around gaming. No scrum, but people make sure to communicate where they are and what's going on regularly.
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.
- office hours: this is not a meeting ... it’s just a team dialed into a hangout or other voice chat for an hour. Totally optional. Folks can talk while working, talk about work, talk about not work, whatever. Just share the virtual space for a bit. This can be really helpful for “serendipity”, building trust and depth in interpersonal communication, cross-training, and otherwise just de-tensioning if you are involved in a high-stakes activity.
- BOF/hack-a-thon/quarterly on-site... basically, everyone meets somewhere in meatspace for a week (Monday PM to Friday AM). Good things to do during this time: planning, team-building, demos, tech-talks, bring in an outsider or trainer, etc. Lots of larger OSS projects do this.
Keep it worksafe, but otherwise anything goes. Best thread we had was on at-home storage options, how to hack synology to do [X], people sharing code for said hacks, etc.
Daily chats and people bringing discussion topics on the regular really helped with team cohesiveness.
At a previous job we had good PMs who were skilled as “agile coaches”. I hate to call them that, but I think it’s probably the closest thing that would be generally understood. They would help organize and host some excellent sessions on how to make our retrospectives and planning sessions go better.
I’ve also worked with sales engineers from key vendors to come in and do a hands on about new features, if I can schedule it. It’s usually low or no cost training. Making better use of tools you pay for can be huge.
Ps. Would love to hear more about others experiences with outside trainers coming in for hands-on sessions.
I quit after a while.
We've also found that there is some informal coffee talk with people who get to our occasional video call meetings early. Other members of the team have just started doing random 1:1s with each other to replace "coffee collisions".
Our culture at FS involves something called "RAEB" (the redundant array of expensive brains) and we'll often just drop half-baked ideas into slack with the expectation that nobody _has_ to evaluate it, but it may occasionally spark future work. We will also go back from time-to-time and search thru Slack history to see if there was anything that popped up that we should dig into more deeply.
I think that creativity just takes on a different form in a remote team.
You can watch others play, if you're curious how it looks: https://en.boardgamearena.com/gameinprogress?game=1&all
Were there any major reasons why they were converted?
The problem is that, as soon as you have expensive real estate paid for, you get all sort of pressure about actually using it, so new hires are placed there 100% etc etc, until “grandfathered remotes” are effectively considered legacy.
At most places, I never felt connected to the company. Since I didn't have that social aspect of talking face-to-face every day.
The amount of discipline it takes to work remotely is the same as starting your own company. You need to be able to keep working, knowing that there isn't someone watching you all day. Most people can't handle this and end up getting very distracted at home. One company where I worked went through many employees because of this.
Communication is key and you need a manager that can communicate very well. In my experience, introverts were the worst remote managers. Passive aggressiveness and poor communication went hand-in-hand with introverted managers.
One manager was poor at communicating, wouldn't take the blame for issues with his own code, and I had to initiate all communication regarding projects and tasks because there would always be something intentionally or unintentionally missing.
I would complete a task/project and then after it was completed, the manager would reprimand me because something was missing. I always try to fix these situations, so in future tasks, I would have a voice call and go over everything that needed to be completed. This really didn't change anything.
I left the company over frustration and within 6 months, it went out of business.
Also in confirmation of one of the sibling comments these have been for us the main issues as well:
• Communication is a skill that most engineers don't possess and have difficulty learning.
• We stopped working with junior people. It's just too time-consuming grooming them remotely.
• Teaching team members that they are responsible for their own working environment. Shitty Internet and working from a loud coffee shop is just not acceptable. Still, they do it.
To onboard new team members and even as guidelines on a daily basis we've written and published an extensive company handbook (used to be a not so visually appealing internal wiki): https://mobilejazz.com/company-handbook-pdf/
We don't force socialize people. We don't force video on people. We don't force schedules, other than a daily and weekly meeting, although even that early forced start time leads to lost productivity from the engineering team members that prefer to start later. But we had the same problem before the change. The managers run the scrum meeting simply for their own benefit to the detriment of the team. So just like everywhere else. Other than that, it works great. Few meetings outside of this. A lot less time wasted lollygagging around the water cooler, playing games, going to lunch, and so many other useless activities that chew up a typical day on site.
I will never go back to an on-site company if I can help it.
That's good. I prefer to keep work and normal life separate. Of course you can develop great friendship through work, no need to force it.
> We don't force video on people
Once you are established that seems fine, but when bringing on new members I get a better feeling that I am dealing with another human being instead of some random person bugging me on slack.
> I will never go back to an on-site company if I can help it.
1) work from home is really hard. Home is home, work is work. You need either a fully isolated work room where you only work or go to some co-working space which is work. Dress like you’re going to work. No pajama work days. Best is when you have couple of folks in same city that make a remote satellite office. I’ve seen great success with many satellite offices.
2) ensure you have good internet connection, a good headset with noise cancellation mic and speakers, a good camera that works in low light. A good powerful machine. MacBook pros are prolly the most popular.
3) Out of sight, out of mind is a real thing. Reply to messages within a certain timeframe, say an hour. I used to have morning hours which was reviews and discussion. I replied immediately and was open to any interruptions. Evening hours I liked to get 3-4 hours of in the zone focus.
4) write things down. Google docs, slack, wikis are great tools. For every project I used to have a team doc with overall eagle eye plan + weekly notes. What happened last week? what metrics/impact we moved? What we’re gonna do this week, why we’re gonna do it and what metrics/impact we think will be made. Anyone could look at the doc and had a good idea where things were headed. Documenting progress is just as important as actually making the progress.
5) There’s usually some work timezone where everyone is expected to have at-least 4 hours in common. Make use of that. Set 1:1s, talk about feelings, ideas, overall health of business, kitchen sink conversations etc.
6) remote folks sometimes end up being over worked. Know when to shut off and switch to “non-work” mode. It’s important.
How should we/should we not set up our git repo? How should we organize our slack channels, meetings, team documentation, etc.
Meetings, however, need to change a bit...
1) They are now your only time for socialization. Let them wander a bit more, be tolerant of personal talking and catching up as everyone gets into them. Find the right balance of focus of your agenda and letting people interact with each other.
2) Do not trash people's focused time by spreading meetings out over the entire week. Being remote, you'll learn that you have focused times, and less effective times, and will learn how to let everyone have flexible schedules to both work at their ideal times, and have some shared time online for communications. Don't wreck this process by getting into the habit of thinking that a 5-day 8-hour workweek is all equally good for meetings. It is not. Talk to the team and find common blocks of time when people are comfortable working, but not at peak efficiency (Early Tuesday afternoons, for example.) Fill those times with meetings, and leave the rest of the times open. This lets the team truly capture the focus and flexibility that is possible when working from home, and gets the meetings done at a time when people are happy to be there.
long story short, I was so used to manage the team remotely, that it took me almost two months to realize the intern, as far as HR was concerned my intern, was remotely managed by someone who was remotely managed by me. despite the intern sitting right across my desk. Embarassing when I realized it, but it showed what a damn good team it was.
Here are a few stories I picked up in the past five years:
I was an executive at a tech company which had a HQ in California. I joined to lead our European expansion so from the outset it was clear that I was going to be defacto ‘remote’. Although, at the time it wasn’t discussed as such. What was very obvious was that at the start the responsibility was very much on me to get in front of the people I needed, be heard, aggressively communicate what I wanted/needed, wake up early, stay online late, set reminders to ping people before I would go to bed...
Then in order to acquire the best talent, the company decided to become remote-friendly (and later remote-first). And more or less immediately I felt the burden of responsibility lifting form our small European team because I (and the European team) was no longer alone in the remote work situation.
The moment the company was clear on its intention, the habits started to settle in and everyone seemed to get on the same page. It was quite impressive to watch. But this shift was absolutely intentional and top-down driven.
One interesting impact the shift to remote-friendly (which lead us to become remote-first) was the following:
An increasing number of people took advantage of this shift, the HQ office slowly started to empty and lost the upbeat and busy atmosphere it once had. The remote attitude also started to extend to people working at HQ and remote became synonymous for ‘Work from home’ and making this a recurring habit was tempting. Seeing as the default was starting to be remote, it mattered far less if the HQ people were physically in the office because all those habits necessary for remote work had settled in.
I would certainly avoid the blend of remote work and centralised office because right from the outset it creates two separate cultures. I would advocate for going all in if you are doing in. While we were transitioning we certainly had two cultures.
- not being explicit and intentional with the decision
- not knowing why you are doing this shift in the first place
- seeing it as a perk rather than a fundamentally new way of working
- not preparing for such a shift
- being very clear on what 'remote' means for your company (how are you defining it)
a) Already have ways of communicating that aren't particularly friendly to being remote
b) Presumably have a lot of people on a few locations so remote employees outside those areas can feel left out of the loop
The question I have is, why do you want to convert to remote? What is the drive and goal?