How to Develop a Remote Team of Programmers from Scratch
Our management team recently decided to create an office with a group of back-end and front-end developers in Izmir, Turkey. We’ve already had our small team of smart guys here in our main office based out of Miami.
However, we all knew that it was time for us to grow and cater to the demands of an increasing number of ecommerce business owners. We also knew this was a major undertaking, coming not only with advantages, but also with many challenges.
That’s why the planning phase took a little longer than expected to complete. We had to carefully evaluate the pros and cons of creating and managing a remote office, weigh all possible scenarios and finally decide what was best for the company’s future. So far, what I can tell you is that the decision that was made was right.
How to Manage a Remote Office
If you are on the same boat as we are and are trying to make “the” decision, here are a few tips to keep in mind based on my recent experience when considering starting a remote office:
- Get mentally ready for the challenge. Creating a remote office is a taxing process that will require a lot of patience, determination and effort at the very least. Throughout this journey, you’ll realize that matters such as finding the right team members, getting a solid grasp of the legal issues in your target country, and estimating your expenses and revenues may not be as straightforward as you’d hoped. So, do your homework:
- Use both online venues as well as your personal/professional network to gain access to as many resources as you can.
- Keep interviewing candidates even though you think you’ve reached your target number (you never know when you’ll need to replace a team member).
- Consult a lawyer or finance professional in your target country to make sure you don’t miss an important step that might give you a headache in the long run.
- Make sure to see this as a challenge rather than a burden so you’ll try to make the best of every situation along the way.
- Don’t even think about diving into this unless you have a solid business plan that’s been carefully developed.
- Beware of the time difference. Yes, your newly created remote team will most likely work in a time zone that is different than yours. In our case, Turkey is 7 hours ahead. In order to maximize the time we work together and mitigate the obstacles that come with the time difference, we asked that our programmers to come to the office between 11:30am and 7:30pm (EET), instead of the 9am-5pm (EST) work hours. That way, we are able to work at least 3-4 hours together.
Also, there are times when I need time sensitive information from a programmer and they are no longer in the office. When this happens, I try to post all my questions on our PMM before I leave the office to make sure that it’s the first thing our programmers see when they come into the office the next day. This way, they can address important matters before I even wake up. Finally, I try to schedule the client meetings as early in the morning as possible, so that they can join and still have enough energy to listen to and understand what the client says.
- Choose the right team members for your remote office. Finding team members that have the right set of job skills is crucial—probably being the number one priority on your list. However, my experience has taught me that personal skills and being able to adapt to the company culture is equally, if not more, important than how well you do your job.
For example, we hired a programmer that looked over-qualified on paper and performed great during the interview. However, shortly after he started working for us, we realized that he wasn’t willing to collaborate with other team members, didn’t want to use our PMM and had an unwelcoming attitude towards us, which was difficult to manage from thousands of miles away.
Needless to say, we had to find a replacement. Now, we know that it takes time and a few trials to form the best team where people work collaboratively, respect each other and their cultural differences, understand the challenges of working in teams in different physical locations and time zones. For example, there are times when I have to message a programmer at midnight EET. High emotional intelligence is also very much appreciated.
As a project manager, it’s your job to determine the strengths and weaknesses of your team members early on. Even programmers that code using the same languages have very specific strengths and weaknesses that you need to be aware of from the beginning of your relationship so you can delegate the right projects to the right team member.
The goal shouldn’t only be fueling their strengths, but also giving them certain tasks so that they improve on their weaknesses. But, be careful; you can easily demotivate a team member by assigning him too many tasks that he needs a lot of practice to complete or have another team member relax by delegating a lot of tasks that he’s comfortable with. Find the right balance, so everyone’s happy!
- Take the right planning measures. Yes, planning is crucial no matter what type of organization you’re working for. We all know that. But, it becomes more important when dealing with remote teams. Here’s the basic system I developed to make our lives easier in the office:
- Encourage your remote team to plan their week ahead. I use an online tool called TeamWeek, for this. Every Monday morning, our programming team plans out their week based on the projects assigned to them and update this tool accordingly. So, by Monday 10am EST, I know who’ll be working on which project and when. Of course, we always leave room for emergencies, urgent client requests, unplanned team meetings (yes, it happens!). However, it’s always good to have an overall idea of where we are with each project.
- Hold once a week team meetings: Every Tuesday morning, I meet with the remote programming team using GotoMeeting where we discuss the current project statuses, introduce new projects and ideas (Always recap these meetings!). We do these meetings with the camera on (Make sure your equipment is up to date.) The goal is to build trust and better relationships among the team. It’s important that they feel themselves as part of the whole team. As a manager, you should try to be as personable as you can. Ask not only about the project related issues, but also anything they would like to discuss in terms of work structure, their workload, office related issues. Show them you care!
- Get written project updates: Every Friday, I ask them to provide status reports on each project and post it on our PMM so I can check them before the end of the day (Remember, their day ends before mine!).
- Assign one of the programmers as the team head: Make him in charge of organizing the meetings, communicating the issues they’ve been having, helping the new programmers become familiar with the processes. I talk to our team head frequently over the phone so I am in the loop of what’s going on over there.
- Assign one programmer and one technical head, a senior programmer, for each project: Although, the main programmer is responsible for carrying the project forward, the technical head needs to join the kick off meeting and stay on top of project details so in the event of something going wrong, the main guy having trouble or is out sick, the technical head can take over the project without interruptions.
- As the project manager, make yourself available as much as possible for the scope, budget, time related questions during the day.
We can extend this list as much as we want, but let’s keep it at this for now. Creating and managing remote teams can get tricky, however if you follow these simple rules, do your research and manage to find the right team members, your remote team can take your business to the next level that you’ve been longing for.