Case Study: “Don’t be afraid to work in a distributed team”

After paving a solid path in VR programming, Beetroot developer Dima Kodlubovskii has a lot to share. With quite a few projects under his belt, including a Ukraine 360 app for the Ministry of Information and virtual English classes for schools in South Korea, he has accumulated experience in virtual technologies and is willing to tell us about it.

VR projects

After working with public entities and freelancing, I came to Beetroot as a Unity developer. Here I have crafted several projects and one of them is an AR app. We created it to show the capacity of an ARKit presented by Apple. It’s basically a hide-and-seek game, where one user hides the treasure and the other one looks for it. It’s actually more interesting than it sounds.t I’m hugely inspired by our other app. We are working on a project that helps people overcome the fear of public speaking. We are cooperating with specialists who use scientific methods to help people deal with social anxiety. With this app, users can immerse themselves into a simulation of a real-life public event. They can see an audience and follow the instructions that we’ve developed together with our specialists.

Beyond the boundaries of reality

Virtual reality is a rather new direction. There are plenty of things going on there. It bubbles with new technologies, new devices and new opportunities. In order to keep an eye at all the novelties, I usually watch a variety of conferences and presentations organized by big industry players, like Oculus, Unity or Magic Leap.

Saying that virtual reality technologies are fascinating doesn’t even start to cover it all. It’s a real chance to dive headfirst into a brand new world. I’m thrilled to realize that users can see everything from the developers’ perspective, that they can understand what we’re trying to show them, to step beyond the ordinary and see things in a new light. This is what inspires me the most.

For sure, there are certain pitfalls when working with virtual reality. For instance, I’m forced to use third-party libraries, instead of the official ones. But I don’t think that it’s a drawback, rather a reason to develop. Overall, this part of IT gives you experience that can be hardly found anywhere else.

Distributed teams are all about learning and communicating

We have a very strong and skillful team, partly located abroad. Apart from having the chance to constantly learn something new from my teammates, I also have to deal with some difficulties. It all boils down to the fact that you need to be like a single organism while being actually separated by hundreds of miles. You need to comprehend your own role on a team while maintaining a global vision of the product. This is the reason why I go the extra mile to keep sync’d with my team.

There are some pros and cons to distributed work. First things first, being a part of a distributed team is a priori awesome. You can learn to understand different people and to be ingenious when it comes to extracting information from people you can’t approach and talk to on a daily basis. Apart from that, you gain access to brand new technologies. The thing is, people who work in countries like Sweden are able to get tech innovations straight off the bat. I mean, here in Ukraine, we can’t even buy a new iPhone right after it is released. This is what makes teams in other countries more progressive and updated, which leads to another advantage of working on distributed teams — they are not afraid of taking risks. They are more flexible and interested in trying new things, new collaboration approaches. Compared to a company that cooperated with public entities, for which I worked before, it’s like a brand new world. As for the complications, I would say, it’s the necessity to synchronize all the time. I have to write tons of texts to tell everyone what I’m doing, and to ask, what are they doing. With that said, I spend a considerable amount of time in chats.

Company’s culture should support, not distract

The best part of Beetroot culture is the people. They are open-minded and positive and they accept you as you are. Our client has another culture, which is also cool, but different. They want us to feel comfortable, yet they also want objectives to be achieved. So Beetroot creates this working atmosphere, where we are not distracted by tiny routine things and can fully focus on reaching project goals. At first, it was not easy to adapt to the client’s culture. During our first stand-ups, I saw a bunch of unknown people and had no idea what they are doing or what’s on their minds. But eventually we get to know each other, comprehended how the responsibilities are shared, and everything was fine from then on. I guess, any new team member goes through this turbulent period, it’s just on a distributed team all the tribulations are going on online.

For those who want to work with VR-AR

If you want to get engaged in virtual reality technologies, you should firstly picture the result that you want to achieve, the projects that you want to get your hands on. I would recommend digging deeper into game engines. Currently, there are two main competitors at the market — Unreal and Unity. They are similar, but there are core differences. Once you chose a game engine to work with, you should upgrade your programming language base. For Unity you’ll need C# and for Unreal that would be C++. Also, it’s important to have some devices to test your apps. Luckily, you don’t have to go all-in for brand new devices but just buy the cheapest Google Cardboard VR glasses. They consist of cardboard, lenses, rubber bands, and magnets, and you can make them on your own within 5 minutes.

