If you're ready to fine tune the vision for your next app or software development project, then start the conversation here
If you’re seriously considering outsourcing, then I have one very simple piece of advice for you: “woooooah there, wind back a minute, let’s not get too excited; at least, not YET“…
You see, the vast majority of outsourcing mistakes and disasters happen for one of two reasons:
1. Outsourcing the wrong thing for the wrong reasons. “These US engineers are so darned expensive: let’s hire some overseas people, they’re so much cheaper AND I bet, just as good… While we’re at it, let’s do the same for accounting too, I can’t stand our accountants.”
2. Setting unrealistic expectations. “Outsourcing this project will cut costs by 76%, improve quality AND allow me to play golf every Friday rather than having those horrible team meetings.”
If you’ve ever seen an article suggesting outsourcing saves less than what some rock bottom, bare bones outsourcing companies claim, you can bet your bottom dollar someone (either the vendor or the client) made one of these two mistakes.
Yes, when done properly, outsourcing will reduce costs, increase quality, and save time. However, if you take the wrong approach, you’re likely to make things worse rather than better.
For example, deciding out of the blue to outsource accounting and software development at the same time, to the same vendor is a recipe for complete disaster.
Those two functions have nothing to do with each other and require completely different approaches to outsourcing.
If you’re going to lump these two projects together, you’re going to end up with less savings, less efficiency and MORE stress than you’d hoped, simple as that.
Of course, it’s not as simple as “avoiding stupid assumptions”, knowing when to outsource is more complicated than that…
There are really only 5 situations in which you should seriously consider outsourcing, we’ll go over each of them in a moment but first let’s have a look at a realistic, simple example of savings you can get from outsourcing.
Imagine you want to outsource a single software development project. To do it in-house you’d need 25 dedicated engineers working for around 12 months. How much do you think you’re likely to save by doing the work in India instead of the US?
Let’s say you go with one of the more expensive offshore outsourcing vendors, which will probably cost you $5,000 per engineer per month. Compared to the price of a skilled employee in the US, that’s a steal at probably around half the cost.
More specifically you’d be saving $5,000 x 25 engineer x 12 months = $1,500,000 ($1.5 million). Impressive savings, right?
Does all that come at a cost? Of course it does. Is it easy to coordinate a project half way across the world? Even with the help of the Internet for things like email, instant messaging and project management software, it’s never going to be easy.
Yet, the huge cost savings and increase in quality more than make up for it.
The ONLY 5 Situations When You Should Outsource
There are only 5 situations when you should ever consider outsourcing: four will increase your success and one will save your ass from potential disaster.
If any of these 5 fits your situation keep reading; if not then outsourcing isn’t for you:
1. You’re creating your first software product, or a new, or additional, software application.
2. You want to support or augment your in-house development team.
3. You need to provide ongoing maintenance programming for an existing product.
4. You need to cut the burn rate or your company will simply have to slow down or cancel your web or mobile project.
5. Gain Access to World Class Talent – The talent needed to execute your project is not readily available in your home country or your internal company and you want to maximize use of talent in other parts of the world.
We’re going to go through each of these situations in detail so feel free to skip to the ones most relevant to you.
Creating your first software product or a new, or additional, software application
If you’re creating your first software product then outsourcing is only going to be useful in specific circumstances: specifically, when you have a VERY clear idea of what your product specifications are. In layman’s terms, what it will look like, what it will do, and how it will do it (at least from the user’s perspective).
For example, if you’re an entrepreneur creating a new online productivity tool for other entrepreneurs, then you’re going to need a pretty good idea of what features you want BEFORE you start outsourcing.
You don’t need to program anything; just write it down or draw it on a piece of paper – whatever you need to do to get your ideas clear in your head so you can communicate them to your developer. Otherwise, you’ll waste huge amounts of time and money going backwards and forwards changing things.
On the other hand, if you’re just looking to provide a more standard software product to a new audience, for example, then you can outsource much earlier in the process because your specifications are easier to define.
In an ideal world, you’ll outsource from version 1.0 of your product so you can have consistency in the team you use. This will dramatically accelerate your time to market and the speed at which you can innovate, add new features, etc.
Let’s say you’ve discovered a new need in the market that you really want to fill with an add-on to an existing product but your internal development team is fully tied up with existing projects. This is an excellent time to consider outsourcing…
You can begin work on a new product or offering without disrupting your internal team AND get a new outsourced team set up so you can increase your development capacity.
This is usually a very easy type of project to outsource because the scope is clearly defined and you have existing documentation or even code (from your core product) to give to your new team.
If you need a testing ground for outsourcing, there’s arguably no better project than adding features to an existing product.
Augmenting Your Existing Team
If you already have an in-house development team and you’re considering outsourcing, then THIS is where you should start.
It would be a bad idea to immediately throw out your current team and replace them with an outsourced one because you’ll inevitably encounter teething problems, and you really do NOT want them to affect your day-to-day business.
Augmenting your current team will not only give you more raw manpower but also access to technical expertise missing from your current team at a much lower cost than hiring another in-house team member.
You also gain the added benefit of being able try outsourcing different processes one at a time. You can start with specific technical jobs your team can’t handle on their own, then let the new guys try some testing and quality assurance to make sure they are working out before letting them loose on your project at large.
Overall, the biggest benefit you gain is lack of risk, because you can avoid delegating mission critical tasks or make-or-break features until you’re completely happy with your new team.
Handling Maintenance Programming
If you’re looking for another safe way to test outsourcing and you need someone to handle non-critical feature upgrades or legacy versions of your software, then THIS is a great place to start…
With a proper induction and initial ramp-up or testing period, it’s pretty simple for your outsourced team to begin supporting or adding new features to your existing code.
However, it’s important to note that limiting your outsourcing activities to this kind of capacity would be a great shame.
If you’re going to go to the trouble of creating this kind of arrangement, you might as well find a skilled, professional team who can create new software as well. The extra effort involved is negligible compared to the benefits you’ll gain in the long run.
Cutting the Burn Rate
If you rely heavily on expensive in-house or domestic software engineers and you need to cut the rate at which you’re spending capital, you can find yourself in a very difficult situation.
Things can get especially bad if you still have work to do on your software but literally have to sack your development team to avoid going under.
In these cases, outsourcing is really your only choice. I won’t sugar coat things though; it won’t be easy.
You’ll need a transition period where your employees slowly hand over control to your new outsourced team – something that is never easy when they know they’re going to lose their jobs.
The only way to deal with this is honest, open communication from the very beginning. I wish you the best of luck.
Of course, ideally you’d have outsourced much earlier or at least augmented your team to provide a level of redundancy and flexibility.
If you find yourself in a situation where you COULD reach the point of no return outlined above, then I urge you to start outsourcing now so you can cut costs over time. It really could be a matter of life or death.
Gain Access to World Class Talent
For small start-up businesses seeking investors and partners, showing that the company outsources its non-core functions to a professional, bonded, insured service provider firm with secure technology will help potential investors realize the start-up owner is running the business well. Also, the talent development aspect of developing non-core functions of a business take time, focus and money. This is often best left to the experts.