Justifying custom software development

As consumers we are often faced with the choice of off-the-shelf or tailor-made products. Usually, it’s not too difficult to choose.

‘Off-the-shelf’ is the norm when we need something quickly, affordably, and when it does the job well enough for our needs.  Although, the ever-increasing number of options available to consumers these days is a double-edged sword when hoping for a quick decision on which product to buy.  Software is no different in this respect.

However, when we have very specific needs or standards that are important to us, off-the-shelf can seem to be too much of a compromise to warrant the cost, so we start considering if extra cost might get us something that would be better value in the long term.

This choice is not easy when choosing software, where we can grab something that will meet 80% of our requirements at a moderate price or invest in the perfect solution.

Not unlike buying a bike. There is a huge range of bikes for all purposes at all prices. Accepting variations in quality and durability, they all generally perform the primary function, getting a person efficiently from A to B.  It’s when we want to get from A to B in a very specific way, that specialisation starts to add cost. On road, where speed is key, aerodynamics and weight improvements add cost while compromising on comfort.  Off-road, the needs to handle steep hills and rough terrain, change the design of the bike completely. As off-the-shelf bikes get more expensive, their performance improves to meet these specialist needs.  But even costly off-the-shelf bikes need some adaptation for riders to get the very best performance; a change of saddle, different bars, or specific gearing.  At this point there is a strong case for considering a ground-up custom build rather than accept any compromise.  Costs are likely to be similar but instead you get a perfect fit, rather than an adapted fit.

This concept of adapted fit vs. perfect fit is where we return to software.

So, when is custom software development the right choice?

When you don’t have the same needs as everyone else

For many common business processes, there’s a good chance off-the-shelf software will do all you need with an 80% fit; document management, holiday approval, even accounting.  But when your processes are unique to you and key to your competitive advantage, 80% is not enough.

When you have unique processes in place

It may not be obvious from the beginning but when you select any off-the-shelf solution, it has the core business processes already embedded. You can adapt it slightly in some cases, but you may need to adapt your business to work well with the software.

Contrary, when you have well-designed or hard-to-change processes in place and you are not able to quickly find a product that will fully support them, a custom solution is a good choice.

The same principle applies to the features. A product has usually a closed feature set and adding even a small tweak may be difficult, costly or impossible, whereas custom software is extendable and scalable by design.

When your processes must be widely adopted and followed exactly

You may have a clear idea of how your business should run, but if the defined processes are not being carried out correctly, or are not adopted by your teams, they will provide little value.

Software is there to facilitate and drive efficiency in the business processes.  If software impedes efficiency and adoption, it is working against you.   Custom development can ensure that efficiency and user experience are prioritised for your processes.

While technology should not define the needs, we often find that through the analysis and design activities, custom development projects can provide valuable insights into the business processes and how they can be adapted to work better.

When you would like to start small and grow

With off-the-shelf you pay for all the features at once, even if you don’t need all of them.  Choosing the right size of the solution to meet your current and future needs can be tricky to determine. You may end up with a costly mammoth from which you use just a fraction of features or with a lightweight solution that quickly struggles to meet growing needs for performance and scale.

With a well-designed custom solution, you can start with the high value core features, and add more and scale as needed. With this approach, costs can be spread over a longer period and investment in further development can be made when its value to the business will be immediately realised.

And there is golden rule here. If you don’t have enough fund to invest right now, cut some features and not the quality. It is a false economy to try to save the budget on analysis or testing.

When you have enough time

If you need something up and running tomorrow, you should not consider custom software development. It won’t be ready tomorrow; it won’t be ready the next week and may even not be ready the next month. The process of custom software development has many stages and to be done properly, it takes time. Not only the time passing, but also the time you and your team should spend involved in a collaboration with your partners.

The rule is simple here: the more you get involved, the better the result will be.

When you can invest

Custom software development is initially more expensive because you pay for the specific features you need to work exactly as you define. Features need analysis, design, development and testing. Before features can be implemented, the partner needs to create the framework of the system, including user and access rights management, error handling, logging, the mailing engine, etc. A skilled partner will incorporate reusable components when possible, but their reuse usually requires some adaptation.

And then all of this is sold once – to you!

This investment brings benefits.

In most cases, you will own the software. You can modify it; and you can sell it. You can even replace your partner, while continuing to use and evolve the software.

You can modify and add features as you need. This is by far the biggest advantage over an off-the-shelf product. As the world around us is constantly changing a key requirement may be identified at any time. Owning a custom software lets you ask your partner to implement a new feature and you are done. With an off-the-shelf product, you may have to accept a compromise for your solution.

One of the most underestimated benefits of custom software is hidden in the early stages of the development cycle. At the beginning, you should sit with your partners and discuss your requirements and business processes. When these meetings are moderated in the right manner, they help you understand your business processes better, and address the gaps. The resulting specifications may go beyond the list of features and their details and can include accurate definitions of the required business processes.

When you look beyond the horizon

The higher starting price, compared to the off-the-shelf product, can be a deal-breaker but if you consider the full lifetime over which the advantages of custom software can be experienced, then the total cost of ownership (TCO) may be comparable or even lower.

A minor requirement, that was not covered from the beginning by your new software product, may evolve into a mission-critical feature. And with no ability to modify your software, you may be forced to throw away your investment and start again, paying double for the rest of the features.

All in all, custom software development is not cheap, and it requires an investment of effort on from partners and the business to design, build and deploy.

However, in the right circumstances and with the right approach, it is worth every penny.

Watch out for future posts with insights on choosing between no code, low code and code first solutions