Businesses large and small depend on software to exist and prosper. Many organisations choose to rely upon so-called off-the-shelf software and this can often be the most sensible choice. The point at which you may consider developing your own software solution may not be clearly definable, but this article is intended to help you decide when it may be a good idea to consider a customised solution. A future article will help take you through the selection of a suitable software supplier.
Dispelling some myths
While discussing the relative merits of custom software, it is probably worth considering some of the commonly held beliefs.
Custom software is expensive.
This is probably the most commonly held belief and on the surface it is reasonable to assume that it is valid. Naturally, when you compare a custom written system to a piece of software that can be readily obtained "off the shelf" (let's call it OTS to keep things simple), the price tag will appear to be very much in favour of the OTS software. However, when you consider that the OTS software is intended to serve a number of different requirements and it may not precisely match your business processes, the scale starts tipping in favour of custom software. When you further consider that OTS software may not capture the complete business process, or requires capture of excessive information (which may potentially be incompatible with your GDPR policies), it becomes clearer that the initial price is not the only consideration.
Ultimately, a well-designed piece of custom software can streamline processes, improve data capture and integrate far more closely into your business processes. It can do this in a way that is more meaningful to your users and the data that is gathered and processed is potentially more relevant and the output more relevant to your specific business.
More importantly, with modern tools and testing methods, custom software development can be extremely efficient and sometimes it is possible to make use of standard software components to build quite elaborate systems cost-effectively.
Over the lifetime of custom software, the savings can soon add up and the initial development cost when compared to OTS software's lower initial costs may not be as significant as you would first imagine. When you also consider that some custom software can be developed to extend and integrate with standard software, sometimes a hybrid solution can better meet your needs.
Custom software is complicated.
Whilst the process of creating a custom software solution may seem complicated, this is something that a good software development company will manage for you. Sometimes what is considered complicated is actually the process of breaking down your internal processes and analysing what each department and staff member does on a day to day basis. When designing a custom software solution you are often forced to consider your business in a way that you may not have done in the past and for some organisations this is not a straightforward process. However, the benefits of carrying out this analysis can benefit both the software development process and your business as a whole.
In terms of usability, a poor or inexperienced software developer may create a complicated system that requires significant training investment. However, a well-designed and realised system should work the way that users expect and should be immediately familiar. Naturally, users should expect to have to learn how a system works and how each function is relevant to their job function and that of other staff, but the system should compliment rather than work against their job function.
It is certainly the case that the internals of a software system may be quite complicated and require a good degree of technical understanding. However, much of this should be hidden from most end-users if the software is designed and written correctly.
Custom software locks me into one vendor.
When you purchase an OTS solution, it is tempting to think that you are not being locked into a specific vendor. In reality, you are unless the system is an Open Source solution. Whilst you could reasonably argue that OTS software suppliers are likely to be significant players and unlikely to "disappear any time soon", it has been the author's experience that this is not always the case with vertical-market OTS solutions. When selecting an OTS system, due diligence is certainly something that cannot be ignored. If you choose the right custom software developer, they will be happy to ensure that you have access to the "source code" (more about this later) to ensure that you are not locked into their specific solution.
We can make an OTS system work and don't need custom software.
This is probably a fair assumption to make and many businesses do manage to achieve this. What the author has noted is that in his experience, end-users start to adapt their use of the OTS system, perhaps by adopting inefficient work methods or by creating their own small customised solutions. The author has witnessed many situations where companies have made use of spreadsheets and small databases to achieve their objective but this often leads to fragmentation of data and duplication of processing. Then when shared access is required to such data, or multiple people need to update it, the limitations soon begin to show.
Why should you consider a custom software solution?
A simple solution may have significant positive effects.
It is tempting to think that custom software is complicated and extensive in its nature, as was mentioned previously. In fact, a custom solution may be a small piece of software designed for a very specific task. Sometimes, considering a very specific solution to a particular business process can have very significant benefits. Quite often, the smallest and simplest program offers the most significant time saving. The author has been involved with many small software projects that have had tiny budgets but have created significant time savings that have many times over offered a significant return on investment. It does not take long for a piece of software costing less than £1000 to repay its initial cost in the time savings that it realises.
Home grown solutions are not enough.
Consider one of the comments above, namely that users often make use of OTS software to achieve an objective that for one reason or another evolves into something that becomes common-use for multiple, or all, employees. The most common example is a spreadsheet or a simple database.
The author has frequently encountered some quite elaborate systems that involve spreadsheets, word-processed documents and sometimes end-user crafted databases. In the early days of such "evolved" solutions, they are relatively simple and achieve some quite specific objectives. Over time, they grow and interdependencies become more significant until sometimes you reach a point where the "system" is more in the way, than solving a problem. Because the evolved system grows to be overly complicated, or is incapable of providing effective shared access it begins to slow people down. Also, since many home grown solutions are not particularly resilient, an undocumented change or a modification of data that has no validation rules or controls in place can cause unnecessary interruption or knock-on effects. Putting permissions in place to ensure that certain people are only able to view certain data elements can also be impossible. Most home-grown solutions provide little or no control over data and its manipulation, and in today's GDPR age, being able to precisely control data access and updates is increasingly important.
A properly designed software solution will reduce duplication of data, streamline processes, allow multiple users to generate, update and remove unwanted data. It will also, if required, maintain correct version histories, access and update logs. It will do so taking into consideration various usage patterns and performance requirements. This in turn reduces keying effort and ensures that ownership of the data is properly controlled but that those who benefit from use of the data have easy access as and when they require it. No waiting for a spreadsheet to be closed by another user. No loss of data through an inexperienced user without appropriate authority accidentally updating or removing information. No loss of data through accidentally copying one version of a file over another, etc.
OTS software never quite fits.
Most businesses that adopt OTS software inevitably find themselves adapting to fit the software. They also may end up paying for features that are never used, but are always in the way. Whilst some OTS software can be adjusted to your requirements, in the long-term it may well cost more than a well-designed tailor-made system. Should choose a package that is promised to be tailorable to your needs, market changes may remove this option when the original vendor ceases trading or develops new versions of the software that offer no significant benefit to you, serving just to add extra baggage by way of unused facilities. Even if customisation is an option, it may not be possible to implement exactly what you require because of certain constraints enforced by the software's design.
Custom software may be one of your greatest strategic assets.
No two companies are the same, but OTS software ignores the differences. One of your greatest assets, your staff, are able to take part in the definition of a custom software solution so your unique business intelligence can be modelled and captured in a way that transcends staff changes, promotions and wastage. As your business and the markets in which it operates change, your custom software is able to change with you and how and when is completely within your control. When you are involved in the creation of a software solution, it encourages you to think, be creative and consider the future. This increased self-knowledge in of itself can be a huge asset.
How can you tell that you may need a custom solution?
There are a few key indicators that you can look for. If you can answer yes to one or more of these questions, you could well benefit from a custom-built solution.
Do you ever hear people asking for a certain document to be closed so that someone else can access it? Do you find users have created their own systems to work around a feature or a lack of feature in your business application? Do you notice that the same piece of information is being keyed multiple times? Are there instances where you are entering data but you are unable to reach conclusions about that data? Is there a possibility that the data entered into your system cannot be audited? Do people change information without appropriate authority? Does your system allow changes to be made without appropriate validation? Do key members of staff understand systems that have been built and are they protective of this knowledge?
Protecting your investment
Choose the right supplier.
There will be another "opinion" article about this soon. Ultimately you should choose a supplier with the right experience who you can identify with as a strategic partner. Remember that smaller software providers can be as effective as the larger ones and don't fall into the trap of thinking that larger is better. Often, larger suppliers have significant overhead and higher staff turnover. The size of the supplier you need will generally be determined by the size of your project, the time-frame in which it is required, and the overall complexity.
Retain access to the source.
The first question you should ask any supplier is "Do I have unrestricted access to the source code?" When software is developed, it is written in human readable form and often translated into a form more readily handled by the computer system. The human readable form is called "source code" and without it, you lose significant control over your software to the point that if the vendor goes out of business, you lose your investment. Any agreement that you enter into for software development services should, at the very least, offer you a perpetual license to use the source code for your direct business purposes. The language of the license may vary and there may be additional costs to pay. This is offset by the significant advantage that you are in control and can move from supplier to supplier with greater ease.
Be aware that some software development companies may refuse to take over another company's source code. Whilst there may be valid reasons for this, it is often because they will prefer to implement a new system for you from scratch. Any good software development company will examine your source code and explain exactly the situation in clear plain English and will, whenever economically viable, take over your system.
Maintain active communications with your supplier.
A good working relationship relies upon good communication. Always ensure that you maintain active communication with your chosen software developer and keep them informed of planned business developments, changes in legislative requirements and anything else that affects your software system. Don't assume that your software developer is an expert in your specific business area. Whilst they will gain a natural understanding through developing a system with you, they are experts in software development. They will rely upon you to keep them updated and will provide feedback and advice upon changes that may need to be made to the software.
Take appropriate, regular, backups
It goes without saying that you should have back ups of the source code to your system and regular back ups of the data held within your system. As part of your system design you should also consider availability. How would an hour's downtime affect your business? Ensuring that your system remains available is another topic that we will touch upon in a future article.