You may have noticed lately that there is a huge trend towards onshoring software development back to the United States. For some years, companies were taking their software projects overseas after hearing stories of how programmers could be acquired for a fraction of the cost of US developers. This was especially appealing for full blown custom applications, with many companies wanting the best results at the cheapest prices.

Like everything in life that seems too good to be true… it isn’t. The one mantra that always remains true is… you get what you pay for.

There are three main facets to any software development project as well as most things in life – speed, quality and cost… you can pick two. You can have speed and quality, but it will cost more… You can have speed and a lower cost, but the quality won’t be there… You get the idea.

We’ve been at this for more than 20 years and have cleaned up tons of projects from other development companies, both offshore and onshore. The above always hold true. The number one issue we hear is that a developer just can’t get the job done. Another issue we’ve seen is having to spend additional dollars to fix substandard results. Another is that the software is not scalable.

Although the initial price tag may be attractive, offshoring has revealed that you are at risk of incurring many hidden costs, both during development AND after the project is completed and goes into maintenance mode. Many businesses have realized that offshoring is not cheaper because of these hidden costs, and that there are so many components of the process to manage.

Working with offshore talent can also bring large cultural, technical and time zone differences that can influence the overall aesthetic, design and outcome of your project. When building an app or piece of software, it is crucial to have your target audience and market in mind. Offshore companies may not be able to develop with the mindset of someone who is familiar with the culture, market and users.

This brings up a very important distinction between programmers and developers…

A programmer is someone you give an exact set of instructions to and they give you the exact output you requested. They have a hard time thinking outside of the instructions and the potential risks associated with the code they are developing. In other words, their vision is too narrow or short term. The do not think how their code will have to be tweaked and how revisions will affect the structure they have designed. For a programmer, the largest concern is getting a working version of the exact spec. This makes their work more prone to potential shortcomings in version 1.1 or 2.0 of your software. Hiring a programmer will cost you more in the long run.

A developer is someone who can take a concept from idea to a working digital solution. They are capable of not only architecting a complete solution based on a business process, but also building the data model and code, as well as working with users and prototype groups. They can also maintain the solution, so that when code needs to be revisited down the line, they can easily go back in, understand the approach used and build upon it. This saves a massive amount of time when revisions or additions are needed, which is almost always the case. A developer is more like an coder, analyst and designer combined, someone with a greater creative capability who can take a larger view of what needs to be accomplished and make it reality.

The bottom line is… you are going to spend a lot of time and money on your software project. Select a developer that is going to have the insight, foresight, experience and technical chops to get the job done right.