You are on page 1of 52

Managing Information Technology

6th Edition
CHAPTER 10
METHODOLOGIES FOR
CUSTOM SOFTWARE DEVELOPMENT

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 1


Methodologies for Custom Software
Development
• Although firms are likely to purchase software
packages whenever they can, the development of
custom software is still highly important and in
demand
• We will discuss different approaches to developing
customized applications
– Traditional Systems Development Life Cycle (SDLC)
– Evolutionary Prototyping
– Rapid Application Development (RAD)
– Agile Development

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 2


SYSTEMS DEVELOPMENT LIFE CYCLE
• Systems development life cycle (SDLC)
– Highly structured process for developing customized
applications
– Includes three phases and eight steps, although this can
vary across organizations

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 3


SYSTEMS DEVELOPMENT LIFE CYCLE
The SDLC steps
• Most often requires a lot of documentation
• Outputs from one step inputs to next
• Often referred to as the “waterfall” model
• Key characteristic is extensive formal reviews
at the end of each major step

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 4


SYSTEMS DEVELOPMENT LIFE CYCLE
The SDLC Waterfall
Definition
Construction
Feasibility
Definition
System
Construction DesignAnalys is
Requirements
System Building
Feasibility
System Design Analys is
System
System Testing
Definition
Building
Requirements
System Testing
Definition

Impl
Impl
eme
eme
ntati
ntati
on
on
II
n
n
ss
tt
aa
ll
ll
aa
tt
ii
o
o
n
n
O
O
p
p
ee
rr
aa
tt
ii
o
o
n
n
ss
M
M
aa
ii
n
n
tt
ee
n
n
aa
n
n
cc
ee

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 5


SYSTEMS DEVELOPMENT LIFE CYCLE
The SDLC steps
• Extensive up-front time spent determining
requirements to avoid expensive changes later

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 6


SYSTEMS DEVELOPMENT LIFE CYCLE
Definition phase
• The first phase of the SDLC is the definition
phase
• This phase contains two steps:
– Feasibility analysis
– Requirements definition

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 7


SYSTEMS DEVELOPMENT LIFE CYCLE
Definition phase – Feasibility analysis
• Three types of feasibility are assessed
1. Technical
• Primary responsibility of the IS analyst
• Based on
– Knowledge of current and emerging technological solutions
– IT expertise of in-house personnel
– Anticipated infrastructure needed to both develop and
support the proposed system

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 8


SYSTEMS DEVELOPMENT LIFE CYCLE
Definition phase – Feasibility analysis
• Three types of feasibility are assessed (cont’d)
2. Operational
• Primary responsibility of the business manager
• Entails assessing the degree to which a proposed
system addresses the business issues that gave rise to
the idea for a new information system

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 9


SYSTEMS DEVELOPMENT LIFE CYCLE
Definition phase – Feasibility analysis
• Three types of feasibility are assessed (cont’d)
3. Economic
• Business managers and IS analysts work together to
prepare a cost/benefit analysis
• IS analyst responsible for establishing the
developmental costs for the project

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 10


SYSTEMS DEVELOPMENT LIFE CYCLE
Definition phase – Feasibility analysis
• Deliverable is a 10-20 page document:
– Executive overview and recommendations
– Description of what system would do and how it
would operate
– Analysis of costs and benefits
– Development plan

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 11


SYSTEMS DEVELOPMENT LIFE CYCLE
Definition phase – Requirements Definition
• Focuses on processes, data flows, and data
interrelationships rather than a specific
physical implementation
• Requirements are gathered by:
– Interviewing individuals or groups
– Reviewing documents
– Observing employees doing their jobs

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 12


SYSTEMS DEVELOPMENT LIFE CYCLE
Definition phase – Requirements Definition
• Deliverable is a system requirements
document:
– Detailed descriptions of inputs and outputs,
processes used to convert input data to outputs
– Formal diagrams and output layouts
– Revised cost/benefit analysis
– Revised plan for remainder of project

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 13


SYSTEMS DEVELOPMENT LIFE CYCLE
Construction phase
• The second major phase of the SDLC is the
construction phase
• This starts after the systems requirements
document from the definition phase is approved
• The phase contains three steps:
– System design
– System building
– System testing

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 14


SYSTEMS DEVELOPMENT LIFE CYCLE
Construction phase – System design
• Includes:
– Deciding what hardware and software to use
– Designing structure and content of databases
– Defining programs and their interrelationships
• Good design is critical for the quality of the
system

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 15


SYSTEMS DEVELOPMENT LIFE CYCLE
Construction phase – System design
• Deliverable is a detailed design document:
– Models, such as diagrams of system’s physical
structure
– Descriptions of databases
– Detailed specification for each program in the
system
– Plan for the remaining steps of the Construction
phase

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 16