For those who’d like to join a distributed team, I would recommend not to be afraid of this experience. It can feel unusual at first when you can’t see your client offline most of the time. But this feeling will pass and you’ll realize that new technologies and regular communication erase the boundaries between countries and you can work with people all over the world. I had this existential experience when working as a freelancer. At some point I thought: so, here am I, sitting in Ukraine, talking to a guy in South Korea, and there are thousands of miles between us but we still manage to create something great together. I don’t think that I’d go back to a regular office now. Working without boundaries and barriers feels completely different, it expands your own consciousness and it’s hard to go back to the old way of doing things.

How to avoid miscommunication: 6 tips for remote teams

There is one thing that can ruin even a top-notch distributed team: communication. The way people talk to each other can either get them to the highest heights or cast them down into the abyss of failure.

We talked to a variety of specialists — managers, team-leads, developers — about the difficulties of remote communication and how to solve them. These are six of our main takeaways.

Get together in the very beginning

Working in distributed teams can be challenging sometimes because you can’t meet your peers on a daily basis and share the news over coffee. This is the reason why it’s so important to start out a project with getting together as a whole team. We mean like meeting in real life. Offline, to be more specific. A few days of collective work will help you understand your future colleagues way better. Natalia Milostna, QA lead at Beetroot, has a lot of experience working in distributed teams, and says that those collective brainstorming sessions can be the most productive time of your work.

Write understandable texts

You’re not one of those guys, right? Those, who write “hey” in chats and fall silent. “Hey, I need your help with one thing” is also bad. But the ultimate winner is:

hey

need your help

with one thong

*thing

lol

r u here

?

In order to make your communication understandable use the journalistic formula of “5Ws”, where “W” stands for Who, What, When, Where, Why. Answering these five questions will help you build clear communication.

But it doesn’t mean that you should speak like a robot all the time. For more informal chats — like, cheap flights to Sri-Lanka or Friday nights out — use a separate channel. Here, at Beetroot, we call it “random” and it’s full of utterly meaningless but fun texts.

Another good thing to have is a document, which describes responsibilities within a team. It might be challenging to create and maintain it, but at the end of the day, it can be a good tool to cut down unnecessary communication.

Talk to each other regularly and meaningfully

It sounds easy peasy lemon squeezy: just talk to each other and your distributed team will work efficiently. But this very principle can be turn into the most boring and inefficient activity on Earth. For instance, when you’re holding one of those meetings that should be an email.

If you want to avoid collective eye-rolls, prepare an agenda before a video call and send it to every member of the team. Trofim Prodayvoda, a Back-End developer with more than 10 years of experience on distributed teams, says that communication should always have a concrete reason. If there is no reason to have a meeting, just cancel it.

Spice up your messages with emojis 🙂

Australian specialists in body language and non-verbal communication, Allan and Barbara Pease, claim that we transmit only 7% of information through words. Another 38% is transmitted via a tone of voice and intonation, leaving 55% for posture, gestures and facial expressions. It means that reading an email people miss more than 90% of the initial meaning of a message.

You can fix this by making your messages more emotional. Add emojis, GIFs or more vivid words. But never ever write like this: “We’re screwed!!!!!!!!!!!” or “I don’t know……maybe ask me in a month, can you????????”.

When working on the same project people tend to develop their own slang. Which is good because it makes communication easier. But don’t use this slang when talking to someone outside of your group. They’lli barely understand it if you say “we’ve been rubberducking all day long”. As a sanity check-point, imagine saying these things to your grandma. Would she understand what “rubberducking” is?

Always have a plan B

Living in the era of technologies is a bliss but things like malfunctioning Skype, poor Wi-Fi or broken headphones still happen sometimes. Make sure that you have proper equipment: good mics, cameras and other devices. Also, you should always have a plan B in case something goes wrong. For example, get ready to jump to Hangouts if Skype doesn’t respond.

Apart from tech barriers, think of language barriers as well. Sometimes it can be hard to understand what people mean, even if you speak the same language. If you missed something from a conversation, don’t hesitate to ask again. It’s better to ask dumb questions that to write dumb code.

Make sure that everything is clear

Often teams end the conversation, asking “is everything clear?” It’s a typical phrase but it’s also useless. Picture this: you’re finishing an hour and a half call:

— “Is everything clear, guys?”

— “Totally!” — reply people who have just woken up from a meeting-caused coma.

Then they go back to their computers, start doing things wrong, ask clarifying questions and end up with doing much more work than they should. So, when having a meeting, you should better ask everyone to share their ideas on how things should be done.

So, is everything clear? 🙂