Back to Insights

SaaS

Build vs Buy: When Custom Software Actually Makes Sense

A balanced way to choose between existing SaaS, internal tools, custom software, integrations, and a hybrid, without treating custom as the default.

Custom software is easy to justify with the wrong reasons. A product on the market is imperfect, so a new one should be built. Or custom software is easy to dismiss with the wrong reasons. Something already exists, so the operation should adapt to it. Both instincts skip the actual decision. The useful question is where the work is specific enough to deserve its own software, and where a tool that already exists is the responsible choice.

Buying and building are not moral positions. They are different ways to spend time, money, and attention. Most organisations end up with a mix. The point of a framework is to choose the mix on purpose.

What you are really deciding

Start from the operation, not from a feature list. How often does this work happen. How many people touch it. What goes wrong when the tool fits poorly. Is the way you do this work a competitive difference, a customer experience you are willing to be judged on, or an internal necessity that should be as standard as possible.

A poor fit has a cost even when the subscription looks cheap. People re-enter data, maintain side spreadsheets, wait on workarounds, and train every new hire on the gap between the tool and the job. A custom build has a cost even when the first version looks focused. Someone has to design it, run it, secure it, change it, and keep it alive after the original project team is gone. Compare those costs over a few years, not over the kickoff meeting.

When existing SaaS is the right answer

Buy when the problem is common and the process can live inside a product many other organisations already shape. Email, accounting, document storage, ordinary customer support, payroll, standard infrastructure. In these areas the market product is usually safer than a local rebuild. It already contains the edge cases, the compliance work, and the integrations you would otherwise discover one by one.

Buying is also right when you need the capability this quarter and the process is still unsettled. A product you can configure teaches you the real workflow. Building before that understanding exists often freezes a guess. You can replace or wrap a bought tool later, once you know which parts of it are the constraint.

The honest test: if you stopped using the tool, would you rebuild its core, or would you sign up for the next well-known alternative. If the second answer is yes, custom software is probably a distraction.

When an internal tool is enough

Not every gap deserves a product. Sometimes a small internal tool, a careful spreadsheet with a defined owner, or a lightweight database is the right scope. The work is real, but it is narrow, the users are your own team, and the cost of a rough edge is low.

Internal tools fail when they are asked to become products without the discipline of one. No owner, no permissions, no backup, a single script on a laptop. They succeed when the boundary stays clear. A defined set of users, a place where it runs that someone can restore, and a decision that it will not be offered to customers. If customers depend on it, it is no longer an internal convenience. It needs the same care as any other operational system.

When custom software makes sense

Custom work earns its place in a few situations, and they are more specific than “our process is unique.”

The operation is central to how you deliver, and the available products force a shape you have already confirmed you cannot use. Not a preference about navigation. A structural mismatch: the object you handle does not exist in the tool, the permissions model cannot express who may do what, or the path from request to completion cannot be represented without daily manual repair.

Or you are offering the software itself as the service. Then the product is the business, and renting a generic stand-in only postpones the question of what you actually provide. Even here, custom does not mean custom everything. Identity, payments, email delivery, and infrastructure are usually bought. The part you build is the part a customer would recognise as yours.

Or the integration tax has exceeded the build. Teams sometimes stitch five products together with exports and brittle automations, and the stitching becomes the system. A focused custom application, fed by a smaller number of bought services, can be the simpler estate. That is a reason to build the coordination, not a reason to rebuild the accounting ledger.

Integrations and the hybrid

The most common good answer is a hybrid. Buy the systems that are commodities. Build the workflow that joins them where that workflow is the actual product or the actual operation. Integrate at a boundary you can name: an event, a record, a status, a file. Give one system the authority for each kind of data. If two tools both believe they own the customer record, you have not integrated them. You have created a reconciliation job.

Hybrids fail in predictable ways. A sync with no owner. A two-way update that loops. A field mapped once and then changed only on one side. Treat the integration as software, with failure handling and a way to see what did not cross. A zap that nobody can explain is not an architecture.

Also decide what you will not integrate. Connecting every tool because it is possible spreads your operational data into places you will not monitor. Prefer a few stable boundaries over a complete graph.

A practical filter

Work through the choice in this order.

Can a product you can buy already do the job with configuration, at a cost you can accept, including the cost of adapting the process a little. If yes, buy it. Adapting a non-essential process is often cheaper than owning software.

If not, is the gap small and internal. Build or adopt the smallest tool that closes it, and keep it off the critical path of the customer experience until it proves it belongs there.

If the gap is structural, ask what exactly must be custom. The workflow and the rules around your own objects are the usual answer. Payments, mail, hosting, and authentication usually are not. Write the boundary down before the project grows to fill the available ambition.

Then ask who will operate the result in a year. A bought product has a vendor, and you still own the configuration, the data, and the process around it. A custom system needs an owner inside the organisation, a way to change it, and a plan for when the people who built it are not the people who run it. If that owner does not exist, buying or a smaller internal tool is the more serious decision, even when a custom design looks cleaner on a slide.

There is no standing winner

Custom software makes sense when the work is specific, the mismatch with existing tools is structural, and someone will be accountable for the system after launch. Existing SaaS makes sense when the problem is shared, the product is already operated by a vendor, and your difference does not live in that layer. Internal tools and integrations cover the space between, provided their boundaries stay explicit.

The mistake is to treat one of these as a philosophy. Teams that build everything eventually own a private version of problems the market already solved. Teams that buy everything eventually pay for a stack of subscriptions and a layer of manual work in the gaps. The better outcome is quieter: standard where the work is standard, specific where the work is yours, and a clear line between the two.