How to Win the Remote Development Game
When I first learned that you could hire a developer anywhere in the world online I thought, wow, this is a dream come true. I can hire a developer anytime of the day, pay a few hundred dollars and have a website built to my specifications in a week.
Well, like many things, this was too good to be true. Multiple projects, countless hours, and tens of thousands of dollars later I now understand managing outsourced developers is not easy and if you do it wrong, you WILL get burned.
That being said, after a number of mistakes as well as successes I now consider myself to be an expert at managing remote development teams and ensuring that deadlines, budgets, and quality standards are met.
So what have I learned…
You get what you pay for
Truly exceptional developers are few and far between, and when working with a remote team, anything less than exceptional will not cut it. If you think you are getting a bargain on development work, guess what, you aren’t. The time, headache, and stress of working with a developer whose price is too good to be true is simply not worth it. And after all of the pain, you will not be happy with the end product. Good developers know they are good and they will demand a fair rate for their work.
Even if you do find a diamond in the rough, you will have to go through 99 low quality developers for every one good one. In my opinion I would rather spend that energy working on something productive rather than trying to save a few bucks.
Have a clear plan
The key to success when managing a development team is clarity of expectations and a clear roadmap that will dictate the lifecycle of a project. You should leave nothing to chance here and clear up any assumptions and ambiguity in your scope of work.
Your scope should include everything about your product including the following
- Who will be using these features and why are they important for your business
- A full Feature Breakdown with the priority of each feature, A user story to explain how each feature will be used, and a Description of how information will flow through each feature (swimlanes.io is a good tool for this)
- UI Mockups with descriptions of UX
- Your rough budget and timeline to complete this scope
- Technical Requirements including what languages or frameworks are used, which third party software or API’s are needed, and the number of users the software needs to handle

Any developer you work with, no matter how good they are, will only be able to build what they think you want. Write detailed requirements, provide examples, draw things out, make swimlanes, and don’t leave anything to the imagination unless you want it to be left to the imagination. The clearer and more in depth your scope is, the better prepared your developer will be thus resulting in a project that runs much faster and smoother.
Communication is Everything
During development check in regularly and communicate issues early. If things aren’t what you expected? Communicate that immediately in the most detailed way possible. Doing this will speed up the project and eliminate the time and energy spent on revisions later.
Set clear channels of communication and set up regular times for check ins. Make a detailed milestone based plan with the developer to push updates. You should see your project evolve over time as more work is done. Make sure that you see and use regular updates to ensure you are on track. Do not just trust that work is being done, make sure that you see and use the product as it is built.
Use tools to manage the project. Some great tools I like to use are:
- Trello (for monitoring project process through a pipeline)
- Slack (for communication)
- Toptracker (for time tracking)
- Gitlab (for a repository and issue tracking)
Pick the right person
The number one mistake you can make is picking the wrong developer. Do NOT rush this decision even if you are on a tight timeline. Spending an extra day or two on hiring may save thousands of dollars and a number of weeks later on. Even if a developer has a great portfolio and impressive skills make sure that they:
- Really want to work on the project and are excited by it — If they think of the job just as a job this will lead to problems. It’s always best to find someone who believes in your project and its impact. Make sure to communicate why this project is important and who it will affect.
- Have the time to spend on it — If someone has a full time job and is doing this on the side, chances are you are not the real priority.
- Have excellent communication skills — You need to be on the same wavelength when building a project because miscommunication will lead to disaster.
Ask the developer for past projects they have worked on. Ask them what challenges they had to overcome to develop it. If you have the ability, have someone you know and trust perform a technical interview. Also it never hurts to ask for references.
Have a backup plan
You should always plan for the worst. If you have a presentation the day after the product is scheduled to be completed, move it to later or lower your development scope. Even the best developers run into delays and unexpected problems. Consider all possibilities and plan for the worst.
Pay people an hourly rate
Project or milestone based pricing seems like such a good idea at first. You completely control your costs and you think you know exactly what you are paying for. However, a common syndrome developers get in this scenario is project fatigue. Something goes wrong (the is a bug, miscommunication, delay, etc) and suddenly everything grinds to a halt. Progress becomes painfully slow and communication seldom. The project becomes a chore rather than a constantly rewarding experience.
There are a number of tools that can be used for time tracking. Top Tracker (https://www.toptal.com/tracker/) is a good example and is free forever!
Even though you pay developer hourly, make sure you have estimates up front with clear expectations of what will be delivered. If the developer goes over budget often or doesn’t produce much despite spending 20 hours working on something, maybe this isn’t the right person for your business.
Be Adaptable
Don’t let your project be limited by your initial specifications. If you are paying your developer hourly it allows your project to morph and evolve over time. The world is not static and your project should change as external factors change and you learn more about your users.
Agile methodology is a great way to control the product development process will still allowing for variability. There are a number of resources on the internet to teach agile so I won’t go in too much depth here. You can check out http://www.agilenutshell.com/ for a quick lesson on what Agile Methodology is all about.
Summary
Building a software product is hard and if you blindly jump into or rush you will end up with a poor result. Careful planning, clear communication, and aligned incentives and expectations will increase the chances of success. If you are struggling with outsourced developer and you want a few pointers feel free to reach me at gabe@jinn.tech
