Custom software

Last updated

Custom software (also known as bespoke software or tailor-made software) is software that is developed specifically for some specific organization or other user. As such, it can be contrasted with the use of out-of-the-box software packages developed for the mass market, such as commercial off-the-shelf software, or existing free software.

Contents

Considerations

Since custom software is developed for a single customer it can accommodate that customer's particular preferences and expectations, which may not be the case for commercial off-the-shelf software. 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 (which are, as a rule, never perfect). In particular, the first phase in the software development process may involve many departments, including marketing, engineering, research and development and general management. [1]

Large companies commonly develop custom software for critical functions, including content management, inventory management, customer management, human resource management, or otherwise to fill the gaps present in existing software packages. In many cases, such software is legacy software, developed before commercial off the shelf software or free software packages offering the required functionality with an acceptable level of quality or functionality became available or widely known. For example, the BBC spent a great deal of money on a project to develop its own custom digital media production and management software, but the project experienced troubles, and after many years of development, was cancelled. A key stated reason for the project cancellation was that it had become clear that commercial off-the-shelf software existed that was, by that point, adequate to the BBC's needs and available for a small fraction of the price. [2]

Custom software development is often 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 software requires customization to correctly support the buyer's operations. The cost and delay of commercial off the shelf software customization can even add up to the expense of developing custom software.

Cost is also not the only consideration in the decision to develop custom software, as the requirements for a custom software project often includes the purchaser owning the source code, to secure the possibility of future improvement or modifications to the installed system to handle changing requirements. However, modern commercial off the shelf software often has application programming interfaces (APIs) for extensibility - or occasionally, as in the case of Salesforce.com, a domain-specific language (DSL) - meaning that commercial off the shelf software packages can sometimes accommodate quite a wide variety of customisations without the need to access source code of the core commercial off the shelf software system. [3]

Additionally, commercial off the shelf software comes with upfront license costs which vary enormously, but sometimes run into the millions of US dollars. Furthermore, the big software houses that release commercial off the shelf software 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 can also turn out to be expensive, as a dedicated product release cycle may have to be earmarked for them. However, in theory, the use of documented APIs and/or DSLs, as opposed to direct access to internal database tables and code modules, for customization can minimize the cost of these upgrades. This is because commercial off the shelf software vendors can opt to use techniques such as:

The decision to build a custom software or go for a commercial off the shelf software implementation would usually rest on one or more of the following factors:

Major fields

Construction

The construction industry uses custom software to manage projects, track changes, and report progress. Depending on the project, the software is modified to suit the particular needs of a project owner, the design team, and the general and trade contractors. [4]

Project-specific data is used in other ways to suit the unique requirements of each project. Custom software accommodates a project team's particular preferences and expectations, making it suitable for most construction processes and challenges:

Custom software developers use various platforms, like FileMaker Pro, to design and develop custom software for the construction industry and for other industries.

Hospitals

Hospitals can keep electronic health records and retrieve them any time. This enables a doctor and his or her assistants to transfer the details of a patient through a network.

Keeping patients' blood groups in a hospital database makes the search for suitable blood quicker and easier.

Hospitals also use billing software, especially in their dispensaries.

Places of education

Schools use custom software to keep admission details of students. They produce Transfer Certificates also. Some governments develop special software for all of their schools. Sampoorna is a school management system project implemented by the Education Department of Government of Kerala, India to automate the system and process of over 15,000 schools in the state. These projects brings a uniformity for the schools.

Retail

Billing is a common use of custom software. Custom software is often used by small shops,[ citation needed ] supermarkets and wholesale sellers to handle inventory details and to generate bills.

Major project overruns and failures

Failures and cost overruns of government IT projects have been extensively investigated by UK Members of Parliament and officials; they have had a rich seam of failures to examine, including:

Advantages and disadvantages

When a business is considering a software solution the options are generally between creating a spreadsheet (which is often done in Microsoft Excel), obtaining an off-the-shelf product, or having custom software created specifically to meet their needs. There are five main criteria involved in selecting the correct solution:

