Building Software: Should I Outsource or In-Source?
Building Software: Should I Outsource or In-Source?
If you’re here, you’ve likely made the big decision that you need a custom software solution for your business. Whether you sell high-tech B2B solutions or life insurance policies, software can be a key differentiator in your company’s growth, competitive advantage, and customer experience. And unless you’re seasoned in building and overseeing software solutions, the odds are kind of stacked against you: 65% of software that is created is never used. Perhaps even more critical than making the initial decision that you need a custom software solution is what you do next.
After deciding that you need a software solution, the next hurdle is deciding who will build it. In general, you have two options: hire an outside software solutions provider (commonly called “outsourcing”) or build an in-house team (we’ll call it “in-sourcing”). No matter which route you go, there are a few things you should know about the questions to ask, the roles that are critical to any software team, and how much you can expect to invest in terms of time and money.
Diving into this head-first can be a big undertaking, but don’t worry, we’re going to show you how to “Tech Happily” as we so affectionately call our process here at?Tech9. First up, let’s look at key questions you should ask yourself to determine if you’re ready to build an in-house software development team or if you should consider outsourcing instead.
A Self Assessment: Should I Outsource or In-Source my Software Development?
Is my budget permanent or temporary?
Not unlike any other business endeavor, the decision to in-source or outsource software development tends to start with money; however, the critical element here isn’t so much the?amount?of money in your budget, but what?type?of budget you have.
OK, so let’s say you have a permanent budget and the multi-year stability needed to invest in technology as a long-term fixture of your business. Money isn’t necessarily a concern, but now you need to ask yourself how software fits into your business and if you’ll be able to create an environment and vision that incentivizes and motivates a high-performing software team.
Is building software a core function of my business?
The question here isn’t just about asking yourself if software is important to your business. Nowadays, software is important to most businesses, but that doesn’t mean most businesses need to become software companies.
Is software?as important?to your business as your core services or offerings? It’s easy to get carried away and come up with all sorts of ideas on how technology will transform your business, and while technology is a game-changer for many companies, here are a few questions you can ask yourself to ensure you’re being pragmatic when determining if software is a core competency:
领英推荐
It’s also worth stating that just because you’ve decided software is a core competency of your business doesn’t mean that you absolutely must build an in-house team. Take the healthcare industry, for example. While the majority of healthcare businesses would answer “yes” to the above questions, most have decided to outsource software development because they are unable to answer “yes” to the following two questions.
Can I build a high-performing software development team?
Many companies underestimate the investment of time and resources associated with attracting quality software developers. It’s not all ping pong tables and mini-fridges stocked with Mountain Dew. And no, a high-performing software development team isn’t comprised of your cousin’s friend who works out of his parent’s basement. Quality software teams are just that –teams.
While individual talent is definitely a factor, software teams need a clear leader who establishes processes and motivates others –a Michael Jordan, of sorts. A lot of developers gather inspiration from working with other talented developers. You can’t rely on a single-man team or even a team with one talented senior developer surrounded by several junior developers who aren’t playing a vital role (à la Scottie Pippen). As it turns out, developers don’t tend to build their best software when there’s no one around to review it. This is one of many reasons why the cousin’s-friend-in-a-basement approach won’t work.
Another critical factor in attracting, hiring, and retaining top software talent is being able to sell them on your purpose as a company. This looks very different than getting buy-in from, say, a sales team. If you approach developers with a bunch of “rah-rah” motivational speeches, you’ll be met with a lot of skepticism. Developers want to know where software fits in the long-term roadmap of your company, what projects they’ll be working on, and if they’ll have a job two years down the road, after that project wraps up.
If you’re throwing your hat in the ring to start hiring software developers, you’ll be competing with top tech companies vying for the same talent. Will you be able to convince prospects that software is an integral part of your business, that you can assemble a team of talented developers and that your company’s purpose is meaningful to them? If so, then great! Now, let’s talk about what you need to consider when it comes to retaining your software development team.
Can I retain a high-performing software development team?
Developers and engineers tend to be highly inquisitive and value the freedom to self manage. In order to retain high-performing software developers, you have to constantly provide them with interesting problems to solve, and not just technology problems. For every system you’re building, the software team should be involved in providing solutions to the technology issue, but also the business problem behind the issue. The best systems are built when leaders allow software engineers to participate in solving tech and business problems alike.
Here are a few additional questions to determine if you’ll be able to retain talent:
Deciding between building your team internally or outsourcing software development is not always as straightforward as it seems. If after reading this, you’re still in doubt, it’s always best to outsource to a company that knows what they’re doing. They can educate you on the process, and if it makes sense for you to build an in-house team at that point, you can always in-source later. A lot of software waste –or what we call “scrapware”– happens when companies in-source without first understanding the complexity and ramifications of building an in-house team.