Agile Development Methods Flashcards
Agile Development:
Most Important Features
Rapid Development Cycle
Rapid Delivery
Agile Development
Principles
- Deliver Early and Often to satisfy customer
- Welcome changing requirements
- Face-to-Face communication is the best
- Measure progress against working software
- Simplicity is essential
When is
Agile Development
applicable?
- Small or medium sized product
- Commitment from customer to become involved in the development process
- Minimal external rules and regulations that affect the software
Agile Methods:
Problems
- Can be difficult to keep the interest of customers who are involved in the process
- Team members may be unsuited for the intense involvement of agile methods
- Prioritizing changes can be difficult with multiple stakeholders
- Like other forms of iterative development, contracts can be a problem
Agile Methods:
Goals
- Reduce overheads in software development process
- Ability to respond QUICKLY to changing requirements
- Avoid excessive rework when responding to changes
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.
- User Activities
- The “backbone” - major features
- User Tasks
- “Skeleton”
- Specific things the user can do with a given feature
- User Stories
- 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
-
Planning
- Project Outline
- Architectural Design
-
Sprint Cycle
- 1-4 weeks
- Focus on implementation/testing
- Project Closure
Scrum:
Activities of the Sprint Cycle
- Planning(Assess, Select)
- Generates: Backlog, Goals for Sprint
- Execution (Develop)
- With Daily Scrum(meeting)
- Generates: Product Increment
- Review
- Inspection/Testing
- Adapt
- Retrospective
- Inspection/Integration Testing
- Check progress against set goals
- Generates: Product Backlog
Scrum:
Questions that each team member answers during Daily Scrum
- Work accomplished
- What did I do YESTERDAY to meet sprint goal?
- Work planned
- What will I do TODAY?
- Expected Obstacles/Challenges
- Is there an impediment in the way of me or my team meeting the sprint goal?
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;
- Select User Stories for this release
- Breakdown Stories into Tasks
- Plan the release
- Develop/Integrate/Test software
- Release software
- Evaluate System
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