Coming up with a great app idea doesn’t always mean that you are the app developer, or you have a team of developers with you.
Maybe your current development team doesn’t have the skill set needed to work on the features that your app is going to have or to leverage the needed tech stack.
Maybe you are a finance company that has got nothing to do with software development, but you want to launch an app for your services.
This dilemma is as old as the history of software and app development: should you hire an in-house development team, or should you outsource.
You will learn in this blog what are the pros and cons of going both ways: outsourcing your app development needs or hiring an in-house team of developers.
The following factors need to be taken into consideration when an app is to be developed:
- Technical expertise
- Domain expertise
- Development speed
- Quality control
- Security and confidentiality
- Investment factors
All these factors may have a bearing on your decision to go for an in-house development team or outsource. I will discuss every individual point vis-à-vis both the options.
What does Outsourcing mean?
Outsourcing means partnering with an outside agency or with a professional outside of your company to get a specific job done. Most of the time, the entire skill set, and technological tools needed to do the job are arranged by the agency or the person you are outsourcing the job too. You just need to specify what you want and then the outside agency or the person takes over. After the job is completed, you can both go your own ways.
Some benefits of outsourcing:
- No long-term commitment
- Easy to change the team
- A wider range of skill sets
- Cost-effective – you just pay for the agreed-upon deliverables
- Access to a global talent pool
- Minimal infrastructural investment
- Work can start from day one
What is in-house development?
You hire your own developer or development team. People involved with the project are your own employees or the employees of your company. You provide the infrastructure. If working remotely is not an option, you provide them with office space. Then there is health insurance, taxes, sick leaves and basically, every bit of nitty-gritty that is associated with employing someone.
Some benefits of in-house development
- You can keep a close watch on every aspect of the development.
- You can utilize existing resources to save money if they are already available.
- You give experience to your own team for future projects.
- Quick changes can be implemented there and then.
- Confidential algorithms and code remain within your organization.
Now let us discuss the implications of in-house development and outsourcing in terms of the various factors affecting your app development mentioned above.
Here you have two options: either go with the tech stack your development team is already comfortable with or, you select a tech stack according to the needs of your project and then either upgrade the skill set of your existing development team or hire some new team members.
Do you already have employees who can develop iOS apps? What about Android? What programming languages and design tools are they comfortable with for developing front-end and back-end?
Do they need further training and orientation? If yes, how much is it going to cost and how much time are they going to take and what is the guarantee that they will be able to optimally utilize their newly-acquired skills?
Do you also need a project manager, a product manager, a business analyst, an app store optimization expert, an app marketing expert and even a data scientist?
Of course, all these attributes are related to the nature of your upcoming app development project, but you may have to consider the above-mentioned expertise and capabilities while considering building your own in-house team of developers.
Technology is changing continuously, and very fast. You will need to spend a considerable amount of time and money keeping the skill set of your developers updated.
Availing the needed technical expertise is as simple as contacting the right app development agency and outsourcing your job to it.
You don’t need to worry about continuously updating the skill set of your developers because that is the responsibility of the development agency you are outsourcing your work to.
You neither have to invest in the tech stack nor the software/hardware infrastructure because that will be taken care of by the agency you are contracting for the job.
The challenge is – unless work is happening on-site – you won’t be able to supervise the team directly.
The agency might be managing multiple projects, so it may not be able to fully attend to your needs unless it has been specifically mentioned in the contract that the team will be working on your project full-time during the contract.
The biggest benefit of outsourcing is that the team of developers will already have lots of experience because just as you have outsourced your requirement to them, other organizations may also be outsourcing their work to them and hence, they have lots of experience developing apps, which, your in-house team may not have since it will only be working for a single organization.
Your in-house developers, naturally, may have more domain knowledge because they are continuously working in a particular environment.
For example, if you are in the business of installing assembly-line production units and you want to design an app that can monitor input-output, your in-house team who has already been working on different software apps to control different aspects of assembly-line production may be more in tune with what you need rather than an external agency.
Your in-house team will also be more sensitive towards your organizational goals and hence, will be able to streamline its development efforts according to those goals.
An external agency will be totally oblivious to what’s going on inside your organization.
Domain expertise and domain knowledge also motivate your in-house developers to stay within your organization. This enables them to gain more expertise, making them more productive for future projects. The more they learn about your industry, the less they want to move to an industry they don’t know much about.
When it comes to domain expertise, the external agency or the outsourcing team may be at a disadvantage compared to your in-house team.
The outsourcing team may take more time adjusting to your work culture and tuning its working methodology according to your needs. This, in turn, makes them take longer time completing your app.
Of course, there are some agencies that take up jobs only for specific industries. For example, being a financial planning firm, you may decide to outsource to a development agency that exclusively works for financial planning firms. In this case, it would be better to outsource rather than rely on your in-house team because the outsourcing team will have more experience because they have solved many more problems for different clients.
The in-house team of developers is always accessible to you. The team members can be trained and oriented according to the needs of the ongoing project. You can regularly meet them. Together you can brainstorm on new features and problems being faced.
In case there is a roadblock or some accountability issue, your in-house team is always going to be there because they are always going to turn up. This will also keep them sensitive towards your concerns. They know that every they must face you.
Also, there will be no time-lag. In case there is a problem, you can talk face-to-face.
The trust issue is always going to be there, in the beginning at least, if not always. If the outsourcing team is located somewhere else, maybe in another country, although initially, you can meet them, you won’t be able to meet them casually. Videoconferencing these days allows you to have face-to-face interaction, it is not same as sitting in the same room and sorting out problems.
But the good thing is, you are paying for the product or the service, and not to employ them, which is the case when you have an in-house team.
For example, if your in-house team is not up to the mark, you will be paying them month after month even if there are delays in the project. This will not be the case with the outsourcing agency because they won’t be getting money from you if they don’t deliver.
People working within your office might be more in tune with cultural issues and regional peculiarities because there is a great chance that most of the people working at your place may come from the same cultural backgrounds (although, in cosmopolitan cities, this might not be the case).
There will be no cultural clashes. It will be easier for your development team to understand, communicate and collaborate with each other due to familiarity and kinship.
On the other hand, if there are cultural and personality clashes within your in-house team, it will have an adverse impact on your project. Since all the team members will be in the same working environment, it will be difficult for them to work together unless the conflict is resolved.
Normally people working in the outsourcing agency are quite used to working with clients from different cultural and regional backgrounds and hence, they will be very easily able to adapt their working style according to your organization.
Nonetheless, there might be issues regarding professional attitudes and work ethics that may be totally different than what you have at your workplace. Again, an experience outsourcing agency may not have such problems with you.
Development speed can be greater when you have an in-house team because first, they will be solely working on your project, and second, in case there is an issue, it can be easily resolved by simply walking into the cubicle or room of the concerned person.
The resources can be limited, especially when you are not a dedicated development company. Software and hardware assets that a purely app development company may have might be lacking at your place and you will either need to acquire them, or arrange them for a limited period, slowing you down.
Replacing your developers might also be a big problem if they are not performing the way they should. Hiring and firing in-house staff is a very lengthy process and can also get you in legal troubles.
An outsourcing company may work faster because it is a dedicated app development company and hence, has access to all the needed software and hardware assets. Also, they are more used to developing cutting-edge apps using the tech stacks they have.
An outsourcing company – assuming it is an experienced agency – will already have well-defined development and ironed out processes and procedures like agile development methodology and daily scrums, that speed up your app development.
The distance and the disconnect may also prove to be a disadvantage. You cannot immediately confront the development team in case targets are not being met. In case there are problems they cannot be resolved there and then because working hours might be different or right now it is not possible to connect with the concerned person.
You are not concerned with the hiring and firing of the staff. The only thing you are bothered about is your app and it is the job of the outsourcing company to build you the app no matter what.
Scalability can be an issue with an in-house team because, as mentioned above, you cannot easily hire and fire people, and if you’re not a big organization, it is also difficult to reallocate people to different departments if they are no longer needed by your project.
The problem is the same on the other side of the spectrum too: what if you need to scale up the team? Can you easily hire new people? And even after hiring them, you will need to train them and orient them.
If you are a bigger organization, maybe you can borrow them from other departments. Using existing employees to scale up your project also saves you money because you are not hiring new IT, managerial or design staff.
Upscaling and downscaling with an outsourcing agency is just a matter of letting them know. You can even work with multiple outsourcing agencies for that matter. How much you can upscale is only limited by how much you are ready to spend.
Frankly, app development is just a small part of having a successful, functional app. You will need support, maintenance, and updates on an ongoing basis. Your app may also develop bugs that will need to be fixed immediately.
Such eventualities can be taken care of by your in-house team if it is your in-house team who has developed an app.
The problem may arise if your development staff who originally worked on your app leaves and the new staff doesn’t have the needed skills to take care of the problems.
An outsourcing agency will most probably sign a long-term contract with you after the completion of your app and this contract may also include maintenance, upgrades and bug fixing. If it is part of the contract, then it will be the responsibility of the outsourcing agency to take care of all these necessities and whether they have the old staff or new staff shouldn’t impact your app.
Most of the outsourcing agencies have well-established processes to train their new employees about the ongoing projects.
There might be a problem if the outsourcing agency doesn’t honor the contract or if it goes out of business, or changes its business direction, leaving you hanging.
Quality control can be better with an in-house team because you are constantly in touch with your designers and developers. Everything is happening in front of your eyes and every stage of the project is there for you to check.
You can decide what programming language to use, what libraries must be used for your requirement and how the control and flow of the entire project must move forward.
But then, the quality also depends on the abilities of your in-house team. How adept is your in-house team at implementing your vision and how comfortable the team is with the tech stack environment you want your app to be built in?
The outsourcing agency is working somewhere else, so you cannot monitor the development round-the-clock. You can only get updates according to the guidelines drawn in your contract. For example, if the outsourcing agency and you have agreed that the updates will be delivered every two weeks, then you will have to wait until you can have a look at the work and give your opinion.
Having said that, an experienced and capable outsourcing agency may have better quality control processes that they use with multiple projects to great success. They can use the same quality control processes on your project bringing you the expertise that you may not have with your in-house staff.
Security and Confidentiality
If there are great security and confidentiality concerns, then it is always better to either work with an in-house development team or call the outsourcing agency on-site to work.
With an in-house team, you completely own the code.
There might also be some secret algorithm you don’t want to pass on to an external agency.
But do you have the needed technology to protect your intellectual property right, your data or even your code?
Your domain and your hosting environment also remain within your organization.
When you start working with an outsourcing agency you will have to hand over all the needed information no matter how sensitive it is.
If the development team members from the outsourcing agency come to your place and work there, then all the code may remain on your machine but if the work is happening off-site, your code and sensitive documents will be on different devices and servers.
You may also have to give access to your domain hosting if the development team uses your server resources and upload the code directly from their place.
A big problem with this is that once you have handed the information over to the outsourcing agency, you have no control over it. They can always recycle your code. If they provide you with ongoing maintenance service, then they always have access to your domain hosting. Your formulas and algorithms may be exposed to people who can use them somewhere else.
The plus side is that usually an outsourcing agency works with multiple agencies and they are used to handling sensitive information with care and respect and they know legal implications of misusing that information. Since their reputation is at stake, they will always take care that your sensitive information is well-protected and taken care of.
Building an in-house development team is an investment not just in terms of hardware and software, but also in terms of building your intellectual wealth.
If you are a non-software development organization (financial consulting, for example) but you seriously want to get into developing a financial consulting app then it may be a better investment for you to build your own, in-house team of developers and also invest in a state-of-the-art software, hardware, and security technology. In the long run, you will not just be able to upgrade your app, in case you need to build more apps, you will have the wherewithal.
The only downside is that this investment might be an overstretch if building an app isn’t your long-term objective. Once the app is completed and upgraded a few times, the development process will reach a plateau and then, if you disband your team or reallocate it, it may be considered a waste of money and resources.
When you are working with an outsourcing agency the only thing you are investing in is a piece of the app that you will be getting by the end of the deal.
You can consider it a long-term investment if you plan to go on outsourcing your app development needs to this agency for years to come, as it happens with consulting companies like Accenture, Wipro, and Infosys with whom organizations have contracts that last for years.
Once you have a good relationship with an outsourcing agency, it’s a win-win situation – you have a partner who always delivers, and you can focus on your core business.
Cost is one of the most important factors that you weigh in when considering whether you should be working with your own in-house team of app developers or outsource. Ultimately, it all boils down to how much you are spending and how much you are gaining not just in terms of money, but also in terms of efficiency and dependability.
The app development team may have the following members:
- 1-3 app developers (including iOS and Android developers)
- 1 backend developer
- 1 UX (user experience) designer
- 1 App designer
- 1 project manager
- 1 product manager
The average yearly salary of an app developer is $81,000- $110,000.
A backend developer might be costlier, somewhere around $90,000-$120,000. The same might be the case for a UX designer.
You can add $30,000-$100,000 for an app designer depending on what sort of expertise he or she brings in.
Product manager and project manager may take home anywhere between $60,000-$125,000.
You also need to add insurance, benefits, maintenance, and taxes.
Right now, we are not adding the cost of technology.
Remember that the cost of building a team (or even outsourcing your requirement) depends a lot on the scale of your app, the needed expertise, and the sort of technology you intend to use. Technologies and skills with the higher learning curve and a greater degree of expertise naturally cost more.
As mentioned above, cost justifies in terms of investment. If you believe that your team will be working on your app for a long time and you will need quick response time and quicker updates and you are also planning on building more apps, then the overall cost is a good investment.
Once a person is employed by your organization you must pay a salary and other benefits every month, no matter how the person performs or how long he or she takes to keep his or her end of the bargain.
Considering the legal and human-resource costs involved in replacing fully-employed employees, most of the decision-makers try to avoid firing people unless they are pushed against the wall.
When you partner with an outsourcing agency, you are just paying for the finished product. You are not paying for app developers, backend developers, UX designers and project managers. You’re not even spending money on insurance and taxes.
Of course, the agency includes all these costs when it gives you an estimate, but you are paying just a part of the cost and even if the outsourcing agency is working with you for till the life of the contract, remember that it is not a recurring cost. For example, you don’t pay if the team doesn’t deliver.
As you have read above, both, building your own in-house team of app developers and outsourcing to an agency have their pros and cons, and which option you choose depends on how that option fits into your scheme of things.
The purpose of this blog post is not to pitch one form of app development against the other. Every organization has different needs. In fact, some organizations go with a mix of an in-house team and an outsourcing agency. You may also decide to go with multiple outsourcing agencies along with your own development team.
Both the options have pros and cons and since a clear-cut conclusion needs to be drawn, how do you decide ultimately?
In terms of cost, outsourcing obviously trumps an in-house team. It may also trump in terms of deliverability and technology if inherently yours is not a technology company.
Partner with an outsourcing agency if you don’t have long-term development plans and you just need a development team to quickly build you an app. You can also partner with an outsourcing agency if you temporarily need to expand the capabilities of your in-house team.
Building your own in-house team of developers makes sense if building your app, maintaining it, releasing updates, and even building more apps, is a long-term organizational goal.
Your goals and objectives will help you decide whether you want to go in-house, or you want to outsource.
What do you think about outsourcing the project and working with the in-house development team? We would love to get your take on this.
Dhananjay (DJ) Goel is the CTO at Alphalogic, passionate about technology, startups, game of thrones and coffee. He enjoys working on challenging problems with innovative startups.