A growing number of companies and organisations are investing in custom software development and building IT solutions tailored to their specific needs. But it can be an expensive endeavour and project sponsors should carefully consider the added value building unique, tailor-made software would be expected to offer beyond what an off-the-shelf commercial alternative would, if such exist.
This blog is for anyone who needs to understand what custom software development entails and the difference between custom software development and commercial software. Or needs to take a strategic decision on whether to invest in custom software in favour of a commercial alternative.
K&C - Creating Beautiful Technology Solutions For 20+ Years . Can We Be Your Competitive Edge?
Drop us a line to discuss your needs or next project
Custom software development is the process of creating a software solution to a well-defined need and includes the various stages of the software development lifecycle from ideation to planning, development, testing, deployment, maintenance and new iterations.
It is built, either in-house or by a third party software development company, to meet the needs of a defined group of users with specific requirements or preferences. They could be the buyers of a good or service, the employees of an organisation, or the residents of a region or town.
Custom software development is the alternative to paying for a commercial software license. Commercial software, or commercial-off-the-shelf software (COTS), refers to a software product created for a general need and designed to be resold under license to anyone with that general need.
To be viable, commercial software must address the needs of a broad enough demographic of potential paying customers to cover the cost of its development, running costs, maintenance, new iterations and marketing (which is often a bigger investment than development and running costs). All while, of course, leaving a substantial enough profit to justify the risk taken on by whoever has funded the software’s development.
For custom software to represent a reasonable return on investment, it should add enough value through cost-saving efficiencies or additional revenue generated.
A significant number of commercial software products actually start life as custom software development projects. They are originally developed to solve the need of a specific group of people before someone decides there is a commercially viable wider audience of people with the same need.
A perfect example of a software product that made the transition from custom to commercial software is the productivity and collaboration tool Slack. Slack started life as the side project of a team working on what they hoped would be an innovative and original new non-violent massively multiplayer online game. Something like an inverted Fortnite where all the players cooperate instead of trying to shoot and kill each other.
The software development team building the game didn’t feel like any of the commercial collaboration and project management software tools fitted their needs so built Slack as a side project. Features were added as needed and by the time the game had been given up on as a flop, seems like violence is generally considered more fun than cooperation in the context of video games, the team, and company founder Stewart Butterfield, thought there might be a wider market for Slack.
The game, Glitch, was officially shut down in December 2012 and Slack launched as a commercial software product in August 2013. It was valued at over $1 billion within 8 months, having spent no money on traditional marketing, and Slack Technologies is now a public company worth $26.5 billion.
Some software products are something between custom and commercial. White label software, software that is purchased by a company from a service provider and rebranded as its own, could be described as commercial software that simply has a specific, usually B2B, audience.
But because it is branded as the customer’s own, and may also offer other options for customisation, white label software isn’t purely commercial software in the usual sense.
Salesforce CRM (customer relationship management), SAP ERP (enterprise resource planning) installations, websites built on WordPress and e-commerce stores built on the Shopify platform are also examples of software that is not quite commercial and not quite custom.
In all these examples there is a core commercial product paid for on a subscription basis. But most users of these software products pay additionally for software developers specialised in the platforms to customise them to their organisation’s specific needs and workflows.
For example, only 10% of SAPs ERP installations are not customised and 25% significant or extremely customised ERP environments.
Initiating a custom software development project is not a decision that should be taken lightly. It will either involve allocating significant in-house resources if you have a dedicated software development department or making a significant investment with a specialist software agency to build it for you.
Even if you outsource custom software development, people within your organisation will have to spend time collaborating with the chosen provider’s software development team to make sure the end product meets the need it is intended to.
When does IT Outsourcing work?
(And when doesn’t it?)
If you take an Agile approach to the software development process, currently the most common methodology used for software development, resources will have to be dedicated to collaboration on a potentially ongoing basis throughout iterations.
Even a relatively straightforward custom software product built to detailed up-front specifications needs someone in-house, or working closely with someone in-house, to create those detailed specifications. And make sure the product is built to them, on time, and within budget.
None of that is to say custom software development isn’t often the best strategic choice, ahead of commercial COTS or (often expensively) customised alternatives. And sometimes there isn’t a choice because viable commercial software products addressing the need don’t exist.
But a careful cost to benefit analysis, based on a full understanding of the commitment and resources that will be involved, should be made before opting for a bespoke software solution.
When making a preliminary assessment of the need to develop a custom software product, consider the following advantages & disadvantages.
Truly custom software’s strengths over COTS or customised commercial software are:
The most influential reason to decide to develop custom software is that you can tailor it to your exact requirements. Even the most customisable commercial software comes with restrictions around what you can and can’t do. Or customising it as closely as possible to what you precisely want can become more expensive.
With custom software, on the other hand, you have almost complete control. That doesn’t mean there won’t ever be any compromises made on a cost to benefit assessment but you will certainly have a greater (often much greater) degree of control.
Anyone who has ever been involved in a significant Agile software development project will appreciate the evolution in project scope and specifications that typically happens throughout the process. That’s welcome and is, in fact, the raison d’être of the Agile methodology.
It is based on the principle that at the beginning of the process of building a complex system, it is not practically possible to know every detail of how the complex system should be built. There is an element of learning as you go with assumptions tested and verified by user data and feedback, and assumptions and requirements adjusted after being informed by that data and feedback.
The Agile methodology injects a level of uncertainty into the custom software development process. The product you end up with to best meet your needs may not be the same as, or even very similar to, the one you initially thought you needed.
But experience has shown, which is why the Agile approach is so popular, allowing for that uncertainty for the sake of verifying assumptions and adjusted them as necessary, leads to better software that is ultimately cheaper and faster to build.
Commercial software can only ever be reasonably close to the exact needs of the user because it is, by design, built to be as one-size-fits-all as possible.
Unless it is freeware, software is always an investment, regardless of whether it is custom developed or commercial software. But well designed and developed custom software can, potentially offer more of a competitive advantage than commercial software, even if customised.
There is little barrier to entry, other than the cost, to a competitor using the same commercial software to even the playing field. That’s not the case with custom software, which is exclusive to its owner.
If it adds meaningful value to the owner, either through efficiencies in work processes saving time and money or providing a better customer experience, custom software development’s potential return on investment can have significant upside far compared to an alternative investment in commercial software.
Not every need that could be addressed by software is common enough to encourage a commercial software product. Or already has. But that doesn’t mean building custom software to address that need won’t justify the investment.
If commercial software to address a need doesn’t exist and a cost to benefits analysis indicates investing in creating custom software is justified, you can take advantage of efficiencies or other benefits you would not otherwise be able to.
Custom software can be designed for seamless integration with other software and systems used by the project sponsor. Commercial software is more likely to be impossible, difficult or expensive to integrate in the same way or doing so may require a less than optimal ‘patch’ solution that could lead to future complications or unreliability.
Well-designed custom software is built to scale as the organisation it supports grows. Future needs, or potential needs, can be anticipated and being able to scale to address them built into the software so it is conveniently scalable and adjustable when it needs to be.
Commercial software is also usually scalable but not always beyond a certain point or in every direction. Scaling commercial software also usually involves overheads, such as additional or more expensive licenses and subscriptions, that increase as usage scales. Custom software, on the other hand, can be expected to offer economies of scale.
Organisations can become over reliant on commercial software that is strategically important to and tightly integrated with processes and IT systems. They can them find themselves locked into a continuing commercial relationship with the commercial software vendor, even if the terms of that relationship are no longer attractive.
Custom software development offers the independence of ownership and control of strategically important software, which can also mean it becomes an asset with balance sheet value.
Custom software can be developed to meet the kinds of specific or heightened security requirements that may be demanded by regulators in some sectors or be required by the company itself. Even the biggest commercial software vendors such as Microsoft, IBM and SAP have suffered from security breaches in recent years, some of which have left their clients’ systems and data exposed.
Some drawbacks to custom software development include:
Building custom software will typically involve a more significant upfront investment than licensing a commercial alternative. But if you plan on customising certain kinds of commercial software it can also quickly become expensive if there is a limited pool of developers skilled in customisation. Some customisable commercial software can also only be worked on by developers accredited by the software owner.
Make sure you check rates and how much work the customisation you would want to make would involve.
Custom software development, along a spectrum and depending on how complex the software system is, is a time commitment when approached in a way that gives the best chance of a successful outcome.
Even if the development is outsourced to a specialist software company, the project sponsor should still be closely involved in the collaborative process throughout the development lifecycle. That’s especially the case during the initial planning stage when goals and features are being established.
A complex piece of software with a key strategic role is also likely to be developed via an Agile, iterative process over an extended period, throughout which the project sponsor should be committed to allocating the resources required for close collaboration with the development team.
It will often make most strategic sense to outsource custom software development, which makes selecting the right development partner a key factor in the success of the outcome. You should approach the shortlisting and final choice of software agency with a clear methodology and do your research and due diligence on those being considered.
Make sure you select a development partner with experience and a track record in the kind of software you plan to build and the tech stack you intend it to be built with, if known. For example, the best mobile application specialists won’t necessarily be the right choice for a desktop-first application with complex cloud-native architecture. And vice versa.
If you choose to develop your software solution in-house, which can make sense if it is a complex, strategically important product you expect to continuously iterate on over a long period, you will need to hire a software development team directly.
Putting the right team together can be a difficult and time consuming process and when hiring employees on a full time basis you will need long term clarity on workloads and project cycles. Developers and other IT specialists are expensive employees and software development cycles can have fluctuating resource needs.
Are you confident you know exactly how many specialists you will need, their profile and tech stack and that the workload will be evenly enough spread that a stable team makes sense? And if a key team member leaves you will need to replace them. How could that impact the project?
Investments that offer the highest upside if things go well also usually represent the steepest downside if they don’t. That’s unfortunately how risk to reward ratios tend to work.
If custom software development is not approached correctly and the end product either isn’t fit for purpose or doesn’t bring the benefits it was assumed it would, the resources invested in it could represent a more significant downside than would have been the case with a commercial software alternative that add the anticipated value.
If you decide to initiate a custom software development project there are various considerations and decisions you will have to take in collaboration with the software development team that will actually build your product. These include:
Whatever kind of custom software you are developing, whether it’s a relatively small, simple project, or a large, complex one, you will have choices to make on the technologies chosen to build it.
This will be influenced by questions like:
Will the software be web-based or cloud-based?
If it will be cloud-based, will it run on a public, private or hybrid cloud?
If it will run on a public cloud, will it be built natively for the cloud platform of a particular vendor like AWS or Microsoft Azure? Or built to be cloud agnostic to escape vendor lock-in?
What programming languages, frameworks or libraries will the front and back end be built with? Make sure to avoid, if at all possible, niche or emerging technologies that could prove expensive or difficult to hire for now or in future. Where possible stick to mature, stable, future-proofed technologies and tools for which there is a deep pool of developers and specialists available on the market.
Another decision that should be made with the software development team but an important one.
Are you going to build your software to the Agile methodology? If so, which Agile framework is best suited? Some of the more popular methodologies and frameworks used in custom software development include:
Agile and its different flavours like Scrum, Kanban, Adaptive Software Development (ASD), Rapid Application Development (RAD), Scaled Agile Framework (SAFe) if it’s a big project multiple teams will work on.
DevOps, which is an approach often combined with an Agile philosophy and founded on the principle of unifying traditionally distinct development and operations teams, roles, and responsibilities.
If you are developing a relatively simple custom software product you might prefer to work to a more defined methodology like the traditional Waterfall approach. In Waterfall, detailed specifications are defined upfront the software built to the blueprint provided with little room for adapting the project scope and features during the software development lifecycle.
Or you might opt for a hybrid approach like controlled or fixed price Agile, which is a compromise that pursues the best of both worlds.
Custom software development is a popular choice and can result in significant benefits, many of which we’ve outlined above. It also involves risk and the allocation of significant resources, which means it is a strategic decision that should only be taken after full consideration of what is involved and a careful cost to benefit analysis.
We hope this article has given you a better understanding of what custom software development is and highlighted the considerations and decisions involved in choosing between it and commercial software alternatives.
Can We Help You With Your Next Custom Software Development Project?
Flexible models to fit your needs!