Lessons for Working Remotely: Thoughts From a Pandemic
Some of the things that have helped our engineering teams to stay productive
I am sure that we have seen enough of articles on things to do and how to optimize yourself to work remotely during this pandemic. I don’t write this to tell you what to do, but rather, to run you through some of the things we have done to be productive during this remote work scenario.
Let me begin by saying we were hardly a remote team but a distributed team sitting out of offices in Mumbai and Pune. We had a lot of our workflows structured around working in the office and nothing close to a proper async remote setup. We follow agile methodologies in our SDLC and have multiple teams working and interacting in our offices.
With the onset of the rising cases in Mumbai and Pune in March, management took the decision to move to a remote work setup. Obviously this was a huge deal and there were a lot of things that we changed to ensure we were able to function without much upheaval. Now approximately 5 months post the switch to remote work, we want to share the details of some of the things that helped us:
I think communication within the team and between teams is one of the biggest things to take a hit during the switch. Finding the balance between async text communication, instant messages over Slack, and video calls was the biggest experiment. Instant messaging is great but we also have to keep our colleague's mental health and situation at home in mind. Async communication is great too but also has its cons like turn around time for the conversation, making sure people understand and are referring to the same context, etc. Video calls are the new mode of communication but also have their own downside of syncing timings and not burdening the other members too much. Let's take each scenario:
Online Video Calls
The obvious one being the switch from being able to do meetings in-person to doing them digitally. We were used to just huddling in a room and figuring things out. This was a pretty big change for us and it took some time to find the balance between what worked and ensuring it was not too taxing on people. We found that finding a balance between keeping meetings casual as well as professional was essential. We made sure we try having the video switched on most of the time to ensure that we manage to see our colleagues. We don’t mandate it but its always nice to see our friends.
A few things to keep in mind, try having good connectivity as these are pretty heavy calls. If you cannot do a video call, try doing just an audio call. Making sure you are muted when you are not speaking and allowing others to complete is also important. Shared collaborative applications like Google Docs and even things like IdeaBoardz are great tools to consider
Instant messages like Hangouts and Slack are also important parts of our workflow. That being said depending on an immediate reply or setting context to situations over them is difficult. It is important to not overload our colleagues with too many Slack messages or expect instant replies and resolution of conversations. However, we have found a great way to ensure that we are able to stay in context and focus on situations.
For most cross-team dependencies we try creating a common slack channel pertaining to the dependency. This ensures that we stay on context and our office huddle in a meeting room is slightly replicable. It's also essential that only things with priority and importance are kept on these instant messages. If you have a long detailed thing you want to bring up then communicating that over an email is much better than it getting lost in a chat.
Async communication over email was something that we were already practicing but now with the inability to meet in person and discuss, there came a certain impetus to overcommunicate and be able to describe situations better over emails. This has resulted in 2 situations:
Overcommunicate and be as detailed as possible in emails and documents pertaining to the email to ensure that respective stakeholders are able to get a better insight into the situation
When you feel the situation going out of hand or a big blocker in terms of understanding between the different parties, quickly move it into a video call to clear up misunderstandings as soon as possible.
It is essential that we keep emails to the context and not let it drag out into a discussion. A better solution would be to do a call, clear the situation, and share the minutes of the meeting over the email.
Be Considerate of your colleagues
I for one practice a zero inbox policy, paused notifications on slack in intervals, and try to regulate the number of video calls I have. Too much of any of these is just another anxiety attack waiting to happen. Thus it's important we don't burden anyone with too much communication and find the right middle ground.
With these, we were able to slowly and steadily scale up our communications in the organization across different levels.
Dev Box Testing
With the inability to interact in person, the need to ensure an agile process, and ensuring we do not overburden any teammate, we have switched to dev box testing. This has enabled us to not only identify bugs earlier in the SDLC life cycle but also speed up the time it takes us to develop a feature. This way all technical team members and the QA are testing the feature together before we push it onwards for a more holistic testing process.
Doing pair programming by means of video calls we were able to help provide a shared context and also ensure that people were not overburdened. This massively helped us not only scale our development efforts but also helped us work quicker and better.
I think it's very important to discuss the cultural changes I have seen happen in the organization over time. Culture isn’t a foosball table, informal dress codes, play areas, unwind zones, and other perks. I don’t want to delve too much into what culture is or how to build and modify your culture for remote setups. I want to talk about a few keys changes that happened within the culture in our teams and the organization as a whole during this situation
Defining a team charter and modifying it based on situations is a key change for us. With a constantly growing team and new people injecting new ideas, team charter is one of the recent things we have adopted.
A team charter is a set of principles that the team lives by. It should be produced by the team, owned by the team, and be visible to not only the team but also all those who work with them. It defines who they are and how they like to work. In short, it’s the team’s rules of the game.
In this situation, I think it was of paramount interest to establish directives as well as well-defined boundaries. This has been cardinal in ensuring good mental health within the team, clearly defining what is expected from the team, etc.
As we follow the agile methodology in our SDLC, we have regular retrospectives as a team to see what is working and hampering our sprints. With the switch to remote, we have also added team/domain based catchups to ensure we are able to understand the team morale as well as address specific pain points. This not only enables us to engage with teams and helps them find ways to improve their workflow but also gives us an opportunity to catch up with colleagues, share new things and be able to contribute to some extent to the water cooler talk.
Having a Casual and Professional Vibe
We have found that maintaining a casual vibe while also keeping things professional has allowed us to enjoy the little inside jokes and have fun as a team remotely. The use of custom emojis, gifs, etc in our team channels, as well as chats, is a nice little bright spot in a more digital world. The spam on a Friday about the weekend and the excitement for it (even with us all being remote and staying inside) can be seen on the channel :)
No Work Catchups
The sudden shift has had a massive effect on how we work and on interactions with our colleagues and teammates. We have done “No Work” catchups to ensure that we bond as a team and also have an opportunity to contribute to the missed water cooler talk. We have done things from having live performances, yoga sessions, random calls where we just sit and discuss how everyone is doing and even games like Skribbl.
These sessions have been a great way to keep the team morale up and the team engaged with each other.
Appreciate and Value our Colleagues
With the pandemic, multitudes of other natural and artificial things taking place around us, and even just being more conservative in our day to day lives it's important to appreciate our colleagues who have done a good job and to support them. I don't write this section with the intention that we don't do this enough but with everything going on, just hearing a few nice words from your colleagues can go a long way.
Monthly Town Halls
We have introduced monthly town halls over video calls where we have multiple perspectives shown. This ranges from management discussing the roadmap ahead or performance over the last month, senior leads discussing some of the recent developments in the company and how they have helped, etc.
Addressing the Change of Environment
I think it is important to highlight how we have put an emphasis on addressing mental and physical health as well as how this change in environment is a totally new thing that needed adapting too. We have made sure that anyone could take a day off if they wanted too, we ensured that leads checked in on their team to ensure that everyone was doing good and helped them settle into this ‘new normal’. We also organized meditation sessions, held other non-work-related fitness and musical performances, ensured teams and peers have non-work catchups to enable them to detach from work while also connecting with people they would interact with daily.
I want to stress the fact that this is not a guide to working remotely or any such thing. These are just a few things that have worked for us. That said, this process is still evolving and we can definitely improve in many places.