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

  1. I recently came across your blog and have been reading along. I thought I would leave my first comment.
    python Training institute in Pune
    python Training institute in Chennai
    python Training institute in Bangalore

    ReplyDelete
  2. Its really an Excellent post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog. Thanks for sharing....
    Best Devops Training in pune
    Devops Training in Bangalore
    Microsoft azure training in Bangalore
    Power bi training in Chennai

    ReplyDelete
  3. Attend The Python training in bangalore From ExcelR. Practical Python training in bangalore Sessions With Assured Placement Support From Experienced Faculty. ExcelR Offers The Python training in bangalore.
    python training in bangalore

    ReplyDelete

Post a Comment

Popular posts from this blog

The economics of crypto investing

If you believe in the greater fool theory, there is no other market as speculative and volatile as the crypto market today. We are perhaps living in the biggest bubble of our times. I am not bullish on this market in particular. I am bullish on the mania. 90% of the cryptos we see today will crash. They are just tokens with no tangible value generation capability. However, I believe that the mania and euphoria will stay.

Having said that, should one consider investing in this market? Certainly!
The risk/reward is lovely, potential upsides and margins are huge and with 3-5% of your net worth, the bet on the mania is worth it.

How does one choose where to invest?

If you follow the stock markets, you are expected to do thorough Fundamental Analysis before investing. Expect the same for the crypto market. I invest in large caps. I invest in index funds. And I invest over and over again. Markets rise, always. Extrapolating the same strategy - invest in indices - the top 10 tokens by perfo…

Learn frontend to get good at backend : lessons for my 20 year old self

Only when you are the consumers of your own products, can you design the best ones! Same philosophies go for API design and programming in general.

This advice may seem counter-intuitive at first, but trust me, the best way to get better at backend programming is to spend some time doing frontend! It will teach you a lot about how your APIs are being used in the "real world". A first-hand experience of API consumption will tell you a lot about your design philosophies!

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.