Agile Development:
Most Important Features
Rapid Development Cycle
Rapid Delivery
Agile Development
Principles
When is
Agile Development
applicable?
Agile Methods:
Problems
Agile Methods:
Goals
Agile Methods:
Two Major Types
Scrum
Extreme Programming(XP)
Agile Model:
Organization of development work
Work on aspects of the software are organized into Activities, Tasks and Stories, sort of like use cases.
Plan Driven
vs
Agile
Development Models
Plan Driven models
More sequential, focus on well defined requirements engineering and specification. Great for large projects that expect very few changes to requirements
Agile Models
More cyclical and iterative. Operates with an expectation of changing requirements. Goes back and forth between Requirements Engineering phase and Design/Implementation phase.
Scrum:
Basic Description
Considered a “Management Side” model.
Work is divided into three phases: Planning, Sprint Cycles, and Project Closures.
Implementation/testing is done in relatively short “Sprint Cycles”
Focus on constant communication, daily meetings/updates on progress.
Scrum:
Three Phases
Scrum:
Activities of the Sprint Cycle
Scrum:
Questions that each team member answers during Daily Scrum
Extreme Programming(XP)
Basic Description
A “development side” agile method
Widely used.
Takes “common sense” software engineering principles and practices to the “extreme” level
Extreme Programming(XP)
Release Cycle
For each release/version;
Extreme Programming(XP)
Principles and their corresponding Practices
Principle
Practice
Customer Involvement
Customer Team Member
Requirements Specification
User Stories
Collaboration
Pair Programming
Testing
Test-Driven Development
Ownership
Collective Ownership
Integration
Continuous Integration
Extreme Programming(XP)
Development Techniques used
Pair Programming:
Basic Description
Pair Programming:
Benefits