Title: Information System Development
1Chapter 3
- Information System Development
- Sept. 13
2Overview for Today
- Projects
- The Software Crisis (course notes)
- 8 Principles of Systems Design
- Different approaches to AD
3What is the Software Crisis?
- Schedules and costs are often wrong
- Cant keep up with demand
- Quality is often poor
- 1997 Software costs 200B
- no sign of slowing down...
4What causes these trends?
- Lack of good data from past projects
- lessons learned
- repository, organizational memory
- Poor communication
- client needs
- designers abilities
- Testing, Quality, Reliability
- how do you measure?
- what is a good measure?
5IS Development Failures
- Complex software has a short history
- 40 years traditional
- 15 years of distributed
- Logical vs. Physical product
- Managers dont know methodologies
- IS specialist have little training in methods
- programmer resistance
- Hardware vs. software lifecycle
6Management IS Myths
- We dont need a new approach...
- Hardware, software, expectations change
- We already have procedures...
- But they are not used properly or at all!
- Just add more programmers...
- And overhead, and time, and costs, and ...
- Mythical Man Month
7User IS Myths
- General objectives are good enough, we can add
details later - code for flexibility, but cant anticipate it
all! - Well just change to code to fit the
requirements... - Do you want it done, or done right?
8System Development Life Cycles and Methodologies
- The process used to develop information systems
is called a methodology. - All methodologies are derived from a logical
system problem-solving process that is sometimes
called a system development life cycle. - A system development life cycle (SDLC) is a
logical process by which systems analysts,
software engineers, programmers, and end-users
build information systems and computer
applications to solve business problems and
needs. It is sometimes called an application
development life cycle.
9System Development Life Cycles and Methodologies
- What is a Methodology?
- A methodology is the physical implementation of
the logical life cycle that incorporates (1)
step-by-step activities for each phase, (2)
individual and group roles to be played in each
activity, (3) deliverables and quality standards
for each activity, and (4) tools and techniques
to be used for each activity. - A true methodology should encompass the entire
systems development life cycle. - Most modern methodologies incorporate the use of
several development tools and techniques.
10System Development Life Cycles and Methodologies
- Why Do Companies use Methodologies?
- Methodologies ensure that a consistent,
reproducible approach is applied to all projects. - Methodologies reduce the risk associated with
shortcuts and mistakes. - Methodologies produce complete and consistent
documentation from one project to the next.
11Intro to Methodologies
- Formal, structured process
- Based on industry best practices
- Really 3 types of methodology
- Sequential, Iterative, None
- Process Based vs. Data Based
- 8 Principles of design
12Principle 1Get Owner User Involvement
- Why?
- users know the domain
- users will be the ones to resist the system
- how do you overcome this?
- Make sure we have cross functional communication
- Get people to sign off on project
- hands on experience
13Principle 1Get Owner User Involvement
- Owner and user involvement is an absolute
necessity for successful systems development. - The individuals responsible for systems
development must make time for owners and users,
insist on their participation, and seek agreement
from them on all decisions that may affect them. - Methodologies reduce the risk associated with
shortcuts and mistakes. - Methodologies produce complete and consistent
documentation from one project to the next.
14Principle 2.Problem Solving Approach
- Understand the problem, cause/effects
- What will a solution look like?
- Where will your solution come from?
- Choose the best solution criteria?
- Observe Evaluate
- Seem a little too obvious?
15Principle 2 Problem-Solving Approach
- A methodology is, first and foremost, a
problem-solving approach to building systems. - The classical problem-solving approach is as
follows - Study and understand the problem (opportunity,
and/or directive) and its system context. - Define the requirements of a suitable solution.
- Identify candidate solutions and select the
best'' solution. - Design and/or implement the solution.
- Observe and evaluate the solution's impact, and
refine the solution accordingly.
16Principle 2 Problem-Solving Approach
- There is tendency among inexperienced problem
solvers to eliminate or abbreviate one or more of
the problem solving steps. - The result can be range from
- solving the wrong problem
- incorrectly solving the problem
- picking the wrong solution
17Principle 3.Establish Phases Activities
- Provide continuity and direction
- Can be completed
- linearly
- repetitively
- several at a time
- End of each phase is a quality check
- Establishes a time line for tracking
18Principle 4.Establish Standards for Consistent
Development and Documentation
- Helps deal with turnover style
- Establish expectation and accountability
- ongoing communication tool
- Documentation guidelines
- bad habits, doing things in wrong order
- strengths weaknesses
- Quality checks
- what was done, who did it, why, done correctly?
19Principle 5.Justify as Capital Investment
- Salesmanship! Build the economic case
- Compare several solutions
- buy or build, extent of IS, etc.
- Evaluate solutions for feasibility / risks
- Technical, Organizational, Economic, Schedule -
no more than 12 weeks! - Tangibles vs. Intangibles
20Principle 5. Justify Systems as Capital
Investments
- Information systems are capital investments.
- When considering a capital investment, two issues
must be addressed - for any problem, there are likely to be several
possible solutions - after identifying alternative solutions, the
systems analyst should evaluate each possible
solution for feasibility, especially for
cost-effectiveness. - Cost-effectiveness is defined as the result
obtained by striking a balance between the cost
of developing and operating a system, and the
benefits derived from that system. - Cost-benefit analysis is an important skill to be
mastered.
21Principle 6.Dont Be Afraid to Cancel or Revise
Scope
- Each phase is opportunity to evaluate!
- Cancel, re-evaluate, reduce scope
- dont keep going just because
- Creeping Commitments
- both a problem and a solution! why?
22Principle 6. Dont Be Afraid to Cancel or Revise
Scope
- A significant advantage of the phased approach to
systems development is that it provides several
opportunities to reevaluate feasibility. - In the long run, canceled projects are less
costly than implemented disasters! - Most analysts fail to adjust estimated costs and
schedules as scope increases. As a result, the
analyst frequently and needlessly accepts
responsibility for cost and schedule overruns.
23Principle 6. Dont Be Afraid to Cancel or Revise
Scope
- The creeping commitment approach
- Multiple feasibility checkpoints are built into
the systems development methodology. - At any feasibility checkpoint, all costs are
considered sunk (meaning irrecoverable) and
irrelevant to the decision. - The project should be reevaluated at each
checkpoint to determine if it is still feasible. - At each checkpoint, the analyst should consider
- cancellation of the project if it is no longer
feasible - reevaluation of costs and schedule if project
scope is to be increased - reduction of scope if the project budget and
schedule are frozen, but not sufficient to cover
all project objectives.
24Principle 7.Divide and Conquer
- Basically super- vs. sub-system
- supersystem is always in flux
- How does my piece fit in?
- Highly related to Phases Activities
25Principle 7.Divide and Conquer
- All systems are part of larger systems (called
super-systems). - Virtually all systems contain smaller systems
(called subsystems). - We divide a system into its subsystems in order
to more easily conquer the problem and build the
larger system. - By dividing a larger problem (system) into more
easily managed pieces (subsystems), the analyst
can simplify the problem-solving process.
26Principle 8.Design for Growth Change
- Entropy - inevitable decay of all systems
- cant just design for today
- lesson from on-line traders (schwabb, etrade,
etc) - what is the solution to this?
- Eventually, maintenance exceeds development costs
- what to do then?
27Principle 8.Design for Growth Change
- Many systems analysts have fallen into the trap
of developing systems to meet only today's user
requirements. - Entropy is the term system scientists use to
describe the natural and inevitable decay of all
systems. - During the support phase, the cost of maintenance
exceeds the costs of starting over the system
has become obsolete.
28Principle 8.Design for Growth Change
- Systems that are designed to meet only current
requirements are difficult to modify in response
to new requirements. - Many systems analysts become frustrated with how
much time must be dedicated to supporting
existing systems (often called legacy systems),
and how little time is left to work on important,
new systems development. - Today's tools and techniques make it possible to
design systems that can grow and change as
requirements grow and change. - Flexibility and adaptability do not happen by
accident they must be built into a system.
29Underlying Principles of Systems Development
1. Get the owners and users involved 2. Use a
problem-solving approach 3. Establish phases and
activities 4. Establish standards for consistent
development and documentation 5. Justify systems
as capital investments 6. Dont be afraid to
cancel 7. Divide and conquer 8. Design systems
for growth and change
30For next time...
- Finish Chapter 3, Information Systems Development
- Next Class
- Guest Speaker from EY
- Milestone 2, Group Contract
- due Monday, September 20