Information Systems
Systems Development
Topics
Developing Enterprise Applications
The Systems Development Life Cycle
Software Development Methodology: Waterfall
Agile Software Development Methodologies
Project Management
Using Project Management to Deliver Successful Projects
Primary Project Planning Diagrams
Outsourcing Projects
Systems Development and Organizational
Change (1 of 2)
IT-enabled organizational change
Automation
Increases efficiency
Replaces manual tasks
Rationalization of procedures
Streamlines standard operating procedures
Often found in programs for making continuous quality improvements
Total quality management (TQM)
Six Sigma
Systems Development and Organizational Change (2
of 2)
Business process redesign
Analyze, simplify, and redesign business processes
Reorganize workflow, combine steps, eliminate repetition
Paradigm shifts
Rethink nature of business
Define new business model
Change nature of organization
Organizational Change Carries Risks and
Rewards
Business Process Redesign
Business process management (BPM)
Variety of tools, methodologies to analyze, design, optimize
processes
Used by firms to manage business process redesign
Steps in BPM
1. Identify processes for change
2. Analyze existing processes
3. Design the new process
4. Implement the new process
5. Continuous measurement
As-is Business Process for Purchasing a Book from a
Physical Bookstore
Redesigned Process for Purchasing a Book Online
Tools for Business Process Management
Identify and document existing processes
Identify inefficiencies
Create models of improved processes
Capture and enforce business rules for performing, automating
processes
Integrate existing systems to support process improvements
Verify that new processes have improved
Measure impact of process changes on key business performance
indicators
THE SYSTEMS DEVELOPMENT LIFE CYCLE
Software that is built correctly can transform as the organization
and its business transforms
Software that effectively meets employee needs will help an
organization become more productive and enhance decision
making
Software that does not meet employee needs may have a
damaging effect on productivity and can even cause a business to
fail
THE SYSTEMS DEVELOPMENT LIFE CYCLE
As organizations’ reliance on software
grows, so do the business-related consequences
of software successes and failures including:
Legacy system - An old system that is fast approaching or
beyond the end of its useful life within an organization
Conversion - The process of transferring information
from a legacy system to a new system
Off-the-shelf application software - Supports general
business processes and does not require any specific
software customization to meet the organization’s needs
Software customization - Modifies software to meet
specific user or business requirements
THE SYSTEMS DEVELOPMENT LIFE CYCLE
• Increase or decrease revenue
• Nike’s poorly designed SCM software delayed orders,
increased excess inventories, and caused third quarter
earnings to fall 24% below expectations
• Repair or damage to brand reputation
• H&R Block customers were furious when the company
accidentally posted passwords and social security numbers
to its Web site
• Prevent or incur liabilities
• FoxMeyer sued SAP for $500 million for an ERP failure
• Increase or decrease productivity
• Defective software accounts for 45% of computer
downtime and cost U.S. businesses $100 billion
THE SYSTEMS DEVELOPMENT LIFE CYCLE
Systems
development life
cycle (SDLC) – The
overall process for
developing information
systems from planning
and analysis through
implementation and
maintenance
Activities of Systems Development Life Cycle (SDLC)ideas
• Brainstorm
• Set a plan
• Support
• System changes • Requirements
and support gathering
• Constraint analysis
• Integration • Client Sign-off
testing
• Technical
architecture
• System design
• Pseudocode
• User
documentation
• User training
• Test case writing • Build the technical
• Testing architecture
• Coding software
• Database development
THE SYSTEMS DEVELOPMENT LIFE CYCLE (SDLC)
1. Planning phase – Establishes a high-level plan of the intended
project and determines project goals
2. Analysis phase – Involves analyzing end-user business
requirements and refining project goals into defined functions and
operations of the intended system
3. Design phase – Establishes descriptions of the desired features
and operations of the system including screen layouts, business
rules, process diagrams, pseudo code, and other documentation
Methods for gathering business requirements
THE SYSTEMS DEVELOPMENT LIFE CYCLE (SDLC)
5. Development phase – Involves taking all of the detailed design
documents from the design phase and transforming them into the
actual system
6. Testing phase – Involves bringing all the project pieces together into
a special testing environment to eliminate errors and bugs, and verify
that the system meets all of the business requirements defined in the
analysis phase
7. Implementation phase – Involves placing the system into
production so users can begin to perform actual business operations
with it
THE SYSTEMS DEVELOPMENT LIFE CYCLE (SDLC)
Sample
Test
Conditions
THE SYSTEMS DEVELOPMENT LIFE CYCLE (SDLC)
THE SYSTEMS DEVELOPMENT LIFE CYCLE (SDLC)
7. Maintenance phase – Involves performing changes,
corrections, additions, and upgrades to ensure the system
continues to meet its business goals
SOFTWARE DEVELOPMENT METHODOLOGIES
There are a number of different software development
methodologies including
Waterfall
Agile
Rapid application development (RAD)
Extreme programming
Rational unified process (RUP)
Scrum
Some Issues:
Traditional Waterfall Methodology ■ Linear progression – changing
becomes very difficult
■ Inflexible and expensive
■ Managing costs is difficult
■ Expense of change increases at a
later stage
■ Not client friendly – changes
cannot incorporated
■ Low client involvement in the
software development
■ Client tests the final software at
the end
Agile Software Development Methodologies
■ An agile methodology aims for customer satisfaction through early and continuous
delivery of useful software components developed by an iterative process using
the bare minimum requirements.
Short analysis-design-coding cycles
Close user interaction
Flexible team composition
Reducing risk through early error
detection
Requirements flexible
Design changed based on customer
feedback
Popular Agile methods
Extreme programming
Scrum
Rapid Prototyping
RAPID APPLICATION DEVELOPMENT
METHODOLOGY (RAD)
Rapid application development
methodology– Emphasizes extensive user
involvement in the rapid and evolutionary
construction of working prototypes of a system to
accelerate the systems development process
Prototype – A smaller-scale representation or
working model of the users’ requirements or a
proposed design for an information system
The prototype is an essential part of the analysis phase
when using a RAD methodology
EXTREME PROGRAMMING METHODOLOGY
Extreme programming (XP) methodology – Breaks a
project into tiny phases, and developers cannot continue on
to the next phase until the first phase is complete
RATIONAL UNIFIED PROCESS (RUP)
METHODOLOGY
Rational Unified Process
(RUP) – Provides a framework
for breaking down the
development of software into
four gates
Gate One: Inception
Gate Two: Elaboration
Gate Three: Construction
Gate Four: Transition
RATIONAL UNIFIED PROCESS (RUP)
METHODOLOGY
Because RUP is an iterative methodology, the
user can reject the product and force the
developers to go back to gate one.
Approximately 500,000 developers have used
RUP in software projects of varying sizes in the
20 years it’s been available, according to IBM.
RUP helps developers avoid reinventing the
wheel and focuses on rapidly adding or
removing reusable chunks of processes
addressing common problems.
SCRUM METHODOLOGY
SCRUM – Uses small teams
to produce small pieces of
deliverable software using
sprints, or 30-day intervals,
to achieve an appointed goal
Under this methodology, each
day ends or begins with a
stand-up meeting to monitor
and control the development
effort
Principles behind the Agile Manifesto [1]
We follow these principles:
1. Our highest priority is to satisfy the customer through early and
continuous delivery of valuable software.
2. Welcome changing requirements, even late in development. Agile
processes harness change for the customer's competitive advantage.
3. Deliver working software frequently, from a couple of weeks to a
couple of months, with a preference to the shorter timescale.
4. Business people and developers must work together daily throughout
the project.
5. Build projects around motivated individuals. Give them the
environment and support they need, and trust them to get the job done.
Principles behind the Agile Manifesto [2]
6. The most efficient and effective method of conveying information to
and within a development team is face-to-face conversation.
7. Working software is the primary measure of progress.
8. Agile processes promote sustainable development. The sponsors,
developers, and users should be able to maintain a constant pace
indefinitely.
9. Continuous attention to technical excellence and good design
enhances agility.
10. Simplicity--the art of maximizing the amount of work not done--is
essential.
11. The best architectures, requirements, and designs emerge from self-
organizing teams.
12. At regular intervals, the team reflects on how to become more
effective, then tunes and adjusts its behavior accordingly.
Scrum: How to do twice as much in half the time by Jeff Sutherland
https://www.youtube.com/watch?v=s4thQcgLCqk
https://www.youtube.com/watch?v=2L1oBLTICx4
Agile Manifesto
https://agilemanifesto.org/
https://www.youtube.com/watch?v=AGdi3zZutXk
https://www.youtube.com/watch?v=NMXc-r-m1K0
Issues with Agile
The documentation is unclear – without proper tools
Greater pressure on the developers on a daily basis
Excessive changes during the development
Communication and interaction with customer becomes critical
Agreements with customers is often changed
Experienced resources is critical
Capacity Planning is difficult
Advantages
Greater control of developers
End-user involvement
Thanks
THE SYSTEMS DEVELOPMENT LIFE CYCLE (SDLC)
THE SYSTEMS DEVELOPMENT LIFE CYCLE (SDLC)