“There’s no black-and-white answer to that question.” That’s the gist of what most businesses will hear when they’re deciding between going in-house or outsourced with their software development project.
At first, such an answer may seem frustrating. If you’re getting sound advice, however, it’s absolutely the answer you want to hear. Because the question of in-house vs. outsourced software development is something only you yourself can answer. With so many variables, personal preferences, and pros and cons in play, the only right answer is the one that’s right for you.
So how do you decide? Start by looking within. Ask yourself what’s important to you, what your priorities are, and what kind of time and resources you’re willing to devote to the effort. Be honest, and be realistic. Then, weigh the pros and cons of your various options against those needs and priorities.
Distillery has put together a guide to help you weigh some of the most crucial variables in your decision-making process.
When Is In-house the Right Option?
Going in-house may be the right option for you if the following are true about your business:
- You have the resources to recruit and hire the development staff required to build your product. Typically, a development team requires a minimum of six professionals filling disparate roles, including a senior engineer, a product manager, one to two developers, a user experience (UX) designer/architect, a user interface (UI) designer, and a quality assurance (QA) engineer. Do you have time, energy, and money to devote to their recruiting and hiring? Do you have the financial resources to keep them on staff? You should also note that hiring top-tier talent (let along top-tier engineering talent) requires significant recruiting time and effort — whether HR is doing the recruiting or you’re handling it yourself.
- You want full control over each and every detail of your software project. In-house development means you’re holding all the strings all the time — for better or worse.
- You want in-house staff to be available for 100% of your post-launch development needs. Launch is only the beginning. Post-launch, you’ll need to maintain your new product. That includes rolling out updates and fixes, assisting customers, and laying the groundwork for a strong future for your product.
What Are the Pros and Cons of Going In-house?
Let’s start with the pros:
- It can be less expensive than hiring a software development outsourcing partner.
That said, whether that’s true for your business and your project depends on many factors. What level of professionals are you hiring? What kind of compensation and benefits packages are you offering them? For how long will they be on your payroll?
- You have the ability to build your team from the ground up. You have optimum control over team composition. You can personally hand-pick the professionals you’ll be working with.
- You have absolute assurance that your team is solely dedicated to your project. Sometimes, outsourced resources are assigned to multiple projects simultaneously.
- Going in-house gives you the highest level of control over the vision and direction of your product. If you require absolute visibility and control over every single aspect of product development, this is how you’ll get it.
When considering these pros, however, it’s important to remain mindful of the potential cons of going in-house. These cons include:
- You have to compete for top talent. With software design and development skills in high demand across industries and geographies, the competition can be steep. Will the compensation and benefits you’re offering be sufficient to entice top-level professionals?
- You have to find professionals with the skill sets you need. Software design and development professionals can have highly disparate skill sets. For example, if you need a developer who’s highly proficient in Java, you don’t want to hire someone whose real expertise is in Python. Do you have a sufficiently strong grasp on the technologies and expertise that will be required for development? Do you understand the significant differences between DevOps engineers, frontend developers, and backend developers? Will you know how to hire for the skill sets you need?
- You’ll incur significant costs in recruiting and hiring an in-house development team. You’ll be on the hook for providing highly competitive compensation and benefits packages, office space, and company-specific training for each professional.
- You need to find work for them once development is finished. As mentioned above, you’ll certainly need some help with post-launch activities. Will that be sufficient to fill their time? Do you have other projects they can work on? No employer relishes paying for downtime.
- You need to worry about retention. Can you count on your team to stick around? How much would losing a senior developer or designer mid-project set you back (i.e., wasted time, effort, and money)? What costs will you incur in finding and training a replacement? How will departures impact the rest of the team, or delay development?
- You don’t have any guarantees your team will work well together. Your new team is an unproven one. Will they collaborate well? With their personalities be complementary?
- You need to make sure you can scale your development team sustainably. What happens when you need a new skill set later in the development process? Will your budget support an additional hire? What if one of your hires is no longer needed? Will you be prepared to find different work for them, or to let them go?
When Is an Outsourced Team the Right Option?
Engaging a fully outsourced team may be the right option for you if some of the following are true:
- You’d prefer to have a pre-assembled team that includes everyone you’ll need for the project. Most outsourcing partners can provide you with everyone you’ll need for product development.
- You don’t have the time to invest in shepherding the whole process yourself. Since you’re delegating the bulk of the work to your outsourcing partner, your time is freed up. Your project gets done while you stay focused on running your business and working toward other strategic priorities. If your time comes at a premium, this can be a significant consideration.
- You want a team guaranteed to have prior software development experience. Generally speaking, outsourced teams will — from top to bottom — be experienced with product development. In particular, from an engineering perspective, they’re likely to have experience developing products similar to yours. They’re also likely to be experienced in working with one another.
- You don’t want to risk any last-minute scrambling to find the experts you need. One of outsourcing partners’ biggest value propositions is the ability to quickly tap into expertise in nearly any technical stack.
- You’d benefit from working with a partner and project manager that can guide your process. If you lack significant experience with product development, aren’t technical, or simply want to ensure you’re making the best possible choices along the way, an outsourced team can be a huge asset for your process.
- You only need assistance with one or more phases of a project, or it will only be a short-term project. Hiring someone in-house would be cost-prohibitive for such short periods of time.
What Are the Pros and Cons of Using an Outsourced Team?
Again, we’ll start with the pros:
- Development doesn’t take up as much of YOUR time. Again, while you’ll remain involved throughout, your outsourced team will carry most of the load.
- You know your team will work well together. Most likely, they’ve worked together on past projects.
- Your team’s familiarity with the software development process will lead to more efficient and cost-effective development. They’ve completed many other projects for many other clients. They’ll use that experience to run a thoughtful, smooth, value-focused process.
- You’ll have access to top talent that may not otherwise have been available to you. Outsourcing effectively removes barriers like location and long-term interest.
- You’ll have ready access to in-depth expertise in nearly any area. Outsourcing partners have pros across technical stacks, programming languages, and software design specialties. Whatever need arises, they’re likely to have an expert who can jump in to help.
- You can quickly scale your team up and down as needed. As your needs change, so can your team. You don’t need to hire experts long-term if you only need them for a single phase. Similarly, when a new need arises, you can easily contract the help you need for the duration you need it. It’s a way many businesses are able to ensure sustainable growth.
- You’re not paying for overhead or downtime. That burden is carried by the outsourcing partner.
- If you work with a locally based partner, you can benefit from regular in-person meetings. While a locally based team isn’t crucial, it can be helpful, enabling a faster learning curve. In-person meetings can efficiently help your outsourced team get up to speed on your vision and objectives.
- You benefit from diverse perspectives. Tapping into new perspectives is a driver for innovation and competitive advantage in nearly any industry.
Bear in mind, however, that there are cons worth weighing against the benefits outlined above:
- You will have less control over the day-to-day work. It’s not called “outsourcing” for nothing. While you will still be involved at regular intervals, your assigned project manager and lead engineer will retain the most visibility and control over your project. As a result, you’ll want to ensure that you have ready access to and frequent touchpoints with those team members.
- Any development partner will be simultaneously contracted on other projects. Will you get the focus your project needs? Will you be treated as a priority? Though practices vary among development partners, software development professionals are often working on several projects at once. Make sure to inquire whether your team members will be dedicated.
- The potential for long-term support varies among development partners. Will they be available to help you with post-launch support? Are there limitations on that availability, or on the services they can provide?
- Your outsourced team members will have to invest time in learning about your business. Though many outsourcing partners (including Distillery) have established processes to streamline and expedite onboarding, it’s an expense worth considering. When you begin researching and interviewing potential partners, make note of whether they’re willing to invest time in learning about your project before discussing pricing and proposals. Are they interested in learning about your specific needs, goals, and objectives? If a potential partner is invested in your project even when there’s no guarantee of work, you can have greater confidence they’ll be invested in your success at every point in the development process.
How Can You Find the Right Development Partner for Your Needs?
Of course, if you decide to move forward with an outsourcing partner, you need to find one that’s right for you. You need to do your homework, ask the right questions, and listen for responses that make sense for your business. At a high level, when evaluating partners, it’s important to consider their:
- Pricing — Can they provide pricing that fits your budget? How often will they bill you? Will they charge you for overtime? Make sure you know what to expect, and that you’ve assessed the full picture of your financial obligations to your new partner.
- Process — Do they use a reliable, repeatable, and thoughtful process that ensures organization, consistency, and quality control? Will they use Agile project management to help you build smart, iterate, test, learn, continually improve, and drive speed to value? Can they explain how they’ll use their process to drive value for your specific product and business?
- Past work — Can they show you relevant case studies? How did they make each project successful? Can you speak to references? The right outsourcing partner will have a successful track record of past projects that are at least somewhat similar to yours.
- Cultural/personality fit — Even when you use a fully outsourced team, you’ll be expected to stay involved for the duration, providing input and feedback. Having good team chemistry and cultural/personality fit helps greatly in creating an effective, efficient process. Have you been able to meet specific team members you’ll be working with? Do you feel your people will work well together? Have they asked about your preferences on working style, communication, and collaboration? Do they understand your business, your industry, and your issues?
Once you’ve examined the pros and cons of both options relative to your unique needs and preferences, it’s time to ask yourself a few more questions. The answers to those questions may give additional weight to some of the pros and cons listed above. After all, your project doesn’t exist in a vacuum. Instead, it’s an important component within the bigger picture of your business.
Accordingly, before you make your decision, you should answer the following questions about your strategic objectives, priorities, future plans, goals, and internal capabilities. These questions include:
- What are your goals and expectations for the product you’re building? What does success look like for you? For example, what are your monetization goals (how much and how quickly)? Is the product geared toward achieving internal process improvement? Are you starting by building a minimum viable product (MVP), using research and testing to steer future efforts?
- What platforms are you launching on? Will there be others? Does each platform require a unique set of developers, or a new set of skills? How many specialists will be required? Depending on your vision for your product, certain platforms may require additional resources (e.g., programming languages, technologies).
- In which geographies are you launching? Will there be others? What are your capabilities for supporting those geographies? Different geographies skew toward different operating systems and devices. For example, though iOS is huge in the US, Android carries ~85% of the market worldwide and is the clear choice in emerging markets.
- How much involvement and support do you foresee needing now, a year from now, and five years from now? How does that align with your internal budget and resources? What can you realistically afford? How much flexibility do you have to scale your team?
- Are you a technical or a non-technical company? What knowledge or personnel can you bring to the table? Where are your knowledge or personnel gaps?
After carefully weighing these considerations, which path is right for your business? Again, the answer to that question is highly dependent on the variables specific to your business, and on your personal preferences. The only right answer is the answer that’s right for you. For some companies, going in-house will be the right answer. For others, an outsourced team will be the most effective, efficient way to achieve their goals.
A Third Option: Using A Combination Of In-House Outsourced Resources
For yet others, it’s worth considering a third option: using a combination of in-house and outsourced resources. Many outsourcing partners (including Distillery) offer a co-sourcing option, wherein you can use their top-tier senior engineers to augment your existing in-house team for as long as you need them. This model offers its own compelling set of benefits, including the following:
- Increased access to top talent. Add experts to your team for only as long as you need them.
- Reduced risk for your business. You don’t need to make a long-term financial or employment commitment to have experts join your team. In addition, if a co-sourced team member doesn’t work out, you can simply ask for a replacement.
- Increased control over day-to-day process, strategy, and creative vision. For the duration of your project, you have greater control and visibility over how your project is getting done, as well as the direction it’s headed. You have a heightened ability to keep your vision and strategy front and center for both in-house and co-sourced professionals. It’s likely also easier to control and redirect the development process as needed.
- Competitive edge. Again, diverse perspectives help to drive innovation.
- Increased flexibility. As your budget, plans, needs, and priorities change, so can the makeup of your combined in-house and co-sourced team.
Whichever path you choose, make certain your new outsourcing partner and/or in-house employees are well-equipped to help you move your business forward. They should be well-versed in your business objectives, and committed to ensuring your long-term success. Remember: The only right answer is the answer that’s right for you. If someone is trying to tell you otherwise, they may only be focused on their own success.
Still have questions about which path is right for you? Let us know! We’d be happy to walk you through the pros and cons as they relate to your specific project. We’re always honest and transparent about our capabilities, so if we’re not the right answer for you, we’ll tell you that upfront! Your success is our purpose.
Additional Helpful Resources
Software Development Insights and Leading Practices
So You Have an Idea for an App… Now What?
STOP! Before You Build Your App, Answer These Crucial Questions
Three Essentials of Successful Software Development: Finding the Right People, Processes and Tools
Emerging Technologies and Trends
Inspirational Startup Success Stories – Selected Distillery Clients
Product Manager Andrew Reinstein has been with Distillery since 2015. With a background in business, user experience, and product strategy, Andrew brings a balanced perspective to product development focused on addressing the needs of the business as well as the user. A Certified Scrum Master, he loves the process of creating a new product from nothing more than an idea. In his free time, he loves trying new foods (he’ll eat just about anything), traveling (Greece is a favorite, and Iceland is next), watching sports (NFL, MLB, NBA), and spending time with his family.