Skip to main content

On working remote

The last company I worked for, did have an office space, but the code was all on Github, infra on AWS, we tracked issues over Asana and more or less each person had at least one project they could call "their own" (I had a bunch of them ;-)). This worked pretty well. And it gave me a feeling that working remote would not be very different from this.

So when we started working on our own startup, we started with working from our homes. It looked great at first. I could now spend more time with Mom and could work at leisure. However, it is not as good as it looks like. At times it just feels you are busy without business, that you had been working, yet didn't achieve much. If you are evaluating working from home and are not sure of how to start, or you already do (then please review and add your views in comments) and feel like you were better off in the office, do read on. Remote work is great. But a physical office is better. So if you can, find yourself a co-working space and work out of it. If you want to take the plunge - read on.

A successful project is one which works and which gets delivered in time. And when you are working remote, it becomes all the more important to have a proper plan about what happens when to make sure things get delivered in stipulated time. There would be surprises, yes and there would be course-corrections too, and you do need to account for them in your plan, but overall you have to make sure that things follow the plan.
So - stage one is having a checklist - the overall list of tasks that your project constitutes of. For agile purists, these are supposed to be epics and user stories. For software projects, this largely means the list of features per release. You should go into finer details of the features - QA, deployment, load testing, etc. If you are working in a team - use Asana for this. I mostly work alone, so I use Trello (it's equally good and I like dragging and dropping cards). Make sure that features and sub-features are specified as granular as they can, a rough time estimate should be provided and there should be an assignee to it.

In a remote team, the importance of communication cannot be stressed enough. You are not in the same room as your team. You cannot simply walk to the next developer and ask him to help you when you are stuck. Also, when you spend a lot of time with your co-workers in a physical office, you ultimately bond really well and kind of start understanding their strengths and weaknesses. This is a bit missing in remote teams.
So - you cannot simply work in silos. You absolutely need to have a way to communicate what you are working on, how things are shaping up and if you have any comments or reservations. There has to be a virtual standup! I use Slack in general for all-things-chat. And all of my team meets up on Slack every morning (1000) before starting work. We have also used WhatsApp for this and it works great. But Slack offers integrations with our monitoring systems which is lovely.

Record Keeping
Make a record of everything. I use Google docs. You can use Atlassian Confluence (if you can afford to).

  • If it's an API project - define the endpoints, request and response structures before you start coding. Keep everyone in the team on same page. 
  • Every evening, before wrapping up, I write a couple of lines about what I did the whole day. And every once in a while I go through the notes as well. It tells me where I had been spending most of my time and what are the areas I need to improve in. You can improve only what you can measure.
  • All important discussions should be labelled and archived. Use Google docs. Or use a fancy tool. They should be archived and linked to corresponding Asana/Trello cards, so that you have a sense of what led to a decision
Talk. Talk. Talk
Make sure you talk to your team. Like - pick up the phone and call. Or Skype. It's great for team building. 

Follow schedule
Make time for your family. Make time for regular workout. While working remote, you generally tend to always be zoned and feel guilty of not being around or not doing enough. To overcome the guilt - make a record of your progress. Use Trello/Asana to list tasks and mark them done. Once you have overcomed the guilt - give yourself the much needed time. Your productivity is directly proportional to your physical and mental health. 

Change work locations
I am a social person and I love interacting with people. So working all alone from a home office can be daunting. So every once in a while, I do work out of cafe's, co-working spaces, friends' places - wherever I can find some human interaction.

Follow your passions
I have been working for corporate ever since I graduated. And that gave me little time for any open source work or attending meetups. That shall change now. I had been working on some cool projects which I plan to open source. Also, now that I don't have a physical office to go to, and all that I require to work is my Mac and internet, I plan to untertake some travel. A trip to Bhutan soon. I also plan to write more often.

So yeah - working remote can be tough. But it's fun in its own sweet ways. Jump the wagon if you can. It shall be worth the ride. 

In the next posts, I shall write about my tech stack and the way I handle product development, QA, deployment and monitoring. Stay tuned.


Post a Comment

Popular posts from this blog

Capture and compare stdout in python unit tests

A recent fan of TDD, I set out to write tests for whatever comes my way. And there was one feature where the code would print messages to the console. Now - I had tests written for the API but I could not get my head around ways to capture these messages in my unittests. After some searching and some stroke of genius, here's how I accomplished capturing stdout.

15 minutes of courage

"I Quit" , said she and walked out as briskly as she could, her face as stern as a stone. She didn't look back. I wanted her to. I felt helpless, somewhat creepy, and a sudden chill went down my spine. I didn't know what to do. I wanted to just run away. Run away from her. Run away from this world. Run away to some distant place where I could be myself. Some place where I could cry to my heart's content. But I was not one of those who would leave the ground, wounded! I had always been the one who took life head on. So was it the time to lean back and contemplate what actually went wrong? No. That won't be the man, the world knew! So.. was it the time to build a castle around my feelings and play cold? ~ Prince Mishra