Chapter 3
Agile Development
1
Slide Set to accompany
Software Engineering: A Practitioner’s Approach, 7/e
by Roger S. Pressman
Slides copyright © 1996, 2001, 2005, 2009 by Roger S. Pressman
For non-profit educational use only
May be reproduced ONLY for student use at the university level when used in conjunction
with Software Engineering: A Practitioner's Approach, 7/e. Any other reproduction or use is
prohibited without the express written permission of the author.
All copyright information MUST appear if these slides are posted on a website for student
use.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman. 2
What is “Agility”?
n Effective (rapid and adaptive) response to
change
n Effective communication among all stakeholders
n Drawing the customer onto the team
n Organizing a team so that it is in control of the
work performed
Yielding …
n Rapid, incremental delivery of software
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman. 3
Agility and the Cost of Change
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman. 4
An Agile Process
n Is driven by customer descriptions of what is
required (scenarios)
n Recognizes that plans are short-lived
n Develops software iteratively with a heavy
emphasis on construction activities
n Delivers multiple ‘software increments’
n Adapts as changes occur
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman. 5
Waterfall Method
Requirements
Plan / Design
Develop / Implement
Test
Release to the client
Slide 6
Agile
Small Parcel of Work Small Parcel of Work Small Parcel of Work
Incorporate changes Incorporate changes
Take proceed / cancel Take proceed / cancel
decision decision
Slide 7
Agile – [Link]
Individuals and interactions over processes and tools
Working product over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on
the right, we value the items on the left more.
Agile – [Link]
• Highest priority – early & continuous delivery
Scrum
• Welcome changing requirements
Kanban DSDM
• Deliver working product frequently
SAFe
• Business and Developers work together daily
• Individuals & Interactions • Build projects around motivated individuals
4 12
XP
• Working Product • Most efficient communication – face-to-face
• Working product – Primary measure of progress
LeSS Values
• Customer Collaboration
Principles
• Promote sustainable development
• Responding to Change
• Continuous attention to excellence
ScrumBan
• Simplicity is essential
• Self-organizing teams
Many • Inspect and adapt at regular intervals
Practices
Human Factors
n the process molds to the needs of the people and
team, not the other way around
n key traits must exist among the people on an
agile team and the team itself:
n Competence.
n Common focus.
n Collaboration.
n Decision-making ability.
n Fuzzy problem-solving ability.
n Mutual trust and respect.
n Self-organization.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman. 12
Scrum
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman. 13
Scrum Roles
• Ensures Scrum Team adheres to Scrum values, practices and rules
• Helps Scrum team and organization adopt Scrum
Scrum Master • Coaches Scrum team to be more productive and deliver quality products
• Helps make changes required for helping Scrum succeed
• Removes impediments and protects team from disruption
• Knowledgeable – clear about goals and how to deliver success
• Maintains the product backlog and release burn down chart
• Only he prioritizes work to be done
Product Owner
• Ensures value of work delivered by Scrum team
• Is a person not a committee having authority to make priority decisions
• Immediately available
• Turns product backlog into potentially shippable functionality every Sprint
• Are cross functional self-organizing teams with all necessary skills
Team • Self Motivated to deliver excellent Products and Services
• Self Motivated to improve skills and capabilities
• Willing to help each other and work outside comfort zone
Slide 14
Scrum Norms
n Sprint can be no longer than 4 weeks
n Produce releasable Product/Service at the end of every sprint
n Team are self organizing - picks up the tasks they will perform
n Team size in the range of 5-9 people excluding scrum master
and product owner
n Everything is Time-boxed
n No titles – everyone contributes irrespective of the role and type
of work
n No changes during the course of a sprint to the sprint backlog
including team
n Artifacts
• Product Backlog
• Sprint backlog
• Release Burn down Chart
• Sprint Burn down Chart
Slide 15
Definition of Done (DoD)
n Goal at the end of the Sprint is to be done
n Definition of Done - What does done mean?
n To be clear about what is meant by done, Product
Owner and Team must agree on the definition of done
n Anything that doesn’t meet the definition of done isn’t
done!!!
Slide 16
Extreme Programming (XP)
n A widely used agile process, originally
proposed by Kent Beck
n XP Planning
n Begins with the creation of “user stories”
n Agile team assesses each story and assigns a cost
n Stories are grouped to for a deliverable increment
n A commitment is made on delivery date
n After the first increment “project velocity” is used to
help define subsequent delivery dates for other
increments
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman. 17
Extreme Programming (XP)
n XP Design
n Follows the KIS principle
n Encourage the use of CRC cards (see Chapter 8)
n For difficult design problems, suggests the creation of “spike
solutions”—a design prototype
n Encourages “refactoring”—an iterative refinement of the internal
program design
n XP Coding
n Recommends the construction of a unit test for a store before
coding commences
n Encourages “pair programming”
n XP Testing
n All unit tests are executed daily
n “Acceptance tests” are defined by the customer and excuted to
assess customer visible functionality
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman. 18
Extreme Programming (XP)
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman. 19
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman. 20
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman. 21
Adaptive Software Development
n Originally proposed by Jim Highsmith
n ASD — distinguishing features
n Mission-driven planning
n Component-based focus
n Uses “time-boxing” (See Chapter 24)
n Explicit consideration of risks
n Emphasizes collaboration for requirements gathering
n Emphasizes “learning” throughout the process
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman. 22
Adaptive Software Development
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman. 23
Dynamic Systems Development Method
n Promoted by the DSDM Consortium ([Link])
n DSDM—distinguishing features
n Similar in most respects to XP and/or ASD
n 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.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman. 24
Dynamic Systems Development Method
DSDM Life Cycle (with permission of the DSDM consortium)
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman. 25
Crystal
n Proposed by Cockburn and Highsmith
n Crystal—distinguishing features
n Actually a family of process models that allow
“maneuverability” based on problem characteristics
n Face-to-face communication is emphasized
n Suggests the use of “reflection workshops” to
review the work habits of the team
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman. 26
Feature Driven Development
n Originally proposed by Peter Coad et al
n FDD—distinguishing features
n Emphasis is on defining “features”
• a feature “is a client-valued function that can be
implemented in two weeks or less.”
n Uses a feature template
• <action> the <result> <by | for | of | to> a(n) <object>
n A features list is created and “plan by feature” is
conducted
n Design and construction merge in FDD
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman. 27
Feature Driven Development
Reprinted with permission of Peter Coad
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman. 28
Agile Modeling
n Originally proposed by Scott Ambler
n Suggests a set of agile modeling principles
n Model with a purpose
n Use multiple models
n Travel light
n Content is more important than representation
n Know the models and the tools you use to create them
n Adapt locally
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman. 29