Lecture 3 Flashcards
Agile and rapid software development
agile prioritizes adapting, collaborating, and customer feedback
Why agile?
- fast delivery and develop
- evolving software
Characteristics of Agile development
- specification and design
- developed in increments
- frequent delivery of software
- minimal documentation
Agile manifesto and principles: Four core values
- people matter more than tools
- working software
- collaborate with customers
- embrace change
Agile manifesto and principles: twelve principles
- Deliver software continuously
- adapt to change
- release often
- collaborate closely
- face to face talk
- working software = progress
- steady development
- Prioritize quality
- great quality
- simplicity
- self-organizing teams
- always improve
Extreme programming (XP)
structured agile framework
Key XP activities
- planning game
- Design
- Coding
- Testing
key XP concepts
- Pair programming: Two developers work together
- Refactoring: Improving code structure
- small, frequent releases
Scrum process
agile methodology focused on iterative work cycles (sprints)
Key scrum elements
- Product backlog
- list of features - Sprint
- fixed-time development
cycle. - daily Scrum meetings
- 15 minute check ins - Scrum master
- facilitates meetings - Sprint review and demo
- Presenting completed
features. - Sprint retrospective
- reflecting on
improvements
Advantages of Scrum
- team collaboration
- opportunities for corrections
- Usable software at end of each sprint
Dynamic systems development method (DSDM)
agile framework on business value
DSDM core phases
- Feasibility check
- is the project viable?
- Prototype and feedback
- create/ test early models
- Refine and Build
- improve software
iteratively
- improve software
- Deploy
- release software
DSDM Key principles
*Focus on business needs
*Deliver on time
*Collaborate
*Quality/ iterative progress
Scaling Agile methodologies
Challenges of scaling agile
*Better for small teams
*Less documentation
*New projects over maintenance
Scaling Agile methodologies
Approaches to Scaling
- Scaling up
- Agile for big systems - Scaling out
- Agile across teams
- Mixing Agile w/ traditional methods