PHASE 3 : SYSTEM DESIGN LESSON 7 DEVELOPMENT STRATEGY INTRODUCTION In Lesson 6, we have learned how to conduct an assessment of the candidate system before it will be developed. In this lesson, we will discuss several development strategies that should be considered in order to develop the system. Selecting the best development strategies is important decision should be made by the organizations. This lesson consists of two sections: overview of development strategy outsourcing in-house development prototyping LEARNING OUTCOMES At the end of this lesson, students should be able to : define development strategies define outsourcing and explain why people choose it explain three types in-house development the advantages and disadvantages of these three types define and explain prototyping TERMINOLOGY No 1 Word Definition Evolutionary prototyping A prototyping approach where the prototype can be served as a basis or reference for the system production itself 2 In-house development An approach of development strategies which the organization can choose to develop its own system, or purchase a customize and implement a software package 3 Outsourcing The transfer of information system development, operation or maintenance to an outside firm that provide these services 4 Prototyping An iterative process of system development where requirements are converted to a working system 5 Throwaway prototyping A prototyping approach where the prototype will be discarded after the design 7.1 OVERVIEW OF DEVELOPMENT STRATEGY After the team makes a decision to develop a system, then we need to decide which development strategies is the best. There are two main approaches; outsourcing and in-house development. Each of this approach has its own strengths and weaknesses and different cases require different approaches. Selecting the best development strategies is an important decision that requires organizations to think of. In this topic, we’ll explain these two types on approaches of development strategies. We need to decide which type of development strategies will be applied in the system development project. But, for the rest of the course explanation, we assume that the team applied in-house development; where the system is being developed by people inside the organizations. 7.2 OUTSOURCING Outsourcing is the transfer of information system development, operation or maintenance to an outside firm that provides these services. The organization need to pay the fee for the system development provided by the company either for a temporary or long term basis. Outsourcing can be done for minor programming task, rent software from the service provider, outsourced the certain business process or handling the entire system development project to an outside company. The main difference between in-house development and outsourcing is, there is no new procurement phase in in-house development. There are several reasons why organization does outsourcing. Most of the organizations choose to outsource the tasks as a way to reduce cost. They prefer to outsource the tasks since its not only can reduce the cost of development, but it can save their time of the entire system development project. Other reason of outsourcing is maybe they don’t have enough expertise inside their organization to do the tasks. So, instead of hiring a staff, paying their salaries and any other costs involved, and the easiest solution that they have is outsource the project. A firm that offers outsourcing is refers to service provider. Some service providers are concentrates on specific software applications; others offer business services such as purchase, and order processing. There are two popular outsourcing options : Application service provider An application service provider (ASP) is a firm that delivers a software application, or access to an application by charging user based on usage or subscription fee. Organization need to pay certain amount of fees as a license for them to use the system. Its look likes that they rent the application for certain time limit. Nowadays, we have a lots of application service provider that provide various application such as Oracle Corporation provides a database for users. Internet business services Internet business services provide powerful web-based support for transaction such as purchase and order processing, billing. Another type of IBS is managed hosting. IBS is an attractive solution since it offers online data center support and provide online access to users. 7.2.1 Exercises Answer TRUE or for FALSE for each of the questions below. 1. Outsourcing is the transfer of information system development, operation or maintenance to an outside firm that provides these services. TRUE 2. The main similarity between in-house development and outsourcing is, there is no new procurement phase in in-house development. FALSE 3. Organization chooses to outsource the system development because it can reduce the cost of the system development. TRUE 4. Two popular option for outsource are Application service provider and Internet business services. TRUE 5. A company that delivers applications by charging a usage fee is called an internet business service. FALSE 7.3 IN-HOUSE DEVELOPMENT In addition to outsourcing options, the organization can choose to develop its own system, or purchase, possibly customize and implement a software package as Figure 7-1. There are several reasons that may affect the decision, but the most important consideration is total cost of ownership. Make, build Planning In-house development Customized software Analysis Purchase Implementation Buying software package Figure 7-1: Three Options; In-house Development; Customized Software and Buying a Software Package 7.3.1 Develop or Purchase? The organization need to make a decision either to develop themselves or purchase a system. The organization’s IT unit makes builds and develops in-house software. A software package is obtained from an outside vendor or application service provider. The package might be a standard commercial program or a customized package designed specifically for the purchaser. Companies that develop software for sale is refer to software vendors. A software packages are available for every types of business activity. If the software package can be used in many different types of organizations, it is refer to a horizontal application such as accounting package. If the software package developed is only can be used in a specific types of business; it’s refers to vertical application such as course registration designed specifically for Medinah University. 7.3.2 In-house Development Many project teams assume that it’s easy to develop the system from the beginning. Organization chooses in-house development because it allows the team to be flexible and creative in the way to solve the problems because they have complete control over way the system looks and functions. In both cases, it could be effective to create a new system from beginning that meets these highly specialized requirements. There are many reasons why the organization decides to develop their own software. Normally, organization chooses in-house development to satisfy their unique business requirements. Organizations choose to develop their own software because no commercially available software that meets their unique business requirements. For example, in Medinah University, they have their own curriculum requirements, student demands and also administration jobs. But, it’s hard to find packaged software that meet their unique requirements, so the best decision is to develop in-house software. Some organizations develop in-house software in order to meet the constraints with the existing system. Any new software installed must work with existing system. Besides the needs to meet the constraints with the current system, they might as well meet the constraint with existing technologies. 7.3.3 Purchasing a Software Package If an organization decides not to outsource and develop their own software, they can choose any commercial available software packages in the market. Many organizations choose to purchase a software package over developing in-house include because it’s advantage of lower costs. Because many organizations use software packages, the vendors spread the development costs to many customers, so the costs are less compared to other type of development. When we purchased a package, normally it’s ready to be used, so all the stages of in-house development are eliminated. Organizations that use commercial software packages often are able to reduce the number of programmers and systems analysts on the IT staff. Software vendors regularly upgrade the software by adding the improvement and enhancements to create a new version. Some of the business needs are similar with each other’s. Many organizations buy packaged software rather than developing their own custom solution. For example, most companies need a payroll and account system where this system can be met well by packaged software. Purchasing and ordering are common transaction for business, so, it’s better to buy a packaged purchasing and ordering system rather than developed it themselves. It’s much more efficient to buy an application that already been created, tested and proven by an expert. This application can be bought and installed directly after purchased. Packaged software can range from small single-function tools such as shopping cart program, shout box program to huge program such as a payroll and account system. Advantage of purchasing packaged system is the application is already developed by using a specific functions and it has been tested from errors and bugs. Some of the application are well established since have been used by other organizations. Purchasing packaged software is chosen if the system is needed urgently and there is packaged software that fulfills the requirements. Besides this advantage, one problem occurs if chosen this approach is the companies must accept all the functionality that is provided by the system. 7.3.4 Customizing a Software Package If the standard version of a software product does not satisfy an organization’s requirements, the vendor can consider adapting the package to meet its need. In Shelly et. al., 2006, there are three ways to customize a software packages : Purchase basic software that vendors will customize to suit the organization’s needs. Negotiate directly with the vendor to make enhancements to meet organization’s need by paying the changes Purchase the software and make our own modification based on organization’s needs if it permissible under the terms of the software license. Normally, in customizing the software, most vendors put the charges of modifications to the customers. The customized software will cost more and may take a longer time to obtain. 7.3.5 Exercises Answer TRUE or for FALSE for each of the questions below. 1. The most important consideration is in selecting a development strategy is total cost of ownership. TRUE 2. Vertical application is a software package that can be used in many different types of organizations such as payroll system. FALSE 3. Most organization chooses in-house development because it allows the team to build and develop a system specifically based on their unique requirement. TRUE 4. Purchase a software packages is quite cheap since the vendors spread the development costs to many customers. TRUE 5. Organization can customize the purchased software package, but may be they need to increase the fees. TRUE 7.4 PROTOTYPING Prototyping is the construction of a model of a system. Prototyping allows the system developers and users to sit down together, test the system design, checks the system functionality as well as appearance and usability. It’s a worthwhile technique for quickly gathering specific information about user’ information requirements. The prototype allows the system developer, users to sit and test the system such as checking the system functionality and also its aperance. Prototyping is known as iterative process. Changes are made to the model based on the result from the design tests. Since the design changes during the prototyping process, more and more design specification will be made during the process. To produce an effective prototyping, it should develop during the early stages of system development life cycle; as early as determining the system requirement. There are two types of prototyping evolutionary prototyping and throwaway prototyping. 7.4.1 Evolutionary Prototyping We begin by modeling parts of the system and if the prototyping process is successful, then we develop the rest of the system. They do the prototype until users satisfied with the system and it will be ready to release. The prototype can be served as a basis or reference for the system production itself. Because of that, normally it starts with those parts of the system that are the most difficult. If the difficult part can be solved, then there is the rest of the system can be developed. But if the most difficult part cannot be solved, the project may be cancelled. Although it is good since the users participate during the prototyping process but sometimes comes with several disadvantages. More time spends in the prototyping. But on the other way, the system developed is the best suit with the user requirement. If the prototype are going to be used as an actual system, so we need to follow the entire requirement that have been defined such as languages and tools selected. 7.4.2 Throwaway Prototyping Throwaway prototyping is a prototyping approach where the prototype will be discarded after the design. Like with its name, throwaway prototyping does not keep the prototype that has been developed. It’s different with evolutionary, there is never any intention to convert the prototype into working system. Prototype is developed quickly in order to demonstrate some aspect of the system which is not clear or to help users. Different with evolutionary prototyping, throwaway prototyping need to consider a simple and easy to use programming language. Then, the prototype can be act as a basis for the production a new system or discarded. 7.4.3 Exercises Answer TRUE or for FALSE for each of the questions below. 1. Prototyping will allow the system developers and users to sit down together and discuss anything about the system. TRUE 2. An advantage of prototyping is that it encourages and requires active end-user participation. TRUE 3. There are two types of prototyping; iterative prototyping and throwaway prototyping. FALSE 4. The advantage of using prototyping is the system developed is suited with the user’s requirements. TRUE 5. Iterative prototyping is a prototyping approach where the prototype will be discarded after the design. FALSE SUMMARY This is the end of lesson One. In this lesson, we have learned : overview of development strategy outsourcing in-house development prototyping In the next lesson, we will discuss the first step involved in system design; database design. Database is where all the information system’s data are kept as records and will be accessed again for the system’s used. So, it’s important to design a good database. SELF ASSESSMENT Fill in with the correct answer 1. There are two main approaches that need to be considered in development strategies; ________________________ and ________________________. outsourcing; in-house development 2. ________________________ is the transfer of information system development, operation or maintenance to an outside firm that provides these services. Outsourcing 3. The main difference between in-house development and outsourcing is, there is no new ________________________ in in-house development. procurement phase 4. There are two popular outsourcing options; ________________________ and ________________________. application service provider; internet business services 5. Organization chooses ________________________ because they want to satisfy their unique business requirements in the system development. in-house development 6. A ________________________ is obtained from an outside vendor or application service provider who designed it specifically for the purchaser. software package 7. Many organizations buy ________________________ rather than developing their own custom solution. packaged software 8. ________________________ is a software package that can be used in many different types of organizations such as payroll system. Horizontal application 9. The ________________________ approach is an iterative process involving a close working relationship between the designer and the users where a working, programmed model of the system is used to facilitate the specification of the design. prototyping 10. ________________________ is a prototyping approach where the prototype will be discarded after the design. Throwaway prototyping