SDLC – Beyond the Waterfall
Systems Development Life Cycle (SDLC)
• Many approaches to systems development
• Sequential versus Iterative Development–Understanding the difference between
these two approaches is essential
• Traditional Approach – Waterfall Model
Systems Development Life Cycle (SDLC)
• Traditional Approach is sequential
• Waterfall Model is a common example of a sequential approach
Initiation
Analysis
Investigation
Implementation
Design
Maintenance
SDLC - Waterfall Model
SDLC - Waterfall Model• What are the limitations of this approach?
–Cannot correct defects from previous stages
–No Feedback
– Expensive
Example• Existing System – Analysis stage– Extensive problem analysis and
Requirements gathered
• Move to next stage – Design stage–Create design based on previous analysis
stage
• What happens if something changes!!
Initiation
Analysis
Investigation
Implementation
Design
Maintenance
SDLC - Waterfall Model
SDLC – Waterfall Model
• Limitations of sequential approach has lead to the emergence of a more iterative approach
Traditional vs Agile
Traditional Methods•Waterfall Model•Spiral Model•V-Model
Agile Methods•Extreme Programming (XP)•Scrum•Adaptive Software Development•Dynamic Systems Development Method (DSDM)•Feature Driven Development
Why Agile?
• Instead of the traditional approach
Why Agile?
• A more effective method?
A Possible Solution…
• Agile software development
• Each of these iterations can be seen as miniature software projects
The Agile Software Development Manifesto
On February 11-13, 2001 Agile Alliance, (formed of software practitioners and consultants), formed and produced a Manifesto for Agile Software Development
Individuals and interactions over processes and toolsWorking software over comprehensive documentationCustomer collaboration over rigid contractsResponding to change over following a plan
People over Process
• Human interactions are more important than the company’s processes and tools
• Close team relationships
• Close working environment
Working Software
• Frequent output of working, tested software
• Keep It Simple Stupid (KISS)
Relationship With Customer
• Reduce the risk of not meeting the terms of contract
Responding to Change
• Contracts must be worded so as to allow change
So what makes an agile method?
• Incremental
• Cooperative
• Straightforward
• Adaptive
So what makes an agile method?
Agile Methods
• Extreme Programming (XP)• Scrum• Adaptive Software Development (ASD)• Crystal Clear and Other Crystal
Methodologies• Dynamic Systems Development Method
(DSDM) • Feature Driven Development