Time zones are an inherent barrier to outsourcing software development. How do you functionally work with a team when they are working while you're sleeping, and vice versa?
The first and most important piece of the puzzle is establishing a schedule and a channel for communication. Here's an example of how we function in simplest terms.
Use a project management tool to track the actual progress of the development so you can see a holistic high-level view of development. We didn't feel there was a perfect ready-made solution for this on the market, so we built our own platform to help us better manage outsourced software development.
However, there are other tools out there that are easy to use and understand, although they might not be tailored specifically for outsourcing software. Some alternatives we recommend are: Asana, Monday.com and Basecamp. We encourage you try them out with your development team and see if you like them!
A daily standup is a concept borrowed from the agile methodology. It's meant to be a short, concise meeting where a team can touch base and get a pulse on the overall progress of the project. It's not meant to be a working session, only an informative session, and derives its name from the fact that all participants are generally required to perform the meeting while standing up. This limits the meeting length with the inherent discomfort of standing for a long time.
Since our teams work remotely with our development partners, we don't have the luxury of face-to-face meetings every day. We adapted the daily standup to our process by having the development team fill out a guided form rather than get everyone on a call, which helps us work around time differences.
With our daily standups, you should wake up every morning to a message that states what the developers worked on while you were asleep, what they are working on during their next work day, and any problems/blockers they are facing. The purpose of the standup is to give you a transparent and clear view of what is going on from a day-to-day perspective without having to change your sleep schedule to get on early morning or late night calls.
For any and all deliverables, you should ask your development partner to send a demo video of the deliverable so you can give feedback or identify issues. A good tool for this is Loom, a screen-sharing service that lets you easily record your screen and has timestamped commenting so users can leave comments on specific parts of the video.
You can then log your feedback in your project management platform so you can keep track of your development team's progress.
The reason for our demo workflow is to avoid having to get on calls every time there's a new deliverable, but sometimes calls are unavoidable. If you do find yourself needing to get on demo calls with your development team, we recommend referring back to our article on Demos and Walkthroughs so you can be as effective as possible and limit the number of times you need to change your sleep schedule to get on calls.
Throughout the project, you've probably given a lot of feedback, logged bugs, or requested small changes of scope. All of these tasks need to be followed up with your development team, especially if you aren't tracking them in your project management tool.
We recommend maintaining some sort of status indicator for each action item your development team needs to work on. You can use this status to have your development team mark when something is in progress, done, or needs review.
If properly maintained, the status indicators on the action items will eliminate any back and forth. When you consider the time difference, a typical flow will be: ask the developers if something is done, wait 8 hours until they wake up and respond, then check their response when you wake up the next day. This can waste a lot of time, but status indicators can give you all the information you need without delay.
Communicating asynchronously is absolutely crucial to having good communication and ensuring action items aren't lost. If you use a simple text channel like Skype, Slack, or email, it's easy to lose key decisions and action items in a long chain, especially when you are sending messages while your developers are asleep, or vice versa.
Waking up to 30 messages is daunting, and there's a low chance all those messages will be fully read and comprehended. Use a project management tool that lets you log decisions and action items asynchronously.
We find what works best for us is to separate different items into different categories, and to hold conversations about each item in its own thread. For example, on our platform, you can log a bug and assign it a priority, then leave comments on the bug thread that is specific to that bug. When the developers wake up and check the platform, they have an organized list of action items that require their attention, with a history of discussion on each one.
By working to create a system that consolidates interactions asynchronously, you can focus more on your day-to-day responsibilities and worry less about the headaches of software development.
Running a business is hard,
Software development shouldn't be ✌️