How To Figure Out Whether You Should Build Software Internally Or Outsource To A Partner
Software is never truly finished—even when a product is delivered, the work isn’t over.
Continuous maintenance and enhancements driven by user needs are part of the equation. For that reason, when you bring in an external partner to develop your company’s software, you’re often bringing them on for the long haul. So, it’s important for every company to comprehensively understand their software development options.
When you want to build software, there are three main routes you can go: building or using an existing internal team, hiring temporary freelancers, or partnering with a firm (like mine, Tandem).
Of course, each option has its pros and cons. Here’s how you can figure out the best approach for your next software development project.
First, know that when you’re talking about companies looking to build software, there are three types.
1. Companies where software is the product.
Think Facebook and Microsoft. These companies rarely work with outside agencies for obvious reasons.
2. Companies where software drives the product.
Take Groupon, for example—they don’t sell software, and you wouldn’t call them a “software company,” but their business is software-based. Companies like Groupon typically have internal development teams but still usually outsource some software work to outside firms.
3. Companies where software isn’t integral to the product, but still helps the company run on a daily basis.
A client of ours, a medical device company, for example, had never needed an internal software or research and development team because their product has, historically, been very simple. But that changed recently, which presented a prime opportunity for us to, essentially, be their R&D team. We’ve been able to develop a strong symbiotic partnership with them—that’s the mark of a good client-vendor relationship.
Why do people hesitate to hire an external agency?
- Their cost expectations are off. Some companies expect their “simple” project to cost much less than it actually will. Others assume developing software through an agency always costs an exorbitant amount (it doesn’t)—and fail to even look into what their project would really cost.
- They assume internal software development would be more cost-efficient. But a lot of the time, companies don’t know what it really costs—in both time and money—to hire and train a development team to build software internally. Especially for companies without the existing necessary infrastructure, hiring externally is almost always more cost-efficient.
- Feeling like the external team just won’t “get it.” Of course, there’s always the fear that miscommunication and disconnect with an outside vendor will leave you with software that doesn’t do what you need it to. And that does happen—when you choose the wrong vendor. Good agencies always make sure to comprehensively understand client needs and wants. They operate as an extension of the client’s internal team.
- They’ve been burned while working with agencies in the past. I’ve heard plenty of horror stories involving companies trusting poorly-run agencies with important projects—with predictable results. Even still, a good agency and a good client don’t always align culturally—it’s important to remember that different firms have different politics and use different communication styles. You have to find a partner that’s a good match for your culture.
- Companies worry they’re going to get trapped in a relationship they can’t get out of. A good vendor avoids overly binding contracts. I want clients to stay with us forever—but only because they genuinely appreciate the partnership and our services, not because they feel like they have to.
What are the benefits of hiring an external agency?
- You don’t have to take resources away from your internal team to build software. For example, companies like Groupon have internal innovation teams focused on coming up with new ideas and strategies. A lot of the time, companies will let an outside firm take a first stab at executing an idea before the internal team executes a full analysis. In other words, hiring an external agency empowers an internal team to conserve time and resources so they can focus on higher-level processes.
- You can take advantage of skill gaps (when your team has expertise in one area, but not another). Say your company is full of great web developers, but lacks mobile developers. In this case, of course, it makes sense to work with an outside firm specializing in mobile development.
- You’ll have the software much faster. Building an internal team can take months or even years, and development itself can take ages. But hiring an external agency with a proven track record and processes is like taking a well-meshed team off the shelf and plugging it right into your company.
- You’ll benefit from a firm’s UX experience. This is an area where internal teams typically don’t stack up, simply because they tend to focus solely on software development. External agencies almost always have more robust UX design abilities.
- You don’t have to invest in full-time employees for a short-term project. Of course, it doesn’t make sense to hire a team of full-time people for a six-month project.
- You gain an outside viewpoint. Having more people involved in a project grants you, through their collective experience, the ability to account for more pitfalls and reveal more opportunities to create a better product.
What are the potential drawbacks of hiring an external team?
- You might not have the same visibility into an external team that you would with an internal one. But sometimes internal teams are just as opaque, especially when an internal development team suffers from a disconnect with leadership.
- Outsourced work can become a black box that no one wants to touch. In other words, outsourced code can be tough for an internal team to work with—especially when it’s complex or knowledge transfer wasn’t done properly.
- If you don’t handle the transition from the external team to the internal team managing the software well, technology can atrophy over time. When you neglect this process, your internal team winds up unable to update or fix the software, and over time, it becomes unusable. Good agencies prevent this by involving the internal development team from the outset and explaining the development process to them at every step.
If you’re working with an experienced agency—and both parties make a concerted effort to establish a strong relationship—there are very few drawbacks to hiring an external partner. But know that both of those requirements are musts.
Inexperienced clients often wind up with an inexperienced firm simply because they don’t know how to conduct a thorough vetting process. Vendors need to be transparent from start to finish—that means being honest about your firm’s abilities and transparent when issues arise during development.
But ultimately, every company needs to make the right decision on their own when choosing to build software internally or with a partner. And when the decision is made to hire an external firm, the first step is ensuring a strong, healthy relationship from the get-go.