In the last three months SourceBold has worked with multiple prospective customers who have told us that they didn’t believe that their development project was a good fit to outsource. To their surprise, we have agreed with them, even though it meant losing a prospective customer or project. However, we have found that it is true that there are certain types of software development and certain roles in software development you should never outsource.
In this blog post we will cover the two critical roles in software development you should not outsource overseas, and in our next blog post we will cover the different types of development projects you shouldn’t send overseas. The two roles you shouldn’t outsource overseas in software are Software Architect and UI/UX Design.
- Software Architect –
The foundation for a great software application or tool begins at the software architecting phase. The software architect is the person who decides what language to develop in, chooses the frameworks to use, defines the APIs, builds the database schema, and outlines the major milestones for the project. It is critical that your software architect be competent and that he/she have experience in building similar applications to the one you are building.
Getting the software architecture right the first time is absolutely critical for a project. Many projects have wasted hundreds of thousands of dollars and months of time because it was built using the wrong architecture in order to fit the skills of the first junior developer on the project, only to have to be rebuilt later using the correct architecture.
Because this role is so important, SourceBold recommends finding a US-based architect to fulfill this role. This does not preclude you from then using less expensive overseas labor to do the heavy lifting of development, just like the architect who builds the plans for a sky scraper doesn’t do the less costly labor of laying cement, plumbing, or electrical.
- UI/UX Design –
Another critical role in software is the UI/UX design. Design requires a person who is skilled in understanding and thinking like the user of the system. A good designer will incorporate a look and feel specific to your audience. Most people we work with are building their software for an American audience. And when you sit down with the UI/UX designer they will try to put themselves into the mindset of this audience. As you nail down this audience and their habits, you will often have a conversation with your designer that includes cultural references to advertisements, restaurants/clubs, or media that an overseas designer wouldn’t know about. Using a designer who has the same exposure as your audience and with whom you can speak and communicate with face-to-face speeds the process and makes the overall look and feel better.
There are certainly exceptions to the above two roles, as you can find people overseas who can fill these positions and do just as good a job as anyone local. However, it is much tougher to find, much harder to vet, and more likely to be regretted down the road. Also, both of the above two roles are usually accomplished in the starter phases and consume less than 10% of the overall project timeline, so most companies can afford to spend a little more on these roles.
And then once the foundation is laid using a local software architect and designer, you can then take advantage of the cost-savings of software development overseas.