Today, as outsourcing has become a global omnipresent phenomenon, many businesses pass their software projects to outsourcing companies. Factors driving them toward that decision include the high cost of hired talent, strict deadlines, lack of certain skills, etc.
Generally, software development outsourcing allows the company and the hired help to share skills in order obtain a quality product and reduce costs. Of course, it comes with risks, and many wonder what route to choose: outsource to a software house or assemble an in-house development team.
By outsourcing, you can focus on core operations and leave tasks where face-to-face interaction is not a must to others. Though many argue that this option leads to job loss and reputation damage (e.g. in customer service).
On the other hand, gathering a proper in-house team and making it work requires a great deal of effort, patience and a clear long-term strategy.
“When deciding which avenue to venture down, I often advise clients
to consider their project’s scope, deadline and budget”.
– David Semerad, CEO of STRV, a mobile app development company.
So what are key pros and cons of each hiring strategy? What are the main risks and challenges? What are the differences in terms of cost? Which aspects help you decide whether to outsource to a software house or to hire an in-house development team?
Summary of pros & cons
Unfortunately, there’s no black-and-white answer to the “outsource or hire?” question in software development. In-house dev teams may have full and exact understanding of your project and company’s values, but may also lack specific skills in unexpected situations.
Meanwhile, a software agency you outsource to may not know your inner workflow well but provide valuable expertise to address current needs.
An in-house development team
- Face-to-face communication, strong project engagement within a team;
- Control, fast team feedback, guidance, and coordination;
- Team’s full dedication to your project only, no other clients;
- No language barriers, team members are usually from the same country and same culture;
- Involvement and ability to make changes to a project quickly;
- High project expertise leading to efficient bug fixing, support and independent maintenance.
- Tough on budget (salaries, taxes, raises, insurance, payroll law changes, etc.);
- High hiring costs, as it’s not only about salaries – recruiting requires ads, interviews, training;
- Possible lack of skills, due to location/area limitations in skilled programmers;
- Dismissal of staff, happening regularly due to the human factor, and then you have to invest and train new employees.
Outsourcing to a software house
- Less costly compared to in-house hired employees, plus no expenses for recruitment, interviews, training;
- There’s no commitment, as you’d outsource just for a period of time, and on a basis of performance evaluation you can continue or find someone else;
- Open talent pool and better chances of finding a software house with experience and skills in the area your project requires;
- Price-expertise balance, no need to hire new employees, more efficient budget planning;
- Faster delivery to market, avoiding major staffing issues under in-house development.
- Security and confidentiality risks, as you may have to share some client’s data via online communication channels (see “How To Protect Your Intellectual Property When Outsourcing“);
- Deceiving (or fictitious) company profiles, which only aim to attract attention by claiming the expertise they don’t have;
- Poor communication due to different time zones, business hours, cultural differences, etc.;
- Transparency and trust issues potentially created by no in-person communication or nature of a contractor;
- Further dependence on an outsource agency when you get an unsupported code and can’t maintain it alone.
Though it’s not as simple as weighing in pros and cons of in-house team and outsourcing. Both approaches present particular benefits, certain risks, as well as have differences in cost.
First, on hiring an in-house development team, general hiring rules and practices are an eternity away from hiring tech talent. Do you know how to do that? Do you have proper screening and validation procedures, or someone who can handle it professionally? What skills, resources and tools do you need for your upcoming software project? How many developers do you need?
All of these issues matter (and that’s not even close to all of them) because the success or failure of your product is on you and the team you hire. There’s also training, planning and ongoing management, not to even mention the risk of trained employees leaving for another company.
Potential perils of outsourcing to a software house are possibly even bigger. What if the company you’ve hired is not able to produce a proper product? What if it costs you much more in the end than you initially outlined?
And even worse, what if it goes out of business or just flat out disappears after taking your money? Can you really ensure none of those things will happen and with what level of certainty?
So, if a software house can’t show you their recent portfolio, talks in general terms, or has complaints from previous clients, those are first caution signs. Be sure to find a company with a proven solid reputation, similar products to yours and real expertise.
Again, let’s start with in-house teams. Once you’ve assembled a great team with all kinds of developers you need, you are in full control. You have them fresh and ready for everything you might require along the way.
All of you together will be working towards a common goal, defining a common culture around your product or brand, and all your efforts will be aligned. If you have precise knowledge of every tiny detail and the progress made, you’ll have the ability to solve arising issues quickly.
With outsourcing, meanwhile, the major benefit is the access to the concrete skills that will be concentrated in a company you hire. They will provide talent, business input, programming, design, and maintenance of the software product, which will be more than enough. In other words, you pay them to do the heavy lifting.
Employee turnover risk is minimal, as good software outsourcing companies will have such issues covered to guarantee on-time delivery.
“You outsource to get a proven software development process
so you can focus on your own core competency.”
Steve Mezak, CEO of Accelerance, member of Forbes Technology Council
And now on to the key factor for most businesses, the cost. Both approaches involve expenses such as salaries/hourly rates, taxes, recruitment activities, office space, communication, management, traveling, oversight, etc.
Of course, in the case of an in-house team, the key point is salary, but remember that you’ll need more than 1 or 2 employees. The average annual salaries of IT experts, as of April 2018, according to Glassdoor, are the following:
- Web developer – $88,000
- iOS developer – $108,000
- Android developer – $98,000
- Back-end developer – $70,000
- Web designer – $56,000
- Project Manager – $80,000
- Data Scientist – $120,000
Add it all up and you might be paying hundreds of thousands of dollars per year for your team’s salaries only. Plus, if you’re not able to find the right people on your own, you’ll have to pay to an IT-recruiting agency.
And don’t forget about staff training, bonuses, insurance, paid sick leaves, taxes. Bottom line: an in-house development team is costly.
In regards to outsourcing, it might cost you less compared to in-house developers, though it is still a solid investment. Thinking of it as a cheap option would be a costly mistake – pun unintentional but accurate.
It’s similar when choosing the cheapest bidder. A typical software development house will charge you an hourly rate according to their estimation of your project.
As a rule, hourly rates are in the range of $50 to $150 per hour, and may be even over $200 in some cases.
In terms of total project costs, consider this: on average you’ll spend $6,000 to $15,000 to build a custom designed website (as reported by Website Builder Expert), and $150,000 to $450,000 to build a mobile app for business, according to Upwork research.
Comparison: major aspects
Moving on to summarizing our concerns about in-house versus outsourcing, let’s put together a comparison of the key aspects of both approaches.
Both in-house team and outsourcing require an understanding of skills, patience, and diligence. While outsourcing to a software house may seem more cost-efficient, having in-house experts hired will undoubtedly provide more benefits in the long term.
And actually, most businesses often use a mix of both approaches at the same time. Small companies, especially, tend to focus on sales, marketing, and customer support, while outsourcing tasks such as graphic design, web/mobile development, bug fixing, etc.
Concerns about in-house teams and outsourcing companies are subjective. As a business owner, you always have the control over any team to make things right. Top-notch development companies will always tailor their resources to meet your demands.
If you really have to choose between the two, consider three key things – budget, project scope, and deadlines. If you’re wondering how to find a proper outsourcing company, check our previous blog post.
If you plan to build something on a scale of Uber or PayPal, an in-house team would probably be the better choice because of the lasting commitment of the team members who share the company’s business vision.
And don’t forget that you are building a business, not just a mobile app or a website.