Software has evolved hugely over the past 10-20 years, moving from MS-DOS based command line entry, to C# based Windows Apps, to Web-based apps utelising Adobe Flash, and now everything is all about serverless apps and microservices. One things has stayed true though, a good app drives efficiencies in any business – the question is, do you have to build that software from the ground up to give yourself that edge over your competitors, or does buying off the shelf do the job?
Over the years I’ve worked for businesses with huge UK-based development arms, selling software, I’ve worked for a business utelising software from offshore development teams and for businesses who prefer to buy off the shelf. Having not come from a development background my self, I’ve always leaned to ‘off-the-shelf’ solutions, mainly because its easier to support when there is a plethora of Google results when you come up against a tough issue and you don’t have the costs of in-house devs on your payroll – but does buying off-the-shelf, give you any advantage over your competitors?
So how do you make a decision like this? What do you need to think about prior to building or buying?
- Is the functionality you’re trying to achieve unique?
- Are you trying to build something like a CRM – what is unique functionality wise that something like Salesforce couldn’t do?
- Is this unique functionality logical – are you just using archaic processes that force you into customising existing software or building yourself?
- To build software from scratch requires time, and time as the old saying goes, costs money. Nowadays a lot of software is OPEX or subscription based to get you up and running quickly, so very little upfront cost. Building yourself is often more expensive up front, but you as a business are in charge of those costs. More developers = quicker, Less developers = slower (but cheaper too!)
- Touched on this above, but do you have a deadline for this functionality to be available? Whether this being quicker to market, or for something regulatory, time can often dictate the buy vs build.
So what are the pros and cons of building software yourself, and what are the challenges that you’ll come across – here’s my thoughts!
BUILD IT: Pros
+ You define the requirements and functionality of your software, and EXACTLY how it works. It fits into your processes and delivers exactly what you want
+ Ongoing features are not ‘feature requests’ to a third party, they are put into your roadmap and done according to your priority, not the other 1000s customers
+ The technologies and format of the solution is up to you. Want it only to run on Mac – your choice. Want it to have a MongoDB backend – go for it. The decision sits with you.
+ Support (assuming you keep hold of the knowledge) is quicker. You have the people who understand your software from the ground up, and you can control when updates are pushed out, not be dictated to by a software supplier.
+ Integrations – well these are easy – you choose what you want to integrate it with, and do it. No paying for third party integration partners, you can do it yourself.
+ The big one – competitive edge. If you’ve noticed a gap in the market where a well written piece of software can generate you revenue, or a larger market share, and nobody else is doing it – or doing it well, then build it is the way to go.
BUILD IT: The Cons
– Upfront cost. You need to employ developers as a bare minimum, but many people have QA and product managers, these are ongoing costs that the business will have to incur in addition to any licenses for particular toolsets, whether that be hosting or database licences (see Oracle DB or Microsoft SQL…)
– Time. No big shock here, it takes to define, develop, test and make live, vs a purchase of existing software. You could argue that this gap is not as large as there can sometime be modifications to off-the-shelf software to fit the business’ requirements however typically build takes longer.
BUY IT: The Pros
+ As stated above, a lot of software is subscription based and therefore has a very low initial cost, aside from potentially training, most software businesses allow you to get up and running pretty cheaply
+ Speed of deployment. Typically software companies have a team to onboard your business, whether that be understanding your processes or configuring the software to suit your business, most modern software allows you to get up and running quickly.
+ New features and ongoing maintenance. New features, security bugs, testing is dealt with by the software vendor – you don’t have to think about it. And because (hopefully) they have lots of customers, you get the benefit of all the features requested by other customers, likewise bugs found by other customers.
BUY IT: The Cons
– Long Term Costs. If the software vendor decides to increase their price for support, or subscriptions then you have to pay them or move to a competitor (back to square 1!).
– Customisation. Most software will allow you to customise their software a little to suit your business, but only within the framework they’ve allowed. Anything outside that (if they allow that) are typically chargable, which in todays landscape often lands at £1000 per day. Its often cheaper and less time dependant long term to change your processes to stay within the framework of the software you decide to commit too.
– Integrations. If you require an integration to a unique piece of software then your off-the-shelf software may not be able to satisfy this, or if they can do this, may not guarentee compatibility on future versions.
– Compatibility. This is particular common with SaaS products. For example, the vendor inform you that they no longer support a particular operating system, which is an issue for you because you’ve not had the chance to upgrade your estate, or there’s a reason you need to stay on an older version. You need to ensure you keep up to date with the software’s requirements, something you’d be in control of if you developed in house.
So do you build it or buy it?
Building a piece of software, for a lot of businesses seems like the correct thing to do to get EXACTLY what you want. However I think a few things a lot of businesses neglect
– Building software isn’t a short term project. Ensuring the development team are kept long term is critical to ensure that there is a good understanding of the building blocks and low-level code. Its a long term committment.
– Ensure you define your requirements before you decide on buy it or build it. Make sure you list the functionality you want to achieve and ensure that you go out to the market to see what is possible – why try and develop something that is already out there in the market?
– If you decide to build it, remember its you that is accountable. That includes development costs, hosting costs, time to live, bug fixes, compliance (if applicable). Ensure you budget correctly from the word go, and set expections with your business for a delivery date
I think in a lot of scenarios it makes more sense to buy rather than build, as businesses focus so hard on the feature set being delivered, they neglect the long term implications of staff retention (in the developer space), coding standards, and the risks should bug fixes not be applied. In addition, a lot of software houses are more open to input from their customers, particularly with niche software and with many businesses having more frequent releases, the time to market is quicker than its ever been.