Chapter 6

insourcing

involves in-house IT specialists within your organization to develop the system

selfsourcing

aka end-user development which is the development and support of IT systems by end users (knowledge workers) with little or no help from IT specialists

outsourcing

the delegation of specific work to a third party for a specified length of time, at a specified cost, and at a specified level of service

SDLC

system development life cycle; a structured step-by-step approach for developing information systems

waterfall methodology

a sequential, activity-based process in which one phase of the SDLC is followed by another, from planning through implementation

phase 1

planning phase; 1) define the system to be developed 2) set the project scope 3) develop the project plan

critical success factor CSF

a factor critical to your organization's success

project scope document

a written document of the project scope and is usually no longer than a paragraph

scope creep

occurs when the scope of the project increases beyond its original intentions

feature creep

occurs when developers and end users add extra features that were not part of the initial requirements

project plan

defines the what, when, and who questions of systems development including all activities to be performed, the individuals, or resources, who will perform the activities, and the time required to complete each activity

project manager

an individual who is an expert in project planning and management, defines and develops the project plan, and tracks the plan to ensure that all key project milestones are completed on time

project milestones

represent key dates by which you need a certain group of activities performed

phase 2

Analysis; it involves end users and IT specialists working together to gather, understand, and document the business requirements for the proposed system 1) gathering the business requirements 2) prioritize the requirements

business requirements

the detailed set of end-user requests that the system must meet to be successful

joint application development (JAD)

during a JAD session users and IT specialists meet to define and review the business requirements for the system

requirements definition document

once you prioritize the business requirements in order of business importance and place them in a formal comprehensive document called this..

sign-off

the user's actual signatures indicating they approve all the business requirements

phase 3

design; 1) design the technical architecture 2) design the system model

technical architecture

defines the hardware, software, and telecommunications equipment required to run the system

phase 4

development; 1) build the technical architecture 2) build the database and programs

phase 5

testing; 1) write the test conditions 2) perform the testing of the system

test conditions

the detailed steps the system must perform along with the expected results of each step

unit testing

tests individual units or pieces of code for a system

system testing

verifies that the units or pieces of code written for a system function correctly when integrated into the total system

integration testing

verifies that separate systems can work together

user acceptance testing (UAT)

determines if the system satisfies the business requirements and enables users to perform their jobs correctly

phase 6

implementation; 1) write detailed user documentation 2) provide training for the system users

user documentation

highlights how to use the system for new users

online training

runs over the internet or off a cd or dvd and employees can perform training at any time

workshop training

held in a classroom environment and is led by an instructor; most suitable for difficult systems

parallel implementation

uses both the old and new systems until youre sure that the new system performs correctly; low risk high cost

plunge implementation

discards the old system completely and immediately uses the new system; high risk low cost

pilot implementation

has only a small group of people using the new system until you know it works correctly and then the remaining people are added to the system

phased implementation

installs the new system in phases until youre sure it works correctly and then the remaining phases of the new system are implemented

phase 7

maintenance 1) build a help desk to support the system users 2) provide an environment to support system changes

help desk

a group of people who respond to users questions

component-based development (CBD)

a general approach to systems development that focuses on building small self-contained blocks of code (components) that can be reused across a variety of applications within an organization

(RAD) rapid application development

aka rapid prototyping methodology; emphasizes extensive user involvement in the rapid and evolutionary construction of working prototypes of a system to accelerate the systems development process

extreme programming methodology (XP)

breaks a project into tiny phases and developers cannot continue on to the next phase until the current phase is complete; develops the system in iterations; focus on team coding

agile methodology

a form of XP; aims for customer satisfaction through early and continuous delivery of useful software components; focus on limiting project scope

service-oriented architecture (SOA)

a software architecture perspective that focuses on the development, use, and reuse of small self-contained blocks of code (called services) to meet all the application software needs of an organization

end users

individuals who will use a system who although skilled in their own domain are not IT or computer experts, yet they know what they want from a system and are capable of developing such systems

invisible backlog

the list of all systems than an organization needs to develop but because of the prioritization of system development needs, never get funded because of the lack of organizational resources

prototyping

the process of building a model that demonstrates the features of a proposed product, service, or system

prototype

a model of a proposed product, service, or system

proof-of-concept prototype

a prototype you use to prove the technical feasibility of a proposed system

selling prototype

a prototype you use to convince people of the worth of a proposed system

request for proposal (RFP)

a formal document that describes in excruciating detail your logical requirements for a proposed system and invites outsourcing organizations to submit bids for development

service level agreement (SLA)

a formal contractually obligated agreement between two parties

service level specification or service level objective (SLS OR SLO)

technical specifications are included in a supporting document called...

onshore outsourcing

the process of engaging another company in the same country for services

nearshore outsourcing

contracting an outsourcing arrangement with a company in a nearby country, often sharing a border

offshore outsourcing

contracting with a company that is geographically far away

what book says about SDLC

book says SDLC doesnt use component-based development - NOT TRUE

waterfall methodology

adv: complete system control, very methodical, system is well documented. dis: implementation is very hard b/c customers arent involved until late, very costly to implement

prototyping

adv: user involvement, makes product more tangible w/ customers. dis: expensive, gives the customer the idea that it will come out so when it does not, no formal documentation process

XP & Agile Method

adv: has an idea what end user wants, very flexible development. dis: most costly, very time consuming

selfsourcing advantages

has a very good idea what they want; increases speed of development

outsourcing option 1

purchase existing software ex: microsoft office

outsourcing option 2

purchase existing software and pay publisher to make certain modifications ex: SAP for purdue

outsourcing option 3

purchase software and pay publisher for the right to make changes yourself ex: katalyst

outsourcing option 4

outsource the development of an entirely new and unique system for which no software exists ex: bank of america

outsourcing advantages

cost-effective, gives you access to resources that you otherwise wouldnt have, prediction of future costs

outsourcing disadvantages

communications, you arent getting the competitive advantage b/c you arent doing/creating the technology, your increasingly dependent on that company, lack of mgmt control