Chapter 3
Agile
Development
1
What is “Agility”?
◼ Effective (rapid and adaptive) response to
change
◼ Effective communication among all stakeholders
◼ Drawing the customer onto the team
◼ Organizing a team so that it is in control of the
work performed
Yielding …
◼ Rapid, incremental delivery of software
2
3
4
5
Agility and
the Cost of Change
6
7
12 Agile Principles
8
Some Real Life Examples
of Agile Model
◼ Restaurant orders:
◼ Preparation of some of the food before opening
the shop (sprint planning)
◼ continuous delivery of orders
◼ number of successful orders (velocity)
◼ Cricket team:
◼ Run rate (velocity)
◼ team (team self sufficient)
◼ over (sprint length)
◼ captain/ coach
Human Factors
◼ the process molds to the needs of the people and
team, not the other way around
◼ key traits must exist among the people on an
agile team and the team itself:
◼ Competence.
◼ Common focus.
◼ Collaboration.
◼ Decision-making ability.
◼ Fuzzy problem-solving ability.
◼ Mutual trust and respect.
◼ Self-organization.
10
Extreme Programming (XP)
◼ The most widely used agile process, originally
proposed by Kent Beck
◼ XP Planning
◼ Begins with the creation of “user stories”
◼ Agile team assesses each story and assigns a cost
◼ Stories are grouped to for a deliverable increment
◼ A commitment is made on delivery date
◼ After the first increment “project velocity” is used to
help define subsequent delivery dates for other
increments
11
Extreme Programming (XP)
Implementation
12
Adaptive Software Development
◼ Originally proposed by Jim Highsmith
◼ ASD — distinguishing features
◼ Mission-driven planning
◼ Component-based focus
◼ Uses time-boxing
◼ Explicit consideration of risks
◼ Emphasizes collaboration for requirements gathering
◼ Emphasizes “learning” throughout the process
13
Adaptive Software Development
14
15
16
Scrum
◼ Originally proposed by Schwaber and Beedle
◼ Scrum—distinguishing features
◼ Development work is partitioned into “packets”
◼ Testing and documentation are on-going as the
product is constructed
◼ Work occurs in “sprints” and is derived from a
“backlog” of existing requirements
◼ Meetings are very short and sometimes conducted
without chairs
◼ “demos” are delivered to the customer with the time-
box allocated
17
Scrum Concept
18
19
Scrum
Implementation
20
21
Scrum
Visualization
22
23
Dynamic Systems
Development Method
◼ Promoted by the DSDM Consortium
◼ DSDM—distinguishing features
◼ Similar in most respects to XP and/or ASD
◼ Nine guiding principles
• Active user involvement is imperative.
• DSDM teams must be empowered to make decisions.
• The focus is on frequent delivery of products.
• Fitness for business purpose is the essential criterion for acceptance of
deliverables.
• Iterative and incremental development is necessary to converge on an accurate
business solution.
• All changes during development are reversible.
• Requirements are baselined at a high level
• Testing is integrated throughout the life-cycle.
24
Dynamic Systems Development Method
DSDM Life Cycle (with permission of the DSDM consortium)
25
Crystal
26
Crystal
27
Crystal Implementation
28
Feature Driven Development
◼ FDD—distinguishing features
◼ Emphasis is on defining “features”
• a feature “is a client-valued function that can be
implemented in two weeks or less.”
◼ Uses a feature template
• <action> the <result> <by | for | of | to> a(n) <object>
◼ A features list is created and “plan by feature” is
conducted
◼ Design and construction merge in FDD
29
Feature Driven Development
Reprinted with permission of Peter Coad
30