Many organizations view outsourcing as an all-or-none proposition. But that’s not always the case. There are many instances where outsourcing can augment in-house development teams. And this can help your team increase project velocity and maximize developer happiness.
For example, you may need someone to maintain a legacy application for a few months until it’s phased out. It doesn’t make sense to hire a new developer and an in-house developer might be reluctant to work on it. You may also have a skills gap on your team where you need some temporary support.
Outsourcing is perfect for these kinds of situations.
In fact, many successful companies have taken this approach:
- Slack outsourced the design of their app to a Canadian agency.
- GitHub hired a contractor to write its backend.
- WhatsApp hired a contractor to develop its iOS app.
Let’s take a look at four types of projects where outsourcing can help keep you on track.
The Legacy Project
Suppose that you finished a big rewrite last year. Half of your customers have migrated to the latest platform. But the other half can’t switch over until key features are ready. These legacy customers are still requesting new features and integrations. And someone needs to keep them happy.
Reassigning developers to work on a legacy platform would be an unpopular decision. After all, their hard work will be gone as soon as the legacy platform disappears! Hiring new developers isn’t always a great solution either. Starting them on legacy projects could create a bad first impression.
Reassigning developers could also reduce velocity and push back features or bug fixes. And that could upset customers that have already migrated to the new platform. The new project would also take longer to complete with fewer developers. And that could upset investors hoping for a faster launch.
Outsourcing can reduce these political staffing problems for legacy platforms. The outsourced vendor’s developers look at these tasks as “client work” or “billable hours”. They don’t care if their work disappears tomorrow. Instead, they’re focused on writing high-quality code that satisfies the client today.
The Stalled Project
Suppose that you have an iOS app and you want to launch an Android version. You’re under pressure by clients or investors to get the project off the ground. But, your developers don’t have the interest, time, or expertise to take on the project. There’s already a backlog with your existing projects.
You could pull some of your iOS developers, teach them Java, and have them develop the Android app. The problem is that it could take months for them to get up to speed, which is time that they’re not working on the iOS app. Their lack of experience could also impact the quality of the Android app. And you would set back the timeline for the other projects in your pipeline.
You could also hire a dedicated Android developer. But, you might not have the budget to bring on another full-time employee. You would also spend a lot of time posting a job, interviewing, and onboarding. And then, there’s the high cost of making a bad hire.
Outsourcing is a great way to get these kinds of projects off the ground. You can pull in the expertise that you need without the overhead of hiring new developers. And, you can always hire in-house developers down the road if needed.
The Secret Project
Some organizations have skunkworks projects that need a low profile. For example, you may need to test out a new business or product idea without making any waves.
You could pull in-house developers onto the project. But, they may have their own ideas about the project. The time spent building a consensus on how to move forward could be in vain if the project ends up not working out. It can be better to communicate your vision to a group of external developers that can get it done.
Outsourcing is perfect for these situations. You can get these projects done quickly, inexpensively, and away from other developers. Outsourced vendors can work on secret projects without over-engineering the result. And you can have a basic product to test a market in a very short period of time.
The Tedious Project
There are many one-off projects that may be tedious for existing developers. For example, you may have a web app that relies on several third-party API integrations. Changes to these APIs may need updates over time to maintain functionality. But these changes can be very tedious to put in place.
You could pull in-house developers onto these projects. But, they wouldn’t be very excited about working on mundane tasks. You could be wasting a senior developer’s skills on a low-level task that a junior developer could tackle. This could slow down the velocity of your projects and hurt developer retention.
Tedious tasks are often well-suited to outsourcing. They don’t need senior-level skills and experienced in-house developers dislike them. Contract developers view these tasks as “client work” or “billable hours”. They are focused on writing high-quality code that meets your needs.
You have a couple different choices when it comes to finding outsourced vendors.
- Independent Contractors. You can hire independent contractors to complete specific tasks. The downside is that you will need to act as a project manager to keep them on track.
- Development Shop. You can hire a development shop that manages both the project and developers. This lets you focus on higher value tasks and better realize the benefits of outsourcing.
We focus on team augmentation when providing outsourcing services to our clients. Our goal is to help increase project velocity and maximize developer happiness. We do this by taking over projects like those mentioned in this article.
If you’re interested in learning more, check out our blog post about how to outsource development.