Tech people love building tech solutions and will tell you that theirs is better than anything off the shelf. That doesn’t mean you should listen to them, at least not every time. Here are three reasons why, more and more often, custom software development is not the best approach.
If you’re like me and you love software development, or you have a business full of techies who have a strong passion for it, then you’ll always be tempted to address every business process problem by designing your own custom software solution. Because, after all, it’s going to be cheaper, more relevant, and more adaptable, isn’t it? Think again. Sometimes it doesn’t make sense at all to develop the software solution that you’re after. Here are the three main scenarios when that’s true.
I started developing commercial software more than 30 years ago. Unfortunately, I don’t get as much time to sink my teeth into it anymore. Although, I still get involved with more difficult challenges at work when I can. I also enjoy doing hardware-level home automation type programming at home. I mention this to show that if I am biased then it will be on the side of developing custom software. However, in the last few years I’ve found it increasingly difficult to motivate custom development.
It used to be a much easier decision. There was so little commercial off-the-shelf software available that almost all requirements required custom software to be developed. If existing software was available, it was often prohibitively expensive compared to developing your own. When existing software was available and wasn’t too expensive, it was often very difficult, or sometimes even impossible, to customise. So, if there wasn’t an exact fit, including considering future requirements, then it meant going back to the drawing board.
So, here are my top three reasons NOT to develop custom software right now:
1. Today, there are fewer limits on customisation
Severe limits to how much you could customise an off-the-shelf solution used to be a major reason to go custom. However, this gap is getting smaller.
As mentioned earlier, it was previously difficult or sometimes even impossible to extend an existing system to suit current and future business requirements. These days, many contemporary systems include workflow and customisation (or even configuration) functions built into the software. Many modern off-the-shelf systems also include extensive Application Programming Interfaces (API’s), using various architectures. These allow communication with other systems and enable custom developed code to extend the existing functionality. Some more recent off-the-shelf systems even allow customers to extend the functionality themselves, bypassing the need for potentially expensive development. This functionality has come a long way and it is surprisingly easy now to configure some of these systems.
That said, this is not always the case, you would need to make a call based on the requirements (current and future) and on which existing systems are available, and how extensible they are.
2. Today, there is less of a risk of falling behind
Interestingly, this used to almost always be a strong case for developing custom software. In the past it made sense to have your own team of developers. This allowed you to continuously adapt your software to your changing needs. However, programmers are very intelligent and have highly specialised skills, which makes them expensive resources. On the other hand, commercial off-the-shelf software can have hundreds or even thousands of customers, and/or users, all paying maintenance or subscription fees. This allows the software vendor to make continual improvements to the software. Sometimes these improvements are based on keeping up with changing infrastructure, such as server and client software versions. Many times they are feature enhancements which allow the product to stay competitive amongst alternative offerings and relevant to the users of the systems.
The pace of improvement that a large team like that can achieve is pretty much impossible to duplicate with a small team creating custom software. Even companies which can afford a larger team of developers would need to weigh up the costs. In addition, even a large in-house team can’t compare to a vendor team of hundreds or thousands of developers. Gradually the custom software will fall behind the commercially available offering because of budget and time limitations. This forces the in-house team to continually prioritise based on resource constraints. Not only that, but many times the infrastructure updates (for new server and client operating system and database versions) will have to take precedence because of their urgency. This ends up resulting in an ever-expanding to-do list of functionalities and a slow response adapting to change.
As always, in the right situation, custom software development does make sense, but costly resources should be directed at carefully chosen high-value problems that can make a real difference to the organisation.
3. Lower time and cost, compared to custom software
As mentioned earlier, good developers are not cheap and it’s good to point their abilities at the problems that will deliver the most value. Very often the business requirements will not be entirely clear in the beginning and will be refined over time, as the problem is made clearer through iterations. This is a perfectly valid approach and will require the developers to refine the custom software to adapt over time. Although this is a good thing in terms of progress, it would be very unfortunate to go through this long and expensive process and end up with a product which is similar to an existing offering that could have been obtained at a lower cost.
A typical myth is that custom software is quicker to adapt and can make a business more agile. A few years ago, this would have been true, especially where existing software was not easily customisable or extensible. However, even though it seems counterintuitive, commercial systems can, surprisingly, be far more agile than custom developed ones. This is because you can enable additional functionality immediately by licensing and turning on an additional module in the product stack of commercial off-the-shelf software. The business can implement this very quickly and often without requiring any development.
An example from my own experience is a company that traditionally sold products but wanted to move into delivering services. With a custom system, it would have been necessary to develop all the service-related functionality such as ticketing and project and service management. However, they discovered that with the right off-the-shelf software, the functionality could simply be enabled and implemented. The high cost of development of a custom solution would have impacted budget and would certainly have lengthened the implementation time, especially in the case of a busy in-house team trying to keep the lights on.
When all is said and done, there are still good reasons for developing new custom software. For example, if there are no solutions currently available, or if there is only one solution which is therefore quite expensive. Another reason would be if you can in fact achieve a competitive advantage by doing something in a way that existing systems couldn’t easily be customised to achieve.
The bottom line is, don’t only listen to your techies, whose passion for developing might sometimes obscure their vision.
At Prosoft, we continually evaluate the pros and cons of custom development and help our clients to ensure long-term value from the software we develop. For an honest opinion on whether you should custom-develop a solution – get hold of us and let’s see how we can help you.