In-house Development

advertisement
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
Download