In my previous blog post I described the onboarding experience at Kosli and how I got started with my colleagues in a remote-first company. This time I’d like to take this topic further and talk about working remotely with customers.
Making the transition to remote working
Before I joined Kosli I spent almost 5 years working as a consultant. At the beginning, when I got my first customer, the idea of working remotely didn’t really cross my mind. It just seemed obvious to me that if I’m working for someone I have to be in the same place as them. Of course, this doesn’t mean remote work didn’t exist 5 years ago, it just didn’t exist for me.
But I soon learned that some of my colleagues weren’t actually going to customers’ offices all the time. I believed this was mainly for the most experienced consultants who could be trusted to do a job without being physically present at the office. Or maybe in cases where the office was really far away, at the end of a long commute.
So, back then, I was biking to the office every day. A customer I was working with produced hardware and it was a lot of fun to play with the devices standing on my desk. Figuring out how to connect things, which wire goes where, getting help from a colleague sitting next to me - it made a lot of sense to be physically present in the office.
When the customers are also remote
As I became more confident with my tasks it started making sense to work from home, especially when the commute became quite long. Even so, in my experience, some customers will insist that consultants show up in their office as often as possible, no matter how far away we live. So, joining a remote-first company like Kosli, I was a little bit anxious to see how it would work in terms of actually dealing with the customers.
Most of them are really far away, in several different countries, so even showing up “every now and then” is not an option for many reasons - feeling responsible for the state of our planet being one of them. Nevertheless, I was expecting most of our customers to ask us to show up at their office and I was wondering how we would respond to it. But the question never came - not once. That was surprising.
Challenges of working with remote customers
At first it was difficult to imagine how I could help anyone without being able to access their development environment directly, but I quickly learned that this doesn’t have to be a problem.
Let’s have a closer look at some potential challenges I was expecting:
Access to THEIR environment. Since the Cloud has taken over it has become much easier to get remote access to environments. Massively secured data centers on prem are not completely gone, but judging by my own experience more and more companies are switching to Cloud. These are private Clouds, but it’s relatively easy for companies to grant external access to their resources without compromising security. Even if that is still a problem, once again, thanks to Cloud, I can very quickly model a customer’s system using my own infrastructure (abstracting the parts that are not crucial). From there I can propose solutions that would work for them, including snippets of code that should be easy for them to apply on their private infrastructure.
Being able to talk to people. There are no colleagues sitting next to me, neither from Kosli, nor from the customer, but it still feels like they are close by. Slack, Teams, Discord, etc. are now everyday tools that most of us use, especially since we were forced to work from home due to the pandemic. But remote work is not the invention of the last two years. Hybrid or fully remote working models were popular before covid-19 as companies started to look for talent on the other side of the country, continent, or even the world.
And everyone finds their own way of working with these tools. Some people answer instantly and some only check it a few times a day, so it isn’t that different from a real office. Yes, theoretically you can poke anyone in the shoulder at any time and get their attention, but that doesn’t mean they were happy to be interrupted. Once the team agrees on how to use notifications and finds the features that are right for them, these tools can become a pretty efficient way of communicating. And, if you stick to communication in public channels, people that might miss a conversation if it were taking place in the office can also participate in the discussion.
Getting to know each other and sharing knowledge. Learning how to work with different people without meeting them in person is always a challenge. Written communication can lead to misunderstandings and the mood of the person receiving a message can have a big influence on the way it’s perceived. A joke may be completely misunderstood if we have no idea that the person telling it has a certain way of speaking. That’s why video meetings became so important. You don’t have to do it all the time - spending 8 hours a day on a call with your team or customer might be a bit much - but doing it at least once is already a great improvement. It is much easier for me to communicate with people and deliver presentations or documentation if I have met them before, even if it was only on a video call.
There is no one solution that fits everyone. Some customers may have plenty of time to work on improvements while some need us to take matters into our own hands. The key is to agree on what is expected and how we are going to communicate.
How we work with remote customers
One of the first things we do at Kosli, whenever we start a new assignment, is to offer a shared Slack channel to make communication easier. That allows them to reach us instantly if there is a problem and it gives us the information we may need to proceed with the task we’re working on. No complaints so far!
Once we manage to get access to a customer’s git repository we can try to implement solutions for them directly. This is a really comfortable way of working, especially since we rarely work alone at Kosli. Whenever I have such a task I can always ask a colleague to work on it with me. We help each other, learn from each other, and in the end the customer gets a pull request with the best possible solution.
We also have situations where the customer leads with screen sharing. These are my favorite experiences because we can watch them, week by week, successfully integrating Kosli into their system. It allows us to identify challenges they are facing, what are they missing, and what needs to be fixed, reimplemented or added. For example, when it seemed like too much trouble to read our documentation we immediately prioritized documentation improvements. We didn’t have to guess what was wrong because we could see very clearly what the issue was for the real user.
When I joined a fully remote company, I was worried I wouldn’t be able to help customers as much as I had in the past, and that I may not enjoy the work the way I did before. I decided to try anyway and all those concerns are now gone. It is different from my previous experience, but equally challenging and rewarding.