CriterionNature
Development cost and timeQuantitative
Other staff costsQuantitative
System efficiencyQuantitative
Service improvementQualitative
FlexibilityQualitative

Although initial assessments of the options according to these criteria may deviate sharply from the reality of the eventual solution when put into practice, due to factors such as cost overruns, insufficient training, poor product fit, reliability of the solution, etc.

These factors need to take into account the running of the business, its industry, size and turnover. As such the decision can only be made on a business-by-business basis to determine if it warrants a custom development, as well as ownership of the software.

Advantages

Custom software will generally produce the most efficient system as it can provide support for the specific needs of the business, which might not be available in an off-the-shelf solution and will provide greater efficiency or better customer service.

Given a suitable approach to development, such as DSDM, custom software will also produce the best or most well-targeted service improvement. Businesses can tailor the software to what their customers want instead of having to choose a package that caters for a generic market. For example, one printing business may want software that responds in the shortest time, whereas another printing 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.

Although not always the most suitable for larger or more complex projects, a spreadsheet allows less technical staff at a business to modify the software directly and get results faster. Custom software can be even more flexible than spreadsheets as it is constructed by software professionals that can implement functionality for a wide range of business needs.

Disadvantages

The main disadvantages of custom software are development time and cost. With a spreadsheet or an off-the-shelf software package, a user can get benefits quickly. With custom software, a business needs to go through a software development process that may take weeks, months, or with bigger projects, years. Bugs accidentally introduced by software developers, and thorough testing to iron out bugs, may impede the process and cause it to take longer than expected. However, 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.

Custom software is often several times the cost of the other two options, and will normally include an ongoing maintenance cost. This will often 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 model

Particularly with modern cloud software, a hybrid model of custom software is possible in which the main focus is on the commercial off the shelf software - mainly the mismatch between its features, functions and the business requirements, preferences and expectations. The idea here is to buy a commercial off the shelf software which satisfies maximum number of requirement and develop custom software (extensions or add-ons) to fill the gaps left by it. This is the standard approach used when implementing SAP ERP, for example.

See also

Related Research Articles

A turnkey, a turnkey project, or a turnkey operation is a type of project that is constructed so that it can be sold to any buyer as a completed product. This is contrasted with build to order, where the constructor builds an item to the buyer's exact specifications, or when an incomplete product is sold with the assumption that the buyer would complete it.

A software company is an organisation — owned either by the state or private — established for profit whose primary products are various forms of software, software technology, distribution, and software product development. They make up the software industry.

The rational unified process (RUP) is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003. RUP is not a single concrete prescriptive process, but rather an adaptable process framework, intended to be tailored by the development organizations and software project teams that will select the elements of the process that are appropriate for their needs. RUP is a specific implementation of the Unified Process.

Software development is the process used to create software. Programming and maintaining the source code is the central step of this process, but it also includes conceiving the project, evaluating its feasibility, analyzing the business requirements, software design, testing, to release. Software engineering, in addition to development, also includes project management, employee management, and other overhead functions. Software development may be sequential, in which each step is complete before the next begins, but iterative development methods where multiple steps can be executed at once and earlier steps can be revisited have also been devised to improve flexibility, efficiency, and scheduling.

Electronic data processing (EDP) or business information processing can refer to the use of automated methods to process commercial data. Typically, this uses relatively simple, repetitive activities to process large volumes of similar information. For example: stock updates applied to an inventory, banking transactions applied to account and customer master files, booking and ticketing transactions to an airline's reservation system, billing for utility services. The modifier "electronic" or "automatic" was used with "data processing" (DP), especially c. 1960, to distinguish human clerical data processing from that done by computer.

<span class="mw-page-title-main">Requirements analysis</span> Engineering process

In systems engineering and software engineering, requirements analysis focuses on the tasks that determine the needs or conditions to meet the new or altered product or project, taking account of the possibly conflicting requirements of the various stakeholders, analyzing, documenting, validating, and managing software or system requirements.

