Building Software Projects with Remote Developers
Business
Sep 21, 2022

Building Software Projects with Remote Developers

Building new software products is always a challenge when you are on a budget. However, in recent years, with remote work becoming the new norm, things are a tad bit better. It is easier to find remote talent, especially offshore, who could start working on your project immediately at a cheaper rate, but getting results is always a hit or a miss. 

Our goal here is to go over some best practices that will help you achieve your desired results when working with remote developers. This process involves three basic steps:

  1. Defining project requirements and milestones
  2. Hiring talent and setting expectations
  3. Effective task management

1. Define Project Requirements and milestones

This is the most important step - clear requirements will help you identify the skills and expertise you'll need from your remote talent, introduce a layer of predictability to your budgets and timelines and will allow you to hold all the stakeholders accountable. 

Requirements can best be described as the core set of features, functions, and capabilities the end users expect to see when the software is up and running. Keep in mind that this is not just to aid your developers, but also for you to define what is “Done”.

Defining requirements

  1. Start with WHY. Why do you want to build this in the first place? Many times, you will have people recommending existing solutions or workarounds before you even have to spend your time or money.
  2. Next, write down the end goal of your project. How would you imagine your product to work? 
  3. Get into the details - describe each and every feature that you would wish to see in your project.
  4. Get a diagram going - simply sketch something on pen and paper and take a snapshot using your phone. Picture paints a thousand words.

A google doc is good enough to start. Notion if you need more structure to your documentation. 

Milestones

You want complete predictability and visibility to your project development. This will help you to get market feedback and course-correct early on and hold your developers accountable. 

Once you have finished writing the requirements, identify the first standalone feature that you want to see working. This is your milestone #1. Ideally each milestone should be shipped in 1-2 weeks. Have these conversations with your developer, and if they feel these features will take more time - try to break it down further. 

When you are done with these two steps: you will have 1-2 pager clearly defined requirement documents along with the milestones. 

2. Hiring talent and setting expectations

Hiring a remote developer is often challenging and there is no easy way to get this right at the get go. But with a well defined job description and a decent screening process, you might get lucky. 

Build a process that will allow you to figure out early on if you have the right developer, and quickly hire a new developer if you need to.

These are the two channels that I would recommend to hire remote developers:

  1. Use LinkedIn and Facebook and leverage existing networks to ask for references from your friends and colleagues. In most cases people will recommend talented people that they have worked with in the past. 
  2. Use freelancing websites like Upwork.com or Freelancer.com. Check for client reviews and their past work. You will get a rough idea on how well they communicate, their accountability and so on.

Interview multiple people before making a decision. This will help you understand what you are looking for. Share your requirements document along with the Milestones and be open about your budget, and see if the developers are ok with it. And during this process also gauge whether you are comfortable communicating with the developer and also if the developer contributes to your ideas. 

The next step once you have narrowed down on your candidate, is to ask them to estimate the work for the first milestone (in budget and time). Make it clear that payments would be made against each milestone. 

Kick off the work and assess the milestone delivery against time and budget. Continue if you are happy with the results and if not evaluate the whole process. 

Note that missing the deadline is not the end of the word. But they should have an explanation as to why, along with suggestions how this could be prevented for the next milestone. 

Don’t hesitate to let go of your developer and hire a new one if you need to. 

3. Effective Task Management

A well defined requirements document and the right developer doesn’t necessarily translate to success. You will still need a process to make sure the project is on the right track, provide guidance to your developer and validate the deliverables. 

This gets us to the third step, which is building an effective project management process. This will ensure both the parties are on the same page and you get results. 

There are three steps to this - task breakdown, communication plan, and tooling. 

Task Breakdown

Before your developer starts on the Milestone, work with your developer and divide the Milestone further into sub-tasks. Have rough time-estimations against each sub-task. This will help you figure out how far your developer deviated when they missed a deliverable. With this exercise both you and your developer will get better at estimating.

Communication Plan

Decide on a communication format that works for both of you. You don't need daily calls - regular touch-points 2-3 times a week is enough.
Your developers should share daily updates and status reports. Pick any channel like email, slack or task management systems. This needs a bit of practice, getting your developers to share updates daily even when they have made little or no progress or even skipped work (which happens and it is ok). Each status report should have three parts

  • Hits: Is the task complete / is on track
  • Misses: Task not complete / missing the deadline
  • Reasons: If you are missing the deadline, what is the reason along with the new date. 

Tooling

Setting up necessary tools early on, will make your life much easier down the road. Few tools to consider:

  • Code Repository: Setup an account on Github and get your developer to commit the code there. This enables version control and will enable you to scale up quickly if you decide to add more developers. Our recommendation is Github.
  • Task Management: You could use any of the popular tools like Jira, Trello or Asana (there are many more). Our preference is Asana which we use internally. Your sub-tasks should be created as a new ticket in this software. 
  • Documentation: With remote teams, it is important that you get into a clear documentation practice. Based on your preference you could use anything between Google Docs / MS Word, to Confluence or Notion. But both you and your developer should get into a practice of documenting the findings, flow, discovery, or any tech specific topics early on. 

In closing, we hope this article is useful for anyone looking to build software projects when working with remote talent. These tips and tricks discussed here are in accord with best practices followed by the foremost software development companies. So whether you need to hire just a couple of remote devs to build a quick MVP, or you need to hire dozens to work on a long-term project, these methods should help you across the board.

Subscribe to our newsletter

Thanks for subscribing to our newsletter
Oops! Something went wrong while submitting the form.