Avoid the 7 most common pitfalls when outsourcing development
Why outsource in the first place?
In the global economy, we’ve seen a consistent increase in the types and level of work we can outsource over the past few decades. Companies used to send some of the least-skilled work abroad to countries where labour was cheaper. Over time, as communication technology improved and traditionally “inexpensive” markets began offering more sophisticated services, businesses started the trend of offshoring as much as possible.
It’s not all 0s and 1s
If you’re trying to decide whether to outsource your software development, there may be some key issues you haven’t considered. And some of them might not be what you think. For one thing, in a digital age, people will see your software itself as an expression of who and what you are, because they’ll be interacting with it on a consistent basis.
This is pretty major. Your software isn’t like an object which gets assembled and then resold; it’s an entire framework for the structure of what you do. If it’s for consumers, it’s going to be at the centre of some of your major customer interactions. If it’s internal, it’s going to detract from the functionality of your team whenever they use it. Your software is like the interior of your place of business: it will affect everyone who interacts with it, whether they’re customers or staff.
7 things to be aware of
If you’re wondering if—or how!—to outsource a project, or concerned about project outsourcing problems, do check out this guide. Here are some questions which might really help if you’re outsourcing.
1. What are you getting for your money?
There’s a particular challenge with coding projects, and you’ve likely encountered this if you’ve ever hired coders, either internally or externally. There’s usually more than one way for a programmer to approach a problem or a milestone. Will the people you’re hiring seek the way that’s going to be the best for you and for the software’s end-users? Will they have sufficient understanding of, not just the technical needs, but the cultural and emotional roles software plays in the lives of the people who use it?
2. What kind of team are you hiring?
That can be a really big deal. Not everyone talks to you about who’ll be working on your project. That’s sometimes thought of as part of the appeal of outsourcing – you get a “black box”, where you speak to put a project in one side, speak to one or (maybe) two points of contact, and code comes out the other side. We used to see this as a boon, until we had to live with the code. In contrast, when you hire a local agency, you get to meet the people involved, and you get to have the option of working with a team of specialists. It’s just a definitional part of coding: there’s too much for any one coder to know. And if some coder is simply extraordinarily gifted, that coder is not likely to work in affordable outsourcing. Consider user interface, design, strategy, safety, AB testing, platform testing, debugging, scalability. Those are just a few things you run into. Do you want to leave that to one person?
3. What does your product support look like?
It’s an ugly fact, but offshore developers sometimes vanish. This is not shocking (though it is painful). Development is difficult work. And someone offshore will never run into you, might never do business in your part of the world, might live under laws which would make contract enforcement impossible. Sometimes, when the going gets tough, the not-so-tough get gone. Ask anyone who’s been part of a project where the lead programmer disappeared. It can happen, and it’s always painful. When you know someone only through a screen, they may not see the same stakes you do.
4. Coding projects need ongoing support.
The only kind of code that doesn’t need support is code for a program nobody uses. If you have an application or developed work that people use, then you’re going to need to provide assistance for people using it, you’re going to want incremental improvements based on user feedback, and your application will change as surrounding technology and needs change. Do you have a team which is local enough to be in the same time zone, and present enough in your business life that you can rely on them to be around? Or are you working with someone whose company might exist for this project, then turn around and ignore you because they see some other angle as more lucrative?
What kind of quality are you getting? That’s not a knock on offshore development. But many developers figure you’re going offshore to spend as little as possible, and they recognise that there’s always another provider out there, one who may be cheaper. They legitimately feel they need to cut prices to please you, and they might also cut corners. They’ll work as cheaply as they can, genuinely believing it to be the reason you offshore (isn’t it?) – and not always taking time to think out the consequences. It’s part of how offshore companies can get you cheap deals—fast–by skimping on quality.
Even for minor projects, your code can be very powerful—and contain certain dangers. It doesn’t have to be pure malice (like, say, a backdoor.) It could simply be people who don’t stay current with the latest in safety changes, or who might have different cultural circumstances which make their ideas of safety different from your own. The old saying applies, “Do you want it done well, quickly, or with safety? You get to pick two!”
7. Keeping a project on track
Under the best of circumstances, it’s been a fact of business for decades that even experienced engineers sometimes find changes in scope of technology, and the project can fall behind. One additional challenge of offshoring is that the team often follows the payoff, not the client. In their defense, running a business aggressively means going after lots of bidders at once. Not every company has the same values we expect, of not taking on more than you can chew. Working with people who are nearby, they’re accountable to you. You can communicate with a common native language and shared values. If they’re far away, and being paid what they know might be a “discount” from what one might pay a local developer, it’s only natural for others to give you “discount attention
Bonus tip: Source Code
Where is the latest version of the code stored? Do you have access? Do the laws of the country with which you’re dealing give you access to that code if something goes wrong? Do you have good legal recourse if there’s a problem? Without the code, no amount of mockups or simulations will do you good. You don’t have to be technical to understand that if the core value is in bits and bytes, then ownership of those things becomes a challenge; data can be stored anywhere. If it’s not stored where you have access—you could be in trouble if disputes or challenges arrive.
There are a number of important things to consider when you’re looking at outsourcing project development. Want more advice? Contact us—we’d love to help, and we’re right here in Australia.