Blog

Custom software vs. off-the-shelf programs: how to choose

This is probably the question I'm asked most, phrased in a thousand different ways: "do I buy a program or build something custom?". And I'll be honest with you from the first line, even though it isn't what suits me best as a developer who makes a living building custom software: the right answer, many times, is "buy the program". There is no single answer that works for everyone — it depends, above all, on how closely your process resembles that of a "typical" company, and on how uncomfortable you're willing to be if it doesn't resemble it that much.

When an off-the-shelf program is enough

If your process is reasonably standard — basic invoicing, a simple CRM, accounting without too many peculiarities — a well-chosen off-the-shelf program is usually cheaper and, above all, faster to get running. You install it, configure it for a couple of weeks and it's working. That has enormous value that is sometimes underestimated: starting to work now, instead of waiting months for something to be built.

The key is not to force it. I've seen companies buy a program that "almost" fits and spend the next three years twisting the way they work so that it fits into the four screens the program allows. If you have to adapt the way you work to the program instead of the other way round, the initial saving can turn into daily friction for years — and that friction, multiplied by everyone who suffers it every day, ends up costing far more than the price difference that seemed to be saved at the start.

When custom software pays off

On the other side, there are fairly clear signs that an off-the-shelf program no longer works for you, however good the program is:

  • Your process has real peculiarities that no generic program covers well, and you've been trying for a while to simulate them with parallel spreadsheets, notes or manual steps outside the program.
  • You already use two, three or four tools that don't talk to each other, and someone on your team spends part of their week just moving data from one to another by hand, with the risk of error that brings.
  • The cost of per-user, per-month licences grows with the size of the team in a way that, beyond a certain number of people, makes no economic sense.
  • You need the tool to be used by non-technical people — end customers, salespeople on the road, technicians in the field — with a genuinely simple experience, which is exactly what off-the-shelf programs almost never offer without a considerable extra fee, when they offer it at all.

When I recognise several of these signs in a conversation, that's when I start thinking seriously about custom software. But even then, it doesn't always mean "build everything from scratch".

A middle ground almost nobody suggests at first: automate without replacing

This is the part I most like to explain, because it tends to be a surprise. Sometimes you don't even need to choose between the two options in a radical way. You can keep the off-the-shelf program you already use — the one people already know, with years of data in it — and build around it a small, very specific piece that connects systems or automates just the part that hurts most. Without migrating everything at once, without throwing away what already works, and without taking on the cost or risk of a large project that would also force the whole team to be retrained.

I mention this middle option less often than I should in early conversations, so I'll state it explicitly here: it is almost always the cheapest, fastest to launch and least risky option. It isn't the flashiest, nor the one that generates the most revenue for whoever builds it, but it is what really suits many cases, and I'd rather tell you even if it means less work for me.

If you have doubts about what fits your case best, let's talk and I'll give you an honest opinion — even if the answer is "you don't need anything custom yet, and if someone tells you otherwise, be a little suspicious".