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.

Planning
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.

Communication
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.


Comments

Post a Comment

Popular posts from this blog

How the Python import system works

How the Python import system works From:  https://tenthousandmeters.com/blog/python-behind-the-scenes-11-how-the-python-import-system-works/ If you ask me to name the most misunderstood aspect of Python, I will answer without a second thought: the Python import system. Just remember how many times you used relative imports and got something like  ImportError: attempted relative import with no known parent package ; or tried to figure out how to structure a project so that all the imports work correctly; or hacked  sys.path  when you couldn't find a better solution. Every Python programmer experienced something like this, and popular StackOverflow questions, such us  Importing files from different folder  (1822 votes),  Relative imports in Python 3  (1064 votes) and  Relative imports for the billionth time  (993 votes), are a good indicator of that. The Python import system doesn't just seem complicated – it is complicated. So even though the  documentation  is really good, it d

Todo lists are overrated

My tasks come from a variety of sources: 1) Tasks from emails  2) Meeting notes with details of people who participated  3) Project related tasks that can have a long format and can be tagged/ delegated  4) Scratchpad for unrefined ideas  5) Detailed documentation for completed technical tasks / ideas  6) FIFO list of high priority small daily tasks No one app has been able to map all the requirements above, and I have tried a lot of them! In my lifetime I’ve tried a dozen todo apps. In the beginning they all seem different, novel and special. Slick UI, shortcuts, tags, subtasks, the list goes on and on. But all our stories were the same: I start using the new app, then after awhile I stop using it. Up until the last week I thought the problem was in myself (you probably think so too). After all, David Allen seems to have figured this shit out. Also there are people leaving long 5 star reviews on every major todo list app, they discuss them on forums, recommend them to friends. But the