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