The world is getting digital, and programmers and technologists are at the center of it. A lot of institutions are moving online, and companies who insisted on their employees with disabilities to be required to present themselves into the office are now talking about going remote-first and the possibility of continuing the same in the Post-Covid world. At the same time, companies are suffering because of the lack of a proper handbook for conducting their practices remotely, and a communication and delegation gap within their organizations. Not a lot of good things are happening, I know. And it’s okay, we’re surviving through a pandemic. But I’m not here to talk about that. I just wanted to give a brief overview of how companies that are remote-first generally behave.
I, actually, am here to talk about how there have already been hundreds, even thousands of companies globally that had already been working remotely with a distributed team for years now. And, I am fortunate to have been working at one of them. So this article is going to be about how things work in a remote-first company and what it means for the team members. And I’m saying this in the context of a world without this pandemic and lockdown, one, where you are free to travel where you want. And one where you can look at your same old laptop screen from a coffee shop, but with a good coffee and ambience, and a bit of life. (I’m sorry, I just miss Karma Coffee a bit too much at the moment.)
A brief introduction about me and the company, first. I’m almost a Computer Science Graduate, (I say almost, because my final semester results and internship defenses had been postponed indefinitely because of the pandemic, which seems to be ending soon now), currently working remotely full-time as a developer at Magnet.
Magnet is a digital solutions provider for companies in Spain. It has a global and distributed team, with offices in Spain and Poland, and team members working remotely from Mexico and Nepal (yes, yours truly!).
How did I get into Magnet? And how did I get onboarded remotely from halfway across the world? I guess, our favorite remote-working tools, great communication, and welcoming environment at Magnet takes the credit on that one! I found Magnet on Twitter, and reached out to them asking if they would be interested in working with me remotely, then we had a call, and we came to an agreement! After that, I picked a date for starting, got an invitation for working across all of the company's collaboration tools and services, and started on the said date!
Now, I know you wouldn’t want to hear about the gory details of what language and frameworks I used, what bugs I encountered, how I solved them (after hours of debugging and knowing it was a parentheses mismatch, which is most probably always the case with Clojure, or a docker-compose restart). Oops, did I already say that? Well, anyway, the first week was mostly about getting welcomed, learning the language, reading documentation, setting up the environment, and the likes! And what followed was a lot of pair programming sessions to get familiar and comfortable enough with the tech stack to the point where I could start working independently!
It may not even sound all that realistic when I sum it all that way, but you’ll know when I tell you the ways of Magnet that made it seem not too hard for me, and frankly, I feel a physical office would be way more difficult, and remote work is way more efficient.
So tech companies across the world, if you’re looking for a full shift to remote work, then I believe the following guidelines that we follow at Magnet could be handy for you:
Tools: Use the right tools: Zulip and Zoom are basically what are gluing us together. Zulip is for asynchronous communication, and Zoom for when we need to have it synchronously. We sometimes use Google Meet and Jitsi Meet as well.
And for communication with the client, we are in the client’s Discord server, where everyone working on the project is present, so we all have the communication first-hand.
And well, not to mention Docker and AWS for our development, test and production environments.Communication: Dedicate channels according to your purpose. Have one just for the notifications, say “Good morning” when you log in, and “Goodbye” when you sign off for the day. Let this one take care of anything else that you need to broadcast to the team.
And proceed to create individual channels for the project, and then sub-channels for the areas within those projects.
Remember, organizing is the key. The more your channels are organized, the more your team members feel welcome to communicate. Because how else would they put their message forward if everything is all messed up, and anything they want to say might feel like they’re going off-topic even if it’s necessary? And, keep creating channels on the go. Don’t hesitate on that one.
And of course, don’t forget to include one to just share memes and random chit chat!Establish Culture: At Magnet, we follow the rules mentioned in “Communication” regardless of whether the team is working from the office, or remotely. And personally, I think this is the key to being remote first. You do the same things that your remote team members are doing, it establishes a culture, and is easy for the new member to get used to the company’s ways of doing things.
Bi-weekly Learning Sessions and Book Clubs: Get together with the team. The whole team, every Friday. It keeps the team connected while not making the developers feel like they’re getting sucked up in too much meeting time. However, don’t just have them for the sake of doing it. Have an agenda.
For example, at Magnet, we have book-clubs and learning sessions alternately every Friday. Book clubs are about discussions from a chapter and brainstorming what could be done on the existing processes after the new learnings from the book; and learning sessions are when someone from the team teaches something new to the rest.
Save a few minutes in the end to make sure if someone needs to rant about a bug that just wouldn’t go away, or hear someone out if they want to say how badly they need the weekend. Share your plans if you have any. (Of course, it’s not mandatory).Automate wherever possible: You probably saw it coming, didn’t you? I mean, how else would a blog about a tech company working (remote or not) be complete without adding a word or two without automation? Well, at Magnet, we have a bootstrapped project that we use everywhere, set the configurations, run a script, and BAM, there it is, a perfectly good new project waiting for us, just like every other we’d have already worked on! Besides that, our Bitbucket pipelines are prepared directly to deploy into the test environment once the builds are successful, and we use Git hooks with linting and eastwood so we are only able to commit once the builds pass locally, so as not to fail the pipelines. And yes, we push directly to the trunk.
Try following this, and it might as well take care of the numerous PRs for you. Also, while you’re at it, have a handbook that the team can refer to, so that you spend less time repeating the same procedure over and over again.Value ownership over tracking: Get rid of “sprints”. They only take time, suck up the life from your developers, and give both you and your team an unnecessary headache with an ever-dangling deadline. Talk to your clients instead. Know what they actually want. Involve your team in the process. Have them take the ownership of it. Trust them to do the work, and they’ll deliver. I know that from having witnessed it firsthand, and I know it works. And not to mention how confident I have grown in taking ownership of tasks, and making my own judgement on how to make the code more efficient and take users and scalability in mind from this same practice.
Flexibility: If you’re opening your minds about getting all-remote, it’s also time to think about getting more flexible with the hours. Don’t expect everyone to show up 9-5, although still keep that as ideal. Since the team is already working remotely, there isn’t really going to be a toll on productivity if they have to run to make a doctor’s appointment or that friend’s wedding or even help their family out with something during their work hours and decide to work it out during the evening or the weekends. Have faith.
And, that’s it! That’s the secret sauce. Follow all this, and you would already be thriving with all your team members having a sound mental health, increased productivity, increased communication, set work hours and boundaries, and a great work-life balance! Not too hard, is it? Now, I know you’ll sometimes have FOMO from not being able to brag about your all-night binge watching and still being able to come to the office at 9 AM, but then again, you don’t have to ditch the office! Go slow. Make remote working a valid alternative, don’t make your team members come to the office no matter what, but don’t completely ban them from coming in, either. See what works best for you. And well, for what it’s worth, you could actually use that opportunity to hire someone that’s not privileged enough to live in the same place as you do. I’m sure there are a lot of talented people out there, waiting for such an opportunity. Be that gem of a company who starts this culture!
CEOs and executives, you can stop reading here if you want. Aspiring remote workers, keep reading, what’s coming next might be useful for you.
Whatever I mentioned before has been about what we do at Magnet to make the remote work work, and what you should be doing if you’re looking to set foot with your organization on the same. However, there are a few things that I want to mention that I have experienced personally, and what I think anyone working remotely for the first time might feel.
As for starters, it’s easy to feel like an outsider while also feeling extremely like you’re already blended into the team. I mean, it’s hard to explain, and you can feel both at a time. And I don’t quite know if I’m over that yet, but I sure am down a lot from feeling that way. And I guess, it’s because of never having met the team in person, but at the same time, you communicate on an everyday basis, and see them and talk to them almost everyday. So, take your time I’d say.
And then, there’s this good old getting trapped in tutorial hell and feeling guilty about having spent the time to learn something. It also applies for when you spend a lot of time on the same problem, and start feeling like you’re not doing enough, not pushing the code frequently enough to have been delivering enough. And as if you can in no way show that you’re still there, working, trying to make your way through this bug that just doesn’t go away.
It’s easy to feel nervous, and that’s okay. I don’t really have a concrete solution for this, but setting boundaries over how much time you allocate on a certain task helps to a great extent.
I use this Pomodoro timer extension on Chrome, that allows you to set your ideal work time and break time (and also custom block the sites you aren’t supposed to be using), and to me, it seems to have improved things a lot. But remember to experiment with the pomodoro work-break timings, because it takes a lot of hit-and-trials to figure out what’s best for your attention span. (For me, it’s currently at 50-8).
It’s natural to feel like you’re asking too many questions. I know when you’re new to the team, there would be a lot of questions, and a lot of things you’d be asking repeatedly. Especially when you’re a new developer, there are going to be a lot of processes, from setting up your dev environment to learning the syntax to maintaining uniformity everywhere, there are a lot of steps involved, and together come the same proportion of questions. But it’s okay to take help from the team and just ask it.
Although it’s easier said than done, I wish I’d take my own advice on this. It’s pretty easy to get sucked up on this particular thing sometimes, and today itself, I spent three hours reading documentation, comparing line by line of code in multiple projects, checking every stackoverflow and reddit threads on an issue, only to find out I had missed initializing a value at one point, which got resolved in less than two minutes by pairing with someone else. So you know, bottom line, do all this, but also, don’t hesitate to ask for help!
Create your own handbook. This particular thing is really helpful if you’re a shy kind and really refrain from doing what I said in the previous point. In software development, there will be a lot of tasks and processes that you will keep revisiting in the months to come, and frankly, you will keep forgetting. Because there are way too many of these things to remember. So each time you come across an important command, or figure out a pattern, just open that text editor and note it down. Your future self is going to thank you.
Now this one’s pretty common. Segregate your workspace. I know this is on every article about remote working, but it’s there because it’s a particularly important one. You don’t know what a wonder it does in helping you enjoy your post-work hours. (I say this as I suck at turning my work mode off, and stay here till it’s way past midnight. But the truth is, I don’t have much of a life anyway.) But seriously though, do it.
If possible, don’t work in your bedroom. It helps you to enjoy the off-hours much better and you are well rested. Don’t snack mindlessly when it isn’t a lunch break either. Trust me, you’d want to follow my advice on that one if you don’t want to be feeling like Penny on one of The Big Bang Theory episodes where she says “Oh my god, I need help”. Do you want to be that Penny? Do you? Now, stop snacking.
And last but not the least, Please Shower! I know you aren’t going anywhere, but also, look at that sentence from a different perspective. You haven’t been out in days! How do you think you are going to stay fresh for work? So please shower before work every morning so you are in the right headspace to kickoff your workday. You can also set it as a routine so you know that when you’re getting ready for shower, you’re leaving your free morning behind, and are entering the work zone. If you’re anything like me, this buffer period actually does wonders!
Now I know that’s a lot to digest and might as well feel a bit overwhelming as you go through all this, but remote working has way more perks than these mere ground rules, you know. No worrying about traffic, muddy roads, and the best part? You get to wish for rain and enjoy it from your window while playing your favorite playlist out loud, sipping your own masala tea, and working in peace. Sounds like the dream, doesn’t it?
And, I’m not sure if you have this, but I get kind of anxious when I have to get out of my home early in the morning, and seriously, I was dreading how I would manage to commute to work every single morning and reach there on time and work for a full day and get back home. Looks like the universe makes up for it all. ;) I seriously have to make up my mind about going out for days, wake up an hour early and stare into the wall, scroll mindlessly on my phone, or watch three episodes of F.R.I.E.N.D.S. back to back all the while worrying about getting late if I am to step my foot out. And trust me, I’m not kidding.
Besides, since I’m a late riser and also work on the European timezone, I have the added benefit of getting to start work past noon. That means, even if I somehow manage to stay up all night binging on something I wasn’t supposed to be doing, I can still sleep for six hours and take a shower and get all freshened up for work!
(No, silly. Of course, I wouldn’t do that! I’m not that deranged, okay? Oh wait, maybe I am. Nah, I’m better than that. sobs in the corner)
Coming to the end, I guess it all comes down to what kind of a person you are, and what activities you would want your day to be filled with to decide whether or not remote work is a good fit for you. I’m not a big fan of having to step out of my home every morning at 8 AM, you might like it. I’m okay with not having a real conversation face to face with people for days, even months, whereas you might crave social interaction. I feel at peace from remote work and it helps a lot with my anxiety, whereas it might be the other way around for you; by being by yourself for a long time. I know, it’s not all that black and white and easy to figure. But then again, even with all the reasons that I’m saying that I love remote work, it again differs with the kind of company you are working with, and the kind of people that you have in your team. And of course, how your values and goals align with those, and how well you can feel yourself at home even with a remote company. Because well, not everyone might be as lucky as me. And not every company might have a good remote-first protocol as mine.
But then again, we are all learning. And I believe that one good thing that’s going to come out of all this that’s happening in the world is that, people aren’t going to get all too crazy over coming to the offices, and that remote work will be considered as one of the valid options, and hopefully, we’ll see a lot of new companies on the rise leaning towards it.
Originally posted on Medium under Women Leaders in Technology's Publications on 11th July, 2020.
Top comments (0)