We advocate for outsourcing software development and in-sourcing the key strategic skillset of product management along with an in-house emphasis on training and support.
But sometimes we’ll get pushback based on the cost of retaining external developers, especially when the organization is getting significant developer invoices on a regular basis.
But there are a couple reasons that outsourcing software development makes good sense.
The first is that the financial argument for hiring internal developers is probably misleading to begin with. Salaries and associated costs like benefits and facilities are often the most significant organizational expenses by a long shot. It’s just that as a department leader you might not come face to face with those personnel costs on a monthly basis. Whereas every time you receive that external developer invoice it can feel like a significant hit from your department’s “elective” budget.
Sure, paying that invoice might feel expensive. But what are the realistic alternatives to get the work done that your organization needs delivered?
Some organizations might consider hiring a less experienced developer for less than the total cost of outsourcing work to an experienced one. But if you think your needs aren’t that complicated and any junior leaguer should be able to do a sufficient job without consequence, you may be underestimating the difficulty of the work — or the costs and implications of messing it up.
And even if you could hire an experienced developer, that may sound like a better idea than it usually turns out to be. Is your organization qualified to judge your developer’s choice of platforms or languages? To do code review in order to ensure long term quality and viability? To know how to manage or develop that person’s skills as a member of your staff? Or are you just planning to hire someone who seems qualified and hope everything somehow works out?
By contrast, when you retain an external developer or firm, the expectation should be that the work quality is high to begin with, that there is qualified oversight of that work in place, and that the knowledge and skills of their personnel are keeping up with the cutting edge in their complex realms. A good external developer is keeping on top of the very latest developments in their technology, always honing their skills, and in the case of a firm, is providing both technical and project management oversight to deliver what your organization needs at a high level of quality, reliability, and robustness. In the right external developer relationship you should be getting high quality, well-honed, ever-improving expertise along with ongoing quality control and quality assurance.
That’s not to say that every external developer is going to deliver at the level of quality you need. Finding and maintaining the right external partner relationships is an entire art unto itself (a post detailing this is coming). But finding one is a necessary part of the equation, and unlocks a far better path towards the quality of technology you need compared to attempting to build that capability in house.
So yes, that external firm’s hourly rates might appear high. But if you’re losing heart every time you receive an invoice from a skilled external expert who is helping you deliver at a level of excellence on your organization’s specific needs and dreams, you may be missing the point entirely. Expertise takes time, direction, and focus to achieve. This is the game you’re in. Can you afford to play it clumsily?