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
SDLC - Waterfall Model Initiation Investigation Analysis Design Implementation Maintenance
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!!
SDLC - Waterfall Model Initiation Investigation Analysis Design Implementation Maintenance
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 tools Working software over comprehensive documentation Customer collaboration over rigid contracts Responding 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
So what makes an agile method? Straightforward Adaptive
Agile Methods Extreme Programming (XP) Scrum Adaptive Software Development (ASD) Crystal Clear and Other Crystal Methodologies Dynamic Systems Development Method (DSDM) Feature Driven Development