In engineering, a requirement is a condition that must be satisfied for the output of a work effort to be acceptable. It is an explicit, objective, clear and often quantitative description of a condition to be satisfied by a material, design, product, or service.

<span class="mw-page-title-main">Product lifecycle</span> Duration of processing of products from inception, to engineering, design & manufacture

In industry, product lifecycle management (PLM) is the process of managing the entire lifecycle of a product from its inception through the engineering, design and manufacture, as well as the service and disposal of manufactured products. PLM integrates people, data, processes, and business systems and provides a product information backbone for companies and their extended enterprises.

Commercial software, or seldom payware, is a computer software that is produced for sale or that serves commercial purposes. Commercial software can be proprietary software or free and open-source software.

Business software is any software or set of computer programs used by business users to perform various business functions. These business applications are used to increase productivity, measure productivity, and perform other business functions accurately.

A translation management system (TMS), formerly globalization management system (GMS), is a type of software for automating many parts of the human language translation process and maximizing translator efficiency. The idea of a translation management system is to automate all repeatable and non-essential work that can be done by software/systems and leaving only the creative work of translation and review to be done by human beings. A translation management system generally includes at least two types of technology: process management technology to automate the flow of work, and linguistic technology to aid the translator.

<span class="mw-page-title-main">Computer-aided production engineering</span>

Computer-aided production engineering (CAPE) is a relatively new and significant branch of engineering. Global manufacturing has changed the environment in which goods are produced. Meanwhile, the rapid development of electronics and communication technologies has required design and manufacturing to keep pace.

Commercial-off-the-shelf or commercially available off-the-shelf (COTS) products are packaged or canned (ready-made) hardware or software, which are adapted aftermarket to the needs of the purchasing organization, rather than the commissioning of custom-made, or bespoke, solutions. A related term, Mil-COTS, refers to COTS products for use by the U.S. military.

Software project management is the process of planning and leading software projects. It is a sub-discipline of project management in which software projects are planned, implemented, monitored and controlled.

Internet-Speed development is an Agile Software Development development method using a combined spiral model/waterfall model with daily builds aimed at developing a product with high speed.

Shadow system is a term used in information services for any application relied upon for business processes that is not under the jurisdiction of a centralized information systems department. That is, the information systems department did not create it, was not aware of it, and does not support it.

Strategic planning software is a category of software that covers a wide range of strategic topics, methodologies, modeling and reporting.

<span class="mw-page-title-main">Computer appliance</span> Dedicated computer system

A computer appliance is a computer system with a combination of hardware, software, or firmware that is specifically designed to provide a particular computing resource. Such devices became known as appliances because of the similarity in role or management to a home appliance, which are generally closed and sealed, and are not serviceable by the user or owner. The hardware and software are delivered as an integrated product and may even be pre-configured before delivery to a customer, to provide a turn-key solution for a particular application. Unlike general purpose computers, appliances are generally not designed to allow the customers to change the software and the underlying operating system, or to flexibly reconfigure the hardware.

Business requirements, also known as stakeholder requirements specifications (StRS), describe the characteristics of a proposed system from the viewpoint of the system's end user like a CONOPS. Products, systems, software, and processes are ways of how to deliver, satisfy, or meet business requirements. Consequently, business requirements are often discussed in the context of developing or procuring software or other systems.

Network functions virtualization (NFV) is a network architecture concept that leverages IT virtualization technologies to virtualize entire classes of network node functions into building blocks that may connect, or chain together, to create and deliver communication services.

References

  1. Joseph M. Morris (2001). Software Industry Accounting Tanga. p.1.10
  2. "BBC abandons £100m digital project". BBC News. 24 May 2013.
  3. Christian von Hirschhausen et Jürgen Bitzer,The Globalization of Industry and Innovation in Eastern Europe: From Post-socialist Restructuring to International Competitiveness,Edward Elgar Publishing - 2000, ISBN   9781782542308
  4. Derek Leebaert, The Future of Software, MIT Press, 1996 ISBN   9780262621090