It has been 8 months and so that I have been working remotely for a startup out there. It's been my pleasure to work with a team of great and talented members. over the past few months, I have learned a lot both in terms of technical stuff and working as a team member.
For some, this might not seem a big deal. But for me, it's a pretty big one. So I thought it would be great to share my experiences so far.
New technology, new tools
For this project we are using .NET core and ASP.NET MVC core on top of it. The main benefit of using cutting edge technologies is that you always keep yourself updated, but you might argue that working with new and shiny things is overwhelming because the product is not mature enough to work with. But I believe that's also another great benefit because when you encounter a bug you easily open a GitHub issue and report it. So I think it's best of both worlds.
At first, I couldn't deal with an accurate estimation, after a while I figured out that the problem was the task itself, not me, if a task is a big one then estimation most likely will be accurate, so the solution of having an accurate estimation is to break the task into smaller ones.
A key point to have a good documentation is that, it needs to be updated after the requirement is changed. In our case, there are too many changes in requirements, this makes new team members confused. In my opinion, there must be a section called changelog in the documentation so that it will be really easy to know what was the previous changes at first place. you might say it's better to use
git log but I think sometimes you don't need to go through several file changes in git history in order to understand a small change. Another good thing for new members is having mockups. I have been always a big fan of this type development, because as you know a picture worth a thousand words.
Working in different time zones
From my point of view working in different time zones makes remote working a little bit difficult, suppose you are given a task, now you have some questions and no one is online, so in this case, you have to leave your messages on Slack or Jira in order to get your questions answered. this is really big deal for small teams.
Another key point in agile development is collaboration. Working in a team is not just about delivering your product as soon as possible in some sprints. the best part of an agile team is having daily/weekly standup with other members. By other members I mean Mobile developers, Backend developers, Database developers, ... I think the standup shouldn't be held separately. As a web developer, I need to know what's going on in other parts of the application, because I think it gives developers a really good big picture.
All in all, it has been a great journey for me so far. because working remotely not only improves your technical ability but gives you a cultural perspective.