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.
- Permanent: If you’re making the decision to build an in-house software development team, you’re deciding to make software a permanent fixture of your company. This means you’re committing to a permanent technical budget that remains fairly consistent from year to year and can be counted on to meet your business’s technology needs. Are you thinking about making software a multi-year expense? Has your company made the decision to proactively invest in technology long-term? If yes, then your budget likely classifies as permanent.
- Temporary: Many businesses have the mindset that they’ll pay for a software project, then decrease or turn off spend after the project wraps. If this is your mentality, then you should heavily consider outsourcing over building an in-house team. Additional indicators that your technology budget is temporary: your budget is not consistent from year to year, you’ve been impacted by budget cuts, you have other adjustments that will not roll over into the next fiscal year, or you just need a project completed and expect your maintenance costs will be zero or close to it (spoiler: there’s no such thing as zero-budget custom software, but more on that later). For those with a more fluid and temporary budget, outsourcing makes more sense than setting out to build an in-house team.
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:
- Is our ability to develop software a key differentiator against our competitors? Is this what sets us apart in our industry?
- Do our customers choose us because of our software?
- Does software play a critical role in increasing internal efficiencies within our organization?
- Is software critical to saving on company costs?
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:
- Do I have a technical leader that will lead and inspire a technology team?
- Will I have a consistent flow of technical challenges that will engage creative developers?
- Is our company’s vision, mission, and purpose compelling to software developers?
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.
Stay tuned for Part 2 of our series, where we’ll take a look at the critical parts of every software development team.