SYSTEMS DEVELOPMENT LIFE CYCLE
Construction phase – System building
• Includes:
– Producing the computer programs
– Developing or enhancing the databases and files
to be used by the system
– Procuring new hardware and support software

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 17


SYSTEMS DEVELOPMENT LIFE CYCLE
Construction phase – System testing
• Might require as much time as writing the code for
the system
• Involves testing by IS specialists, then user testing
• Multiple steps:
– Each module of code is tested
– Modules are assembled into subsystems and tested
– Subsystems are combined and entire system is
integration tested

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 18


SYSTEMS DEVELOPMENT LIFE CYCLE
Construction phase – System testing

User acceptance testing


● Ensures that the system performs reliably and does what it is supposed to do in
the user environment

Documentation


● Major mechanism of communication among members of the project team

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 19


SYSTEMS DEVELOPMENT LIFE CYCLE
Implementation phase
• The final phase of the SDLC is the
implementation phase
• The success of this phase is dependent upon
business managers
• The three steps in this phase are:
– Installation
– Operations
– Maintenance
Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 20
SYSTEMS DEVELOPMENT LIFE CYCLE
Implementation phase – Installation
• Includes:
– Building files and databases
– Converting relevant data from one or more old
systems to the new system
– Training system’s end users

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 21


SYSTEMS DEVELOPMENT LIFE CYCLE
Implementation phase – Installation
• Conversion from an old system to a new system
can be difficult
• Several transitioning strategies are commonly
used to assist in this change:
– Parallel: organization operates old system in parallel
with new system until new system is working
sufficiently
– Pilot: new system is introduced to only one part of
the organization first
Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 22
SYSTEMS DEVELOPMENT LIFE CYCLE
Implementation phase – Installation
• Transitioning strategies (cont’d)
– Phased: new system is implemented one
component at a time
– Cutover: old system is totally abandoned as soon
as the new system is implemented

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 23


SYSTEMS DEVELOPMENT LIFE CYCLE
Implementation phase – Operations
• New application begins operation in
“production mode”
• Project team is usually disbanded
• Requires adequate documentation
– System documentation for IS specialists who
operate and maintain the system
– User documentation for those who use the system

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 24


SYSTEMS DEVELOPMENT LIFE CYCLE
Implementation phase – Maintenance
• The process of making changes to a system
after it has been put into production mode
• Reasons for maintenance
– Correct errors in the system
– Adapt the system to changes in the environment
– Enhance or improve the system

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 25


SYSTEMS DEVELOPMENT LIFE CYCLE
Implementation phase – Maintenance
• Maintenance makes up about 80% of total
costs over a system’s life

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 26


SYSTEMS DEVELOPMENT LIFE CYCLE
Implementation phase – Maintenance
• Problems with maintenance:
– Documentation may not be updated when changes to
the system are made, causing problems for future
maintenance
– Changes to one part of the system may have an
unanticipated effect on other parts of the system (i.e.,
ripple effect )
– Maintenance is considered low-status work by
programmers, so typically only new programmers are
assigned the job
Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 27
SYSTEMS DEVELOPMENT LIFE CYCLE
Implementation phase – Maintenance
• Problems with maintenance (cont’d):
– Maintenance may introduce new errors into the
system
– If resources are not
available, business
managers may suffer
long delays before
needed changes are
made

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 28


SYSTEMS DEVELOPMENT LIFE CYCLE
The SDLC project team
• Usually temporary
• Includes personnel from IS and business units
• Has a project manager
– Traditionally from IS
– Can be from business unit
– May be one from each
– Responsible for success of project – delivering
quality system on time and within budget
Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 29
SYSTEMS DEVELOPMENT LIFE CYCLE
Managing an SDLC project
• Critical success factors:
– Manageable project size
– Accurate requirements definition
– Executive sponsorship

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 30


SYSTEMS DEVELOPMENT LIFE CYCLE
SDLC advantages and disadvantages

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 31


PROTOTYPING METHODOLOGY
• Takes advantage of fourth generation procedural
languages and relational database management
systems
• Enables creation of system (or part of system) more
quickly, then revise after users have tried it
• Is a type of evolutionary development process
• Can be used as a complete alternative to the SDLC or
within an SDLC process

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 32


PROTOTYPING METHODOLOGY
• Prototype examples:
– Input and output screens developed for users to
test as part of requirements definition
– “First-of-a-series” – a completely operational
prototype used as a pilot
– “Selected features” – only some essential features
included in prototype, more added later

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 33


PROTOTYPING METHODOLOGY
The prototyping steps

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 34


PROTOTYPING METHODOLOGY
The prototyping project team
• Representatives from IS and user
management necessary
• Need team members who can quickly build
systems using advanced tools
• Requires dedicated business user roles

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 35


