Often customers, or potential customers, will come to us with a pre-supposed view that they need to build a piece of software to solve their business need. We believe this is true only in a handful of cases.
In the first instance, organisations should look to buy existing software to meet their need. Only in cases where the problem the organisation is aiming to solve is sufficiently unique, and where the expected commercial advantage in doing so justifies it, should an organisation look to build a bespoke software system.
We often observe that organisations can overestimate how truly unique their problem-space is. The software industry has been churning out software at a good rate for about thirty years now. The odds of the problem you're trying to solve having not already been solved are becoming less likely.
As a first port of call, try to understand what your competitors and peers are using to solve similar issues in their organisations.
Unless you identify at this stage a likely significant commercial advantage in building something bespoke that your competitors won't have access to, it is generally inadvisable to build a new software system.
The nature of buying software off the shelf often means it may not work exactly as desired, or provide every feature that an organisation believes it needs.
We'd encourage a pragmatic view in looking to accept compromise when purchasing off the shelf software, understanding that particularly the cost benefits can outweigh these downsides.
As a general guide, we would push customers to prefer several smaller pieces of software that achieve a smaller number of goals well, over an all-in-one behemoth that can be bent a little bit to meet most, or all, of an organisation's needs.
Where the software provides good APIs to allow it to play nicely with others, you often find a better user experience is provided by these smaller, lightweight applications, that choose to do one job, but do it particularly well.
For many organisations, the valuable software to consider building bespoke is around the 'middleware' - that is the software that stitches together their various software systems.
This can often be the truly unique part of a businesses software platform - the point where various systems converge to solve the problems of that organisation.
Maintaining software that you build bespoke can often be much more expensive than that of off the shelf software. Depending on the licensing model for bought software, you may receive updates for a known period of time, or pay for upgrades and support on an annual basis.
If the software has a large number of customers, you'd hope to benefit from economies of scale, with the cost of maintaining the software borne by the many customers of the software.
It's almost never correct to expect that software you build will require zero maintenance. It's close to certain that bugs will crop up during the running of the application based on parameters that weren't covered in test. Software seldom runs in isolation, so it's likely external changes will influence how the software behaves, and changes in the devices that customers use to access or run the software can be a constantly moving goalpost.
When you build your own software, you'll also need to be aware of the costs to run or distribute the software. Many examples of modern software are delivered on an "as a Service" basis, which offers a turnkey solution to adopting software systems.
It's very much a case of buyer beware when commissioning your own custom software to be built.
Too often we see customers embarking on the journey because they've assumed there is no other sensible course of action.
Sometimes that can be the case, though we'd like potential customers for custom software to be sure that they're clear of the business case for building something bespoke, and that case shows there's a clear commercial advantage for doing so.