In this era of the internet, there are more and more opportunities to work with people from other regions. Our staff members are spread out all over Japan and we have also teamed up with people from outside the country as well. Some are working from Tokyo, Osaka and Nara, some from Niigata and we are also working with someone from Thailand. If the opportunity presents itself we encourage you to try and work with people from outside your region.
We are currently planning to expand our network to other regions and today we would like to show you how our staff are collaborating with each other. First up is our Principal Software Engineer, Yoshikazu.
First please introduce yourself to our readers
My name is Yoshikazu Aoyama, Principal Software Engineer at ANNAI. I’m in charge of Drupal development and am also a Drupal contributor. I’m working from Hokkaido, the northern island of Japan.
I started my career as an embedded systems engineer, engaged in development of major telco company’s infrastructure, infrastructure network and so on.
It was when I was in charge of internal systems development and corporate website that I first encountered Drupal. My predecessor was developing the site with Drupal and I was tasked with taking over what he was doing. When the company started IoT biz as a new business, I was also heavily involved.
It’s been almost a year since I joined ANNAI. I met our management team when an open source conference was held in my city 2 years ago, and we’ve been in touch since then.
About work productivity (Working in the office vs working remotely)
I have experienced working in the office, working at clients office as well as working from home. In terms of working efficiently as an individual, I feel that I am most productive working from home as compared to a standard office.
There can be many distractions while working in an office. For example, ringing phones tend to take a toll on your concentration and a badly timed phone call can break your train of thought; slowing productivity. Taking care of e-mails and chat messages are not a problem at all, but phone calls are a real headache.
About not having commute to office
This is definitely one of the bigger benefits to working at home. In my case, I can easily eliminate 1.5 hours loss time by not commuting.
Considering a working day is 8 hours long, this 1.5 hours is 15% of your working time. Decreasing this 15% to ZERO makes a big difference.
Of course you need to consider that there’s also some downsides even when working remotely, but I don’t think that the loss outweighs the time gained from not commuting.
Also, the good thing about working remotely is that you can set yourself up for work anytime you want.
About having flexibility in your personal life
Working remotely makes you feel very flexible in your personal life as well, especially when you need take a short break and look for new inspirations to move things forward in work.
There are many ways to refresh yourself, such as taking a walk to sharpen your ideas, cleaning up your room etc. I live with my adorable cat so that also makes me feel good!
About collaborating with team members who lives other region
I have never felt any difficulty in collaborating with coworkers who is living in other regions, especially in communication.
I think it’s because I have worked with them together in the office before; when I first started to work for this company.
I personally think before you start working remotely, knowing everyone’s ability - who is good at what, who is not - is very important. Not knowing that can cause confusion in your collaboration. So I think my choice of working with them intimately at the beginning was a good decision.
If you don’t work closely to them, you’ll never know what he/she is trying to say when you have distance between you. Working remotely by having that kind trust and understanding is the key for communicating effectively.
About the time difference
I have a colleague who works in Thailand, and my solution for collaboration is to have a world clock on my laptop. I try my best to adjust myself for the best timing to talk / message so that my colleague is comfortable collaborating with the team. I also have experience in working with an engineer in Spain (We also worked together when he was in China to learn Kung fu), and if you take into account his/her time zone, everything line of communication can be easily managed.
At ANNAI, the development / production environment is on a cloud network. We also use Redmine for task management, Slack for communication, Github for code management. You can use everything anywhere as long as you are connected to the internet.
That way, we can move things forward from any time zone. There’s no barrier in working in different time zones, except when there is a need to discuss certain issues face to face.
Of course having colleagues in more than 3 different time zone is another thing, but no problem has come up so far.
Anything you consider to work effectively with the team
In order to do the job right, I have made it a habit of being more detailed when communicating with the rest of the team ever since I started working remotely. “Making sure every team member is on the same page” is what I always consider when sending messages, documents and/or other materials.
Having a meeting means we take our time to talk face to face, sometimes there is a little bit of time loss, so making sure that everyone understands every detail in the same way is the ultimate way in collaboration. I have 4 other key points that I have in mind as:
1 : Make sure your messages are easy to understand to avoid ambiguity.
The other day, I had a chance to grab some drinks with a colleague and we were talking about this. If your team doesn’t understand what you have said about a certain issue, then you most likely haven’t straightened out your ideas yet. Depending on the situation doing so can lead to misunderstandings.
Coming up with ideas while brainstorming is an exception, but other than that, I think I always consider if my message is clear enough to share with the team.
2 : Keeping everyone up to date.
You can’t see each other when you are working remotely, so I try my best to tell the team what my status is; “My task is on schedule” or “I’m going out a bit” to let them know what I am doing right now. I also try NOT to use “I’m busy right now”, because this kind of phrase can offend people sometimes.
Of course there are occasions where you need to focus on what you are building, in that case, I might say “I’ll be in the dark room to focus on this development” or something light so as to not rub anyone the wrong way.
3 : Setting up the best environment to work remotely
Having the right environment for developing remotely is the key for success.
We have a working environment where everyone is using the same platform, and through the the system, every team member is notified of all major updates, so that we can eliminate time loss and so on. Every team member is notified of server failures, source code updates, adding ticket through slack automatically. We make sure that everyone is up to date in real time.
We work on building up environments like this along with Drupal development, we are also hiring new DevOps engineer!!! Let us know if you are interested :)
4 : Making sure everyone is on the same page.
Working remotely makes it difficult to share and discuss ideas face to face, but we encourage our members to share any knowledge with the team as much as possible.
This is not only in regards to Drupal development but also in security, how to use github or how we should proceed with projects etc. We believe that by exploring the knowledge everyone has as individuals and sharing them with everyone would raise productivity as well as boost your growth as a company, as a team and most importantly as an individual developer.
It depends on the size of the company/team, but “considering the scope of a task” is important.
In other words making sure that everyone on the team knows what the scope of their task(s) is and what is expected of them is very important. Making sure that there is as little time loss due to excess in overlapping work from various team members ensures a higher level of productivity.
By maintaining a good line of communication and making sure that everyone is doing what is expected of them, the team as a whole can become much more productive.
Different teams and companies need different solutions depending on their size and environment, but these are the key ideas that resonate very well with me.
Any suggestions to our team?
I would like to try “pair work” when we are together, which is unusual though.
In the engineering world, there is term called “pair programing”, where you work right next to your colleague and learn from him/her. Hope we can do this when we get together.
What Yoshikazu pointed out were;
Plan ahead and assign the right task to the right person
Make sure everyone understands what you are trying to say.
Make sure your working environment is best suited to the task you are performing.
Keep everyone in the loop.
Hope you enjoyed the article!