PROTOTYPING METHODOLOGY
Prototyping advantages and disadvantages
• Advantages:
– Only basic requirements needed at front end
– Used to develop systems that radically change how work is
done, so users can evaluate
– Allows firms to explore use of new technology
– Working system available for testing more quickly
– Less strong top-down commitment needed at front end
– Costs and benefits can be derived after experience with
initial prototype
– Initial user acceptance likely higher

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 36


PROTOTYPING METHODOLOGY
Prototyping advantages and disadvantages
• Disadvantages:
– End prototype often lacks security and control
features
– May not undergo as rigorous testing
– Final documentation may be less complete
– More difficult to manage user expectations

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 37


PROTOTYPING METHODOLOGY
Prototyping within an SDLC process
• Two ways in which prototyping is usually
incorporated into an SDLC process:
1. Used in the
Definition phase
to help users
define system
requirements

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 38


PROTOTYPING METHODOLOGY
Prototyping within an SDLC process
• Two ways in which prototyping is usually
incorporated into an SDLC process:
2. Includes a pilot
implementation
of a working
prototype

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 39


NEWER APPROACHES
Rapid applications development (RAD)
• Hybrid methodology
combines aspects of
SDLC and prototyping
• Goal is to produce a
system in less than a
year

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 40


NEWER APPROACHES
Rapid applications development (RAD)

Joint application development (JAD)


● A technique in which a team of users and IS specialists engage in an intense and
structured process in order to minimize the total time required for gathering
information from multiple participants

Computer-aided software engineering (CASE) tool


● Any software tool used to automate one or more steps of a software development
methodology
41
Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall
NEWER APPROACHES
Rapid applications development (RAD)
• Types of CASE tools

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 42


NEWER APPROACHES
Rapid applications development (RAD)
• Advantages and disadvantages

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 43


NEWER APPROACHES
Agile methodologies
• Alternative methodology for smaller projects
• Objective is to deliver software with very low
defect rates
• Based on four key values:
– Simplicity
– Communication
– Feedback
– Courage

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 44


NEWER APPROACHES
Agile methodologies
• eXtreme programming (XP)
– Programmers write code in pairs
– Use simple design and frequent testing
– Three traits characterize the program design
1. System must communicate everything you want to
communicate
2. System must contain no duplicate code
3. System should have the fewest number of
components as possible

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 45


NEWER APPROACHES
Agile methodologies
• Scrum
– Based on well-orchestrated movement between team
members
• Similar to the coordination in a rugby scrum
– Emphasizes:
• Independent project teams
• Coordination and communication between and within
teams
• Iterative and continuous monitoring of work
• Highly efficient work methods

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 46


NEWER APPROACHES
Agile methodologies
• Scrum (cont’d)
– Approach utilizes:
• Daily Scrum meeting
• Scrum of Scrum meeting
• Sprint planning meeting
• Sprint review meeting

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 47


MANAGING SOFTWARE PROJECTS
USING OUTSOURCED STAFF
• Advantages of outsourcing:
– Helps keep software development costs down
– Make use of technical expertise not available in-
house
– Can hire capacity above baseline for current
amount of development work
– Frees up internal resources to work on more
strategic or proprietary projects
– Can often complete projects more quickly

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 48


MANAGING SOFTWARE PROJECTS
USING OUTSOURCED STAFF
• Onshore outsourcing: contracting with
companies within the same country or region
• Offshore outsourcing: contracting with
companies not within the same country or region
– Driven by price because labor costs are typically
much lower
– Risks include loss of some control, language and
cultural barriers, and threats of piracy of intellectual
property

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 49


MANAGING SOFTWARE PROJECTS
USING OUTSOURCED STAFF
• Offshore outsourcing is a good alternative
when:
– System requirements well-defined and remain
stable
– Time is of essence and 7x24 hour availability of
resources a good idea
– Cost of project important

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 50


MANAGING SOFTWARE PROJECTS
USING OUTSOURCED STAFF
• Guidelines for managing offsite outsourcer:
– Manage expectations, not staff
– Take explicit actions to integrate the offsite workers
– Communicate frequently
– Abandoning informal ways may result in increased rigor
– Create a centralized project management office
– Begin with pilot projects
– Hire offshore legal expertise
– Use secure and redundant communication links

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 51


All rights reserved. No part of this publication may be reproduced, stored in a
retrieval system, or transmitted, in any form or by any means, electronic,
mechanical, photocopying, recording, or otherwise, without the prior written
permission of the publisher. Printed in the United States of America.

Copyright © 2009 Pearson Education, Inc.  


Publishing as Prentice Hall

Copyright © 2009 Pearson Education, Inc.  Publishing as Prentice Hall 52

You might also like