What is Bespoke Software?
This seems like a relatively easy question to answer right? In fact, in many ways, it is:
Bespoke software is software designed and developed from scratch to meet the specific needs of a user of that software.
So, it would be easy to say that we have answered that question and move on. It is worth digging a little deeper though. First, we will jump into some other software types and then come back to look at three important parts of our definition that differentiates it from them.
Off-the-Shelf Software
Off-the-shelf software is term used for software you can buy and use now. The shelf is probably virtual nowadays as most software is now purchased online. It can either be installed locally on your machine or server, or more commonly accessed through your browser with no need to install anything.
Off-the-shelf software has to meet enough needs of a lot of users. It therefore tends to offer a wide range of features that have been built in a generic way as possible.
Customised Software
The word custom is often used interchangeably with bespoke in the UK but we still like to separate customised software out into its own class. For us at least, we think of customised software as the middle ground between off-the-shelf and bespoke. That is taking an off-the-shelf package and adding some bespoke code to make the software more closely match the specific needs of a specific user.
Lots of off-the-shelf software is designed to allow this customisation. For example, going back as far as 1993, Microsoft added in the ability to modify Excel functionality using the Visual Basic for Applications language (or VBA). It proved so popular with developers looking to add to or modify what a spreadsheet could be used for that within a few years it had been rolled out to nearly the whole MS Office suite.
In recent years, especially with the growth of cloud software, you will often hear the term API used. API stands for application programming interface and is where developers of off-the-shelf (and often bespoke) software give controlled access to parts of their software to modify and extend functionality.
Bespoke Software
So back to our original definition and what separates it from the other two categories we use.
Bespoke software is software designed and developed from scratch to meet the specific needs of a user of that software.
You can see that we highlighted a few terms in red that we think are key:
From Scratch:
A lot of other companies’ definition of bespoke software will not use this distinction. One reason could be that it is so rare to develop something from no lines of code. Modern software development often starts with a framework (like .Net Core in a lot of our work). These frameworks add thousands of lines of code to a project before a developer writes any of their own.
The other reason is that a lot of people do not separate out customised software as its own category. It is easy to see why, after all the software written to customise the off-the-shelf software is bespoke software.
In other words, if you like our approach of having three categories of software then you need this term in the definition. If you are happy with just off-the-shelf and bespoke then you can leave it out.
Specific needs:
The keyword here is “specific” as apposed to the general needs that off-the-shelf aims to fulfil. Bespoke software is not trying to be everything for everyone, it should meet the defined requirement of a user. In fact, a lot of bespoke software projects are stared when off-the-shelf shelf either does not or cannot be customised to meet a specific need or follow a specific process.
A User:
In this definition a user should be thought of as more a type of user rather than a single person. We specialise in bespoke software development for B2B. Therefore for us “a user” can be the whole organisation, several related departments within an organisation or just one department or team. In B2C it might be a group of people with the same requirements or common interests.
For such a simple question we managed to dig quite deeply into the topic. We are sure to come back to this definition in some of our upcoming posts on bespoke software.
Full Metal offers both bespoke software development and software customisation and if you need either of those then please contact us.