Should You Build New Software or Buy It?

You need a serious piece of software to help run your business—an Enterprise Resource Planning (ERP) system. Maybe you’re replacing what you’ve got, or maybe you’re outgrowing your paper processes. You’ve looked around, but you don’t see anything for sale that exactly meets your needs. And now you’re considering building your own.

Many, many companies have faced this decision. Should you buy something off the shelf that sort of fits your needs, or should you pay the big bucks for something custom-fit to your business?

There are pros and cons to both approaches (You can read about them here and here). But how do you weigh them in your particular case?

At the end of the day, the decision comes down to cost and control. You have two options:

  • More Control (& More Cost) – You get to define your process and then make custom technology/software that does exactly what you want.
  • Less Cost (& Less Control) – You select the best possible existing technology/software for your use case and then subordinate your process to the technology.

Cost and control rise in tandem—the more control you want, the more you’ll have to pay for it. So the question is…

How Much Are You Willing to Pay for Control?

When determining a high-level direction for a software build vs. buy decision, I recommend working through the following set of steps.

1. Figure the Cost to Buy

Identify an off-the-shelf system that’s a decent fit. Talk to the vendor and get a quote for implementation. At this step, I always assume that the final product I’m buying will be less ideal than the story told by the vendor’s sales team.

2. Estimate the Cost to Build

If we assume your ideal system has a reasonable amount of complexity, the custom software cost more than the off-the-shelf software solution. In my experience, assuming you hire an experienced external team to build your software, that difference can cost from twice to 20 times more.

(The developer of the off-the-shelf system is able to amortize the cost of the solution across tens or hundreds of clients within a similar industry. Their system will provide more functionality than you need, and it will be generically built for your industry. You’ll find both of these annoying, but the cost saving is advantageous.)

To make a rough guess on the custom software development cost, multiply the cost of the off-the-shelf solution implementation by 10. That means that a $10K off-the-shelf system will cost $100k to develop custom capabilities, or customizing a $100k system would cost $1MM.

Ten times is a huge difference. Is the juice worth the squeeze? That depends on how much you value control.

3. Gauge Your Need for Control

Different organizations have different needs for control. When thinking about your need, I’d consider these questions:

  • How difficult would it be to modify my workflow to match a technology platform that was developed generically for my industry? How much would I spend internally making these personnel adjustments?
  • How much value do I put on future flexibility to change and modify my workflows based on the way my company evolves?
  • Are there parts of my internal workflow that create a competitive advantage for my company? If not, do I anticipate discovering some in the future?

Use these questions try and quantify the value that you’d derive from having more control.

4. Compare & Evaluate

Compare the estimated cost of custom software with the value you’d get from having more control.

  • If the cost argument is clear (not enough value in having control), then the choice is easy. Buy the off-the-shelf solution.
  • If the control argument is clear (enough value in having control), then the choice is easy. Hire a firm and build a custom solution.
  • If you’re having a hard time deciding, listen to your gut. It’s telling you that you’ll be happier in the long run with the custom solution.

Once you've evaluated the questions above, you might want to consider what kind of business problem you're looking to solve. Here at Atomic, we typically see three types of problems. Each problem benefits from a software solution, but only one warrants a custom software investment.

1. Software for Common Business Problems

Generic software problems are experienced by many people across multiple business verticals. These types of problems are commonly hiding within more complex situations that appear to warrant custom software.

For example, say you’re an insurance agency and you want a software application to better communicate with your field agents (questions, photos, etc.). You use email for communication today, but that’s a pain because no one ever knows where to send the emails, and working with your email client on your phone is tedious—especially if you need to send a bunch of photos.

On the surface, a custom app sounds like a great idea. The field agents will enjoy the experience, home base will have better control of message flow, more information will likely be collected, and it will be easier to sort through message history. Hopefully, this will also lead to a better and more differentiated experience for the end client.

If you take a step back, stop thinking about the implementation of your problem (e.g. a mobile app that does X,Y, and Z), and instead consider the broader context, you will come to the conclusion that you have a generic collaboration problem. Your problem that felt very unique is in fact something that many people face. Collaboration problems are common.

When you come to this conclusion, the next question to ask is not, “How can I solve this problem?” but instead, “How have others solved this problem?” The first place to consult is Google. Half the battle of consulting Google is knowing the right question to ask.

