The bespoke versus COTS (commercial off-the-shelf software) debate has been raging for many years. While it’s important to understand the relative pros and cons of each - modern technology blurs the edges a little. There are perhaps more options than ever before.
Choosing the right path is not just a case of balancing costs against benefits. Choosing the right development partner, particularly for a bespoke development, matters more than anything else.
Modern organisations cannot afford to compromise the way they operate. In an age of digital disruption, customisation is essential to reflect changing priorities. Software must adapt to employee and customer needs - not the other way around.
In an uncertain world, the need for agility is greater than ever.
A typical comparison
A common view is that bespoke development is more flexible - and that flexibility comes at a cost. Figure 1 shows relative pros and cons of bespoke versus off-the-shelf software solutions. While it’s important to consider the benefits and constraints, a simple comparison may not tell the entire story.
Your decision should consider your digital roadmap. Are you building a single application or is this part of a larger programme of work? Do your processes change often or are they relatively stable? How many users do you have and how is this number likely to change over time? Are you looking for a unique and competitive advantage in the marketplace?
Figure 1: Pros & Cons of COTS and Bespoke
The relative importance of the items in Figure 1 will depend on your situation. Comparing the number of advantages and disadvantages only makes sense if they have a direct bearing on your business objectives.
New and emerging technologies are providing novel ways to provide business value. Both in isolation and in tandem with tailor-made and packaged solutions. A combination of package and bespoke solutions may be a viable approach. This is a subject we will return to a little later.
Bespoke is all about the right partner
Bespoke development has the potential to provide many business benefits for your organisation. The aim should be to deliver value early and often by collecting feedback and using it to improve your system. This can only happen by working in close collaboration with a trusted development team. A group of people who can understand your needs and translate them into actions. With the right principles of engagement in place, a strong relationship will deliver excellent value for money.
The journey is a fundamental difference between a tailor-made solution and a package. A development team will be with you from the outset. A product team may well produce future releases, but a large part of their journey is complete (before you get to meet them).
Products must cater to a wide and diverse user group - taking inspiration from many areas of the market in which they operate. In comparison, a bespoke system focuses on a discrete set of users, catering for their specific needs. This does not always mean starting with a blank page. A well-designed solution will integrate with existing services and systems to share information and responsibilities.
Where does Low-Code fit?
Low-Code platforms provide a way to design and develop business applications without writing any code. Instead of coding, a set of visual modellers allows users to create business workflows in the form of simple process diagrams. In this way, non-technical stakeholders can understand what is going on and contribute throughout the entire development process. The added benefit is that the process flows you create act as documentation for your system.
Low-Code can create software solutions anywhere between 2 and 10 times faster than manual coding. Using Low-Code reduces the delay in deploying the first release of your system. It also provides a flexible mechanism for implementing and delivering additional features, at short notice, for your business and customers.
Many organisations are adopting Low-Code to get all the benefits of a bespoke solution, along with significant gains in productivity. These technologies provide another option to help you derive value from digital services. The Gain more by doing less white paper describes the benefits of Low-Code in more detail.
It's no longer a case of one or the other
The days of single choice decisions are long over in terms of digital services. With a smart strategy, many services can communicate with each other to provide a consistent overall process. A bespoke framework can glue different capabilities together so that users receive an intuitive and coordinated experience.
It may be possible to extend your COTS system by integrating it with external services. If suitable API (Application Programming Interfaces) exist, this can cost far less than customising your product. Be mindful that creating functionality by customising a product may take far longer than doing the same with, for example, a Low-Code platform.
Figure 2 shows 2 ways to change the functionality of a COTS system. The first relies on customising the product where possible, this can incur significant expense. The second option combines several external services that can integrate with a COTS system via one or more APIs (Application Programming Interface). An API allows two applications to communicate with each other by sharing data. Validation will report unexpected errors during this communication process.
Figure 2: Adding functionality
COTS software is still a valid choice for many scenarios. Common activities that do not differentiate your business are suitable candidates. Software as a Service (SaaS) solutions provide some level of customisation - although it comes with a high cost. Some vendors are creating modular services to allow customers to select only those features they need. Still, many of the issues that exist with on-premise systems remain.
From a bespoke perspective, starting with a blank page may leave you too much ground to cover. If you have tight deadlines, 3rd party services may help to reduce your effort. Thinking about your options at the start will save you lots of time downstream.
So what's the best way forward?
When it comes to build or buy, your choice may not be straightforward. At least now, new technologies give you broader and less binary options.
Start by building the right team to help you succeed. Technology is an enabler, not a solution - it is people that will achieve your most difficult business goals. Understand your objectives and create clear success criteria to help you measure progress. Creating the right development environment will allow you to change direction when necessary. This means you can begin your journey without worrying too much about what’s waiting around the corner.
Beyond that, the following points may help you on your journey:
- Understand the true costs of building and buying software, including license models, implementation, change management and maintenance.
- Consider the risks inherent in purchasing software and how it may use your data. You won’t be able to fix bugs or add features as easily.
- Use development skills to build what truly differentiates your business. Buy software for the commodity functions that every business needs.
- If at all possible, take an iterative approach where you can deliver value early and often. Reduce your requirements to those items that are critical and only add new features when you desperately need them.
Make a rational decision that is driven by your business needs and not what feels right. Review the pros and cons in Figure 1 and determine the impact they have given what you want to build.
No matter what you choose, it is how you implement it that determines success. And that all comes down to great teamwork.
Please get in touch if you would like to learn more.
This article was originally published on Matt Matters' blog: Build or Buy - a modern viewpoint.