How to Structure a Development Phase

Now that you've finished with the Design phase, you can finally move onto Development! Over the years, we've carefully created and iterated on a development process that is specifically tailored for outsourcing software development. In this article, we're going to go over a handful of basics and discuss our development process at length in the Development section of the playbook.

During actual development, you need to make sure that you have control over two critical things: the server and the code repository.

Server setup

Make sure from the very beginning of the engagement you have control of your server(s). This will avoid a big headache later on should you switch development partners. Even if you don't on switching in the foreseeable future, you don't want someone else to own your servers. If you're non-technical, it can be daunting to set up your own server, but there are a lot of cloud hosting solutions that are easy to use.

We usually use Amazon Web Services (AWS) because it's cheap to get started and very well-known among developers. The easiest way to get started in AWS is by performing the following steps:

  1. Go to this link: https://aws.amazon.com/console/
  2. Create an account
  3. Add a payment method to the account
  4. Create a user for your developer(s) and add them to the account*
  5. Ask them to develop and push all updates to your server


*You may be tempted to take the "quick and dirty" method of letting your development partner use your account directly, but we advise against this. You might want to use the account for other aspects of your business, or you might already be using AWS for something not related to the current project. In these scenarios, you don't want to just hand over the username and password to your AWS account since it's being used for more projects—past, present, or future.

For step 4, you'll want to create an Identity and Access Management (IAM, pronounced "I am") user in your AWS account. You can create an IAM security policy that allows the account to only access the resources you want it to access. Then, create the user(s) for your development partner and they'll be able to start working on the server.

You can follow these steps on the AWS website here: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html.

These steps are a bit simplified for the purpose of this playbook, but feel free to reach out via our live chat or [email protected] if you need help setting up your AWS account.

Code repository

A code repository is simply a database that stores the code for your project. The most popular solutions for code repositories like GitHub and Bitbucket have cloud storage, allowing you to store all code remotely so it's easily accessible by your entire team. Another benefit of code repositories is version control, meaning you'll have a complete history of all edits to your code.

From the very beginning of the engagement, you should have control over your code.  You want to own your code for the same reasons we discussed above for owning your server. You don't want your access to the code to be determined at the mercy of your development partner. Since you own the code, you can choose who can view and edit your code, and see who was responsible for which changes using the version history.

We generally use GitHub for its favorable pricing plans, but the technology behind GitHub and Bitbucket are ultimately very similar. Below are the steps you can follow to have ownership over your code throughout the entire engagement:

  1. Create an account on GitHub (https://github.com/)
  2. Create a "New" repository
  3. Ask your development team for their GitHub usernames or emails
  4. Open up your repository and go to "Settings"
  5. Go to the "Collaborators" tab
  6. Invite your development team as "Collaborators" to your GitHub project

This will allow your development team to contribute code to your project without having access to the administrative powers that you do. For this reason, we always recommend following the steps given above and NOT simply handing over your GitHub username and password over to your development partner.

Throughout the project, you will need to make sure the code repository is being updated frequently. We generally insist on a daily update schedule at the very least, ensuring we have daily roll-back points for the code should we encounter issues. To read more about our specific process, stick around for the development process chapter!

Table of Contents

Why Outsource

How to Vet Developers

How to scope a software project

How to establish your project structure

Our development process

How to manage your relationship with your outsourcing firm

How to manage expectations with your outsourcing firm

Ready to learn more? 
Hire software developers today.

Running a business is hard,
Software development shouldn't be ✌️