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