Analysts and organizations are increasingly faced with a make, buy, or outsource decision when assessing software for information systems projects, particularly when contemplating upgrades to existing or legacy systems.
You have seen the decisions that analysts make when deciding about renting, buying, or leasing hardware. Some of the decision making surrounding purchase of commercial off-the-shelf (COTS) software, “rental” of the software from an application service provider (ASP), or creation of custom software for the project is analogous to the hardware decision process.
It should be noted that regardless of whether you develop software or purchase a COTS product for a particular project, it is imperative to complete a human information requirements analysis of the users and the systems they use first (as discussed in preceding chapters). As an analyst, part of the expertise you are developing is to make sound judgments regarding developing software versus the purchase of COTS software for new and existing systems. The following sections discuss when to create your own software, when to purchase COTS packages, and when to use an ASP. Figure 3.9 summarizes the advantages and disadvantages of each of these options.
|Creating Custom Software|
|Purchasing COTS Packages|
|Using an ASP|
When To Create Custom Software
There are several situations that call for the creation of original software or software components. The most likely instance is when COTS software does not exist or cannot be identified for the desired application. Alternatively, the software may exist but it is unaffordable or cannot easily be purchased or licensed.
Original software should be created when the organization is attempting to gain a competitive advantage through the leveraged use of information systems. This is often the case when an organization is creating ecommerce or other innovative applications where none existed. It is also possible that the organization is a “first mover” in the use of a particular technology or in its particular industry. Organizations that have highly specialized requirements or exist in niche industries can also benefit from original software.
The advantages of creating your own software include being able to respond to specialized user and business needs, gaining a competitive advantage by creating innovative software, having inhouse staff available to maintain the software, and the pride of owning something you have created. The drawbacks of developing your own software include the potential for a significantly higher initial cost compared to purchasing COTS software or contracting with an ASP, the necessity of hiring or working with a development team, and the fact that you are responsible for the ongoing maintenance because you were the software’s creator.
When to Buy COTS Software
Commercial off-the-shelf software includes such products as the Microsoft Office suite, which includes Word for word processing, Excel for spreadsheets, Access for building databases, and other applications. Other types of COTS software are for organizational level systems rather than office or personal use. Some authors include popular (but costly) ERP packages such as Oracle and SAP in their examples of COTS software. These packages differ radically in the amount of customization, support, and maintenance required compared to Microsoft Office. COTS software can also refer to software components or objects (also called building blocks) that can be purchased to provide a particular needed functionality in a system.
Consider using COTS software when you can easily integrate the applications or packages into existing or planned systems, and when you have identified no necessity to immediately or continuously change or customize them for users. Your forecasts should demonstrate that the organization you are designing the system for is unlikely to undergo major changes after the proposed purchase of COTS software, such as a dramatic increase in customers or large physical expansions.
There are some advantages to purchasing COTS software that you should keep in mind as you weigh alternatives. One advantage is that these products have been refined through the process of commercial use and distribution, so that often there are additional functionalities offered. Another advantage is that packaged software is typically extensively tested, and thus extremely reliable.
Increased functionality is often offered with COTS software, because a commercial product is likely to have sister products, add-on features, and upgrades that enhance its attractiveness. Additionally, analysts often find that the initial cost of COTS software is lower than the cost for either in-house software development or the use of an ASP.
Another advantage of purchasing COTS packages includes their use by many other companies, so analysts are not experimenting on their clients with one-of-a-kind software applications. Lastly, COTS software boasts an advantage in the help and training that accompanies the purchase of the packaged software.
One example of the use of COTS software is from a theatre company in the nonprofit sector, in which organizations (particularly in the performing arts) tend to lag behind their for-profit counterparts in adoption of information communication technologies (ICTs). The theatre company was predictably slow to move to the Web. When they desired to create ecommerce applications, they were put in a position of having to hire outside designers to create ecommerce applications for them. In light of the expense and lack of in-house expertise, many nonprofit organizations simply did not move the business portion of their organizations to the Web, waiting instead for COTS packages, such as PC-based, box-office software, or ASPs such as online ticketing agencies with automation already in place, to make these services available to patrons. Inhouse software development was out of the question for most of these groups, who typically have small or nonexistent IT staffs and budgets, and minimal internal IT expertise.
There is a downside to the use of COTS software. Because it is not meant to be fully customizable, the theatre company lost its ability to change the software to include key features in its donor database that users were reliant on. COTS software may also include errors that could expose an organization to liability issues.
There are other disadvantages to consider with the purchase of COTS software, including the fact that packages are programmed, rather than being focused on human users working in a business. Additionally, users must live with whatever features exist in the software, whether they are appropriate or not. A disadvantage that grows out of this is the limited customizability of most packaged software. Other disadvantages to purchasing COTS software include the necessity of investigating the financial stability of the software vendor, and the diminished sense of ownership and commitment that is inevitable when the software is considered a product rather than a process.
To achieve some perspective on systems being developed, you should recognize that over half of the projects are built from scratch (two-thirds using traditional methods like SDLC and prototyping and one-third using agile or object-oriented technologies). Most of these are developed using an internal systems analysis team. Programmers may be in-house or outsourced.
Less than half of all projects are developed from existing applications or components. The great majority are modified, some extensively. Less than 5 percent of software is off-the-shelf software that requires no modifications at all.
When to Outsource Software Services to an Application Service Provider
Organizations may realize some benefits from taking an entirely different approach to procuring software. This third option is to outsource some of the organization’s software needs to an application service provider that specializes in IT applications.
There are specific benefits to outsourcing applications to an application service provider (ASP). For example, organizations that desire to retain their strategic focus and do what they’re best at may want to outsource the production of information systems applications. Additionally, outsourcing one’s software needs means that the organization doing the outsourcing may be able to sidestep the need to hire, train, and retain a large IT staff. This can result in significant savings. When an organization uses an ASP, there is little or no expenditure of valuable employee time on nonessential IT tasks (these are handled professionally by the ASP).
Hiring an ASP should not be considered a magic formula for addressing software requirements. There are drawbacks to the use of an ASP that must be seriously considered. One disadvantage is a general loss of control over corporate data, information systems, IT employees, and even processing and project schedules. Some companies believe that the heart of their business is their information, so even the thought of relinquishing control over it is distressing. Another disadvantage is concern over the financial viability of any ASP that is chosen. There might also be concerns about the security of the organization’s data and records, along with concern about confidentiality of data and client privacy. Finally, when choosing an ASP, there is a potential loss of strategic corporate advantage that might have been gained through the company’s own deployment of innovative applications created by their employees.
Evaluation of Vendor Support for Software and ASPS
Whether you purchase a COTS package or contract for ASP services, you will be dealing with vendors who may have their own best interests at heart. You must be willing to evaluate software with users and not be unduly influenced by vendors’ sales pitches. Specifically, there are six main categories on which to grade software, as shown in Figure 3.10: performance effectiveness, performance efficiency, ease of use, flexibility, quality of documentation, and manufacturer support.
|Software Requirements||Specific Software Features|
|Performance Effectiveness||Able to perform all required tasks|
Able to perform all tasks desired
Well-designed display screens
|Performance Efficiency||Fast response time|
Efficient storage of data
|Ease of use||Satisfactory user interface|
Help menus available
“Read Me” files for last-minute changes
Good error recovery
|Flexibility||Options for input|
Options for output
Usable with other software
|Quality of Documentation||Good organization|
Adequate online tutorial
Web site with FAQ
|Manufacturer Support||Technical support hotline|
Web site with downloadable product updates
Evaluate packaged software based on a demonstration with test data from the business considering it and an examination of accompanying documentation. Vendors’ descriptions alone will not suffice. Vendors typically certify that software is working when it leaves their supply house, but they will not guarantee that it will be error-free in every instance or that it will not crash when incorrect actions are taken by users. Obviously, they will not guarantee their packaged software if used in conjunction with faulty hardware.
- Project Initiation
- Defining the Problem in Project Initiation
- Selection of Projects
- Feasibility Study – Determining Whether the Project is Feasible
- Technical Feasibility – Ascertaining Hardware and Software Needs
- Acquisition of Computer Equipment – Technical Feasibility
- Software Evaluation in Technical Feasibility
- Economic Feasibility – Identifying & Forecasting Costs & Benefits
- Comparing Costs and Benefits – Economic Feasibilty
- Activity Planning and Control – Project Management
- Using PERT Diagrams in Project Planning
- Managing the Project
- Managing Analysis and Design Activities
- Creating the Project Charter & Avoiding Project Failures
- Organizing the Systems Proposal
- Using Figures for Effective Communication in System Proposal