For software solutions to generic problems, try the following search query: best X software. In this case, replace X with “collaboration.”

This phrase tells Google that you want results for the best-in-class collaboration software platforms. It’s highly likely that one of these solutions will meet the majority of your business requirements. It may not work exactly like you want, but:

  • It’ll be much better than what you’re doing today.
  • The cost will be minuscule compared to building custom software.
  • You’ll be able to use it immediately.
  • There will likely be a large network of specialized contractors who can help if you need it.
  • You won’t be responsible for updating the system as the world changes.

For generic problems, I always recommend that you start with an existing solution. Starting with generic software doesn’t prevent you from going custom in the future.

2. Software for Not-Quite-Unique Problems

Not-quite-unique software problems are problems with needs that are specific to your business, but generic within your business vertical. They require you to consider the broader business context within which you operate.

For example, say you’re a restaurant and you want to provide a rewards app for your patrons. Your business goals would be to establish and reward loyalty, drive visits during slower times, and improve the patron experience by making it easier to make reservations, see deals, pay bills, etc.

The entire experience feels very custom. You’ll certainly want the app to be branded to your restaurant, and feel differentiated from your competition.

Once again, if you zoom out, you’ll realize that such an app isn’t really a differentiator for your business. The features that you’re looking to provide are the same that any restaurant would want to provide to their patrons. You could certainly hire a quality firm and design and develop an amazing app, but you likely don’t have the budget to invest in a custom software project that could easily cost $100,000+.

Luckily, you don’t have to. Since software can be easily replicated and shared, it’s common for software companies to serve a specific vertical and provide white-labeled solutions to that vertical. A white-labeled solution is really just a generic solution that’s branded and customized to a specific client. These types of companies are able to leverage the IP that they’ve established within a certain vertical and provide a more affordable solution to many clients (e.g. amortize the cost of platform development across many customers).

These solutions will cost more money than generic software solutions. However, compared to custom software, they will still be a fraction of the cost, delivered more quickly, and probably updated with some sort of yearly support fee.

For not-quite custom problems, try the following search query: white label X app. In this case, replace X with “restaurant.”

The term “white label” is important because you want to brand the app. With this example, it’s also important to use “app” instead of “software” because you’re looking for a mobile experience. Using “software” instead will likely provide options for a white-labeled point of sale system, another not-quite-custom problem.

Just like the generic problem case, starting with a white-labeled “not-quite-custom” software solution doesn’t prevent you from going custom in the future.

3. Software for Unique Problems

Custom software-worthy problems are specific to your unique business process, or a component of a solution that you’re selling to your clients (new value).

Please note: Just because you have a unique problem doesn’t mean you should build custom software. Remember, custom software development is expensive. Many times, unique problems have limited scale and should be solved with people instead. When evaluating whether you should solve your problem with custom software, ask yourself this question: What’s the impact of not doing the project?

I like this question because it gives you another way to think about the pain you are addressing, or the opportunity of value creation that’s in front of you. If the pain is low or the opportunity isn’t that significant, it’s likely that the cost of a custom solution will always be prohibitive.

My personal rule of thumb is that the value a custom software solution creates either through cost savings or revenue generation should be at least 3-5x the cost, or the consequence of not doing the project should be significantly impactful to your existing business (e.g. if we don’t invest, our current offering will lose value).

Custom software is a powerful and magical tool. When leveraged correctly, it can generate immense value, but when it’s foolishly used, it can be a financial mess.

Atomic is happy to help you identify the type of software problem that you’re looking to solve. If your problem is custom, we’re an outstanding partner to lean on. If you problem isn’t custom, we’ll honestly share our thoughts and send you in the right direction.

Tell Us About Your Project

We’ll send our latest tips, learnings, and case studies from the Atomic braintrust on a monthly basis.

.test-table .table { width: 50% } @media all and (max-width: 500px){ .test-table .table { width: 85% } .table thead { display: none; } .test-table .table tr { display: flex; flex-direction: column; margin-bottom: 5px; } .test-table table th { content: attr(col); font-weight: bold; padding-right: 20px; width: 40vw; display:inline-block; vertical-align: top } .test-table table td { word-break : break-all; width: 40vw; text-align: center; } }