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 you or your organization. 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 you, a single customer, it can accommodate your 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 their existing software packages. Often existing software is considered to be legacy software, which is based on an old method, technology, computer system, or application program, yet still in use.
Even if it is no longer used, a legacy system may continue to impact your organization due to its historical role. Historic data may not have been converted into the new system format and may exist within the new system with the use of a customized schema crosswalk, or may exist only in a data warehouse. In either case, the effect on business intelligence and operational reporting can be significant
Custom software development is sometimes thought to be 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, off-the-shelf software requires customization to correctly support the buyer’s operations. The cost and delay of off-the-shelf software 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, off-the-shelf software comes with upfront license costs which vary enormously, but sometimes run into the millions of dollars. Furthermore, the big software houses that release off-the-shelf software change their product 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 off-the-shelf software. If the off-the-shelf software contains severe security vulnerabilities it can introduce significant risk into an organization’s software supply chain. The risks are compounded when off-the-shelf 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 off-the-shelf software components.
The US Department of Homeland Security has sponsored efforts to manage supply chain cyber security issues related to the use of off-the-shelf software. 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 off-the-shelf software at all and therefore have limited visibility into the risks introduced into their software supply chain by off-the-shelf software.
Off-the-shelf Issues in other industries
In the medical device industry, off-the-shelf 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 off-the-shelf software, DHS best practices for off-the-shelf software risk review can be applied. Simply being off-the-shelf software does not necessarily imply the lack of a fault history or transparent software development process. For well documented off-the-shelf 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, off-the-shelf 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 off-the-shelf software 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 off-the-shelf software products can be used out of the box, in practice the off-the-shelf software product must be configured to achieve the needs of the business and integrated to existing organizational systems. Extending the functionality of off-the-shelf software 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 off-the-shelf software vendor, so brings its own sets of issues when upgrading the off-the-shelf software product.
The use of off-the-shelf 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 off the shelf software, 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 labor 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 Systems, 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 …
References: “Custom software”. Released under the Creative Commons Attribution-Share-Alike License 3.0.