When your business takes the step of custom-coding an app, a new website, or an e-commerce store, a choice rears its ugly head. Do you hire a full-time programmer in-house, or a software development agency? There are pros and cons to each option, and the right choice depends on your business needs.
Pro: A Software Development Agency Is An Instant Team
When contracting out your development, you get a ready-built team. And that’s probably the main reason to go with an agency over in-house. Building great software is difficult, and hiring one, or even two in-house engineers isn’t actually enough.
Developers need designs to work from, so you need a web designer. Managers provide sanity checks and ensure focus over feature creep.
With an agency, you’ll have a ready-to-roll team with a designer, developers, and maybe most importantly, a project manager. That means oversight. But it comes with a cost.
Con: The Costs Are Higher With An Agency
With that team comes a cost. Plus, you’re also paying a premium for the agency’s overhead and profits. Agencies are significantly more expensive than going in-house.
It can be argued that it’s worth the costs, and I don’t necessarily disagree, but depending on your company’s cash flow, it might make more sense to hire in-house.
And if you do hire in-house, you’ll move slower at the start.
Pro: You’ll Move Faster With An Agency
If you’re going with in-house, as mentioned earlier, developers need designs. So you’ll need to source a designer. Then you’ll also need to hire the developers yourself. That means recruitment time, interviews, onboarding, etc. Plus, there’s the HR complexity too.
Agencies are experts at ramping up quickly. They already have the team. And critically, they’ll be great at prototyping, designing, and creating specifications for the developers to work from. You’ll be able to get started within days, whereas hiring in-house can take months.
Con: Transparency Is Non-Existent
Look, with an agency, you’re hiring the company, not the developer. That means you don’t always know who is writing the code. In my experience, I’ve started a project with US developers only to see them switched out for low-cost “outsourced” programmers halfway through. But the savings don’t get passed on to you, the client. The agency reaps the benefits.
And yes, this bait and switch can lead to worsening quality and a decrease in productivity. But because you’re unlikely to switch to a new agency mid-project, you’ll find yourself stuck.
When working with an agency, get up-front commitments on what happens if a programmer leaves.
Con: Your Codebase Will Suck
Not at first. And no, it doesn’t mean agency developers are poorer coders than other programmers. It’s just a matter of incentives. See, an agency has a project, and that project is finite. And whether they’re being paid a flat rate or hourly, the agency is usually trying to finish as quickly as possible.
Over the long run, each programmer has no concern about maintaining the codebase. While they’ll begin with the best intentions, the pressure to move fast will force them to incur technical debt. And that debt is passed on to the future programmers who might be hired after them.
In-house developers want an easy life over the next few years. The technical debt they take on today will still be their problem in a year. While this often leads to slower progress, it also translates to a more maintainable codebase overall.
Agencies Work Until They Don’t
It may sound like I recommend going in-house, but I actually don’t. If you don’t have the internal skills to design and manage a technical team, then in-house isn’t the route to success. At least, not at first. Here’s why.
If you’ve got a long-term project, but want to move fast, then the best solution is to combine the best of both worlds. Start with an agency, and after about 8 months, begin to transition to in-house.
Every software development agency I’ve ever spoken to will even help with the interview process of the in-house replacement. The trick is to work with an agency knowing their pros and cons, and planning for the when you’ll move to in-house.