Custom Software Development
When off the shelf software is inadequate or does not exist, custom software enables you to achieve your business objectives.
Custom software (also known as bespoke software or tailor-made software) is software that is specially developed for a specific organization or individual. As such, it can be contrasted with the use of software packages developed for the mass market, such as commercial off-the-shelf (COTS) software, or existing free software.
Since custom software is developed for a single customer, it can accommodate that customer’s particular preferences and expectations. Custom software may be developed in an iterative processes, allowing all nuances and possible hidden risks to be taken into account, including issues which were not mentioned in the original requirement specifications. In particular, the first phase in the software development process may involve input from a number of departments, including marketing, engineering, research and development and general management.
Larger companies commonly use custom software for critical functions, including content management, inventory management, customer management, human resource management, or otherwise to fill the gaps present in the existing software packages. Often such software is legacy software, developed before COTS or free software packages offering the required functionality became available.
Custom software development is sometimes considered expensive compared to off-the-shelf solutions or products. This can be true if one is speaking of typical challenges and typical solutions. However, it is not always true. In many cases, Commercial off-the-shelf (COTS) software requires customization to correctly support the buyer’s operations. The cost and delay of COTS customization can even add up to the expense of developing custom software. Cost is not the only consideration however, as the decision to opt for custom software often includes the requirement for the application to work with external APIs, have enhanced or personalized functionality, the purchaser to own the source code, to secure the possibility of future development or modifications to the installed system.
Additionally, COTS comes with upfront license costs which vary enormously, but sometimes run into the millions (in terms of dollars). Furthermore, the big software houses that release COTS products revamp their product very frequently. Thus a particular customization may need to be upgraded for compatibility every two to four years. Given the cost of customization, such upgrades also turn out to be expensive, as a dedicated product release cycle will have to be earmarked for them.
Spreadsheets and off-the-shelf software packages may also contain bugs, and moreover because they may be deployed at a business without formal testing, these bugs may slip through and cause business-critical errors.
Off-the-shelf Software Security implications
According to the United States Department of Homeland Security, software security is a serious risk of using COTS software. If the COTS software contains severe security vulnerabilities it can introduce significant risk into an organization’s software supply chain. The risks are compounded when COTS software is integrated or networked with other software products to create a new composite application or a system of systems. The composite application can inherit risks from its COTS components.
The US Department of Homeland Security has sponsored efforts to manage supply chain cyber security issues related to the use of COTS. However, software industry observers such as Gartner and the SANS Institute indicate that supply chain disruption poses a major threat. Gartner predicts that “enterprise IT supply chains will be targeted and compromised, forcing changes in the structure of the IT marketplace and how IT will be managed moving forward.” Also, the SANS Institute published a survey of 700 IT and security professionals in December 2012 that found that only 14% of companies perform security reviews on every commercial application brought in house, and over half of other companies do not perform security assessments. Instead companies either rely on vendor reputation (25%) and legal liability agreements (14%) or they have no policies for dealing with COTS at all and therefore have limited visibility into the risks introduced into their software supply chain by COTS.
Off-the-shelf Issues in other industries
In the medical device industry, COTS software can sometimes be identified as SOUP (software of unknown pedigree or software of unknown provenance), i.e., software that has not been developed with a known software development process or methodology, which precludes its use in medical devices. In this industry, faults in software components could become system failures in the device itself if the steps are not taken to ensure fair and safe standards are complied with. The standard IEC 62304:2006 “Medical device software - Software life cycle processes” outlines specific practices to ensure that SOUP components support the safety requirements for the device being developed. In the case where the software components are COTS, DHS best practices for COTS software risk review can be applied. Simply being COTS software does not necessarily imply the lack of a fault history or transparent software development process. For well documented COTS software a distinction as clear SOUP is made, meaning that it may be used in medical devices.
Off-the-shelf Software Obsolescence
A striking example of product obsolescence is the Condor Cluster, a US Air Force supercomputer built out of 1,760 Sony PlayStation 3s running the Linux operating system. Sony disabled the use of Linux on the PS3 in April 2010, leaving no means to procure functioning Linux replacement units. In general, COTS product obsolescence can require customized support or development of a replacement system. Such obsolescence problems have led to government-industry partnerships, where various businesses agree to stabilize some product versions for government use and plan some future features, in those product lines, as a joint effort. Hence, some partnerships have led to complaints of favoritism, to avoiding competitive procurement practices, and to claims of the use of sole-source agreements where not actually needed.
There is also the danger of pre-purchasing a multi-decade supply of replacement parts (and materials) which would become obsolete within 10 years. All these considerations lead to compare a simple solution (such as “paper & pencil”) to avoid overly complex solutions creating a “Rube Goldberg” system of creeping featurism, where a simple solution would have sufficed instead. Such comparisons also consider whether a group is creating a make-work system to justify extra funding, rather than providing a low-cost system which meets the basic needs, regardless of the use of COTS products.
Applying the lessons of processor obsolescence learned during the Lockheed Martin F-22 Raptor, the Lockheed Martin F-35 Lightning II planned for processor upgrades during development, and switched to the more widely supported C++ programming language. They have also moved from ASICs to FPGAs. This moves more of the avionic design from fixed circuits to software that can be applied to future generations of hardware.
Although COTS products can be used out of the box, in practice the COTS product must be configured to achieve the needs of the business and integrated to existing organizational systems. Extending the functionality of COTS products via custom development is also an option, however this decision should be carefully considered due to the long term support and maintenance implications. Such customized functionality is not supported by the COTS vendor, so brings its own sets of issues when upgrading the COTS product.
The use of COTS software comes with many not-so-obvious tradeoffs
- An increase in software component-integration work
- Dependency on the vendor
- Security issues
- Incompatibilities from future changes
Custom Software development advantages
Custom software development generally produces the most efficient system as it can provide support for the specific needs of your business, which might not be available in an off-the-shelf solution. Custom software provides greater efficiency, security and better customer service.
Custom software will produce the best or most well-targeted service improvement. Custom software can be tailored to work the way you do, instead of having to choose a package that caters for a generic market. For example, one business may want software that responds in the shortest time, whereas another company may focus on producing the best results; as these two objectives often conflict, an off-the-shelf package will normally sit somewhere in the middle whereas with custom software each business can focus on their target audience.
Custom software is more flexible than spreadsheets as it is constructed by software professionals that can implement a wide range of functionality to address your business needs.
- Custom software is tailor-made by developers to your specifications in order to best serve your business’ needs.
- Custom software development can help protect business from external threads.
- Custom software is more scalable as compared to off-the-shelf software packages.
- Custom software development helps save on hardware acquisition costs.
- The investment in custom software is unique to your business and the property of the business, so it is also an asset of your business which adds value to the company.
Custom Software development disadvantages
The main disadvantage of custom software is development time. Custom software goes through a software development process that may take weeks, months, or with bigger projects, years.
Initially custom software is often several times the cost of the other two options, though for good reason, and will normally include an ongoing maintenance cost. This can make custom software infeasible for smaller businesses. These higher costs can be insignificant in larger businesses where small efficiency increases can relate to large labour cost savings or where custom software offers a large efficiency boost.
Hybrid software development model
Particularly with modern cloud software, a hybrid model of custom software development is possible in which the main focus is on the off-the-shelf software - mainly the mismatch between its features, functions and the business requirements, preferences and expectations. The idea here is to use open source or buy cheap off the shelf software which satisfies a maximum number of requirement and develop a custom software (extensions or add-ons) to fill the gaps left by it.
When a business is considering a software solution the options are generally between having custom software created specifically to meet their needs, creating a spreadsheet or obtaining an off-the-shelf product.
How to choose between custom software development and off-the-shelf software
There are five main criteria involved in selecting the correct solution:
- Development cost and time
- Other staff costs
- System efficiency
- Service improvement
Nexus Software has provided the technical “brains” behind many SUCCESSFUL, revenue-generating companies.
We are committed to developing applications that make your business more successful.
Your business can work more effectively and efficiently, because Nexus software developers build systems that work.
When you choose Nexus Software, you get an experienced team of developers that will work with you personally, through every step of your custom software development project to understand your unique objectives and help you to develop an effective solution.
By choosing Nexus Software Systems for your development, your application:
- Costs less
- Easily integrates with your current system
- Takes less time to implement
- Requires minimal additional training
- Enables you to have complete control of your finished product
We’ve been developing custom software solutions since 1985.
Whether you would like to build a new application, add website functionality, or improve an off-the-shelf solution, we can help you do it successfully.
We can help you automate your business processes, convert all your data into a common format, and make sure you’re getting what you need from your technology.
Custom software design methodology
A systematic, step-by-step methodology is implemented for all our custom software development. Your defined processes and methods are our priority. In the absence of a defined methodology, we present for your approval a draft of methodology to be followed in a project.
The main objectives of following a methodology is to make the software development cycle as efficient as possible, to complete your application with lowest possible cost to you, while keeping the highest quality and to achieve the fastest turn-around.
Another important objective is to make future maintenance easier and faster.
The development cycle for each and every project is in some way unique, depending on your particular requirements and your unique operating environment.
When you are ready, contact us to learn more about custom software development …