Agile Development: Software Engineering: A Practitioner's Approach, 7/e

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 12

Coming up: The Manifesto for

Agile Software Development 1


Software Engineering: A Practitioners Approach,
7/e

Chapter 3
Agile Development

copyright 1996, 2001, 2005
R.S. Pressman & Associates, Inc.

For University Use Only
May be reproduced ONLY for student use at the university level
when used in conjunction with Software Engineering: A Practitioner's Approach.
Any other reproduction or use is expressly prohibited.

Coming up: What is Agility? 2
The Manifesto for
Agile Software Development
We are uncovering better ways of developing software by
doing it and helping others do it. Through this work we
have come to value:
Individuals and interactions over processes and tools
Working software 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.
agilemanifesto.org
Kent Beck et al
Coming up: An Agile Process 3
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
Coming up: Extreme Programming (XP) 4
An Agile Process
Is driven by customer descriptions of what is
required (scenarios)
Recognizes that plans are short-lived
Develops software iteratively with a heavy
emphasis on construction activities
Delivers multiple software increments
Adapts as
changes
occur
Coming up: Extreme Programming (XP) 5
Extreme Programming (XP)
The second 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 form 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
Coming up: Extreme Programming (XP) 6
Extreme Programming (XP)
XP Design
Follows the KIS principle
Encourage the use of CRC cards (see Chapter 8)
For difficult design problems, suggests the creation of spike solutionsa design
prototype
Encourages refactoringan iterative refinement of the internal program design
XP Coding
Recommends the construction of a unit test for a store before coding commences
Encourages pair programming
XP Testing
All unit tests are executed daily
Acceptance tests are defined by the customer and executed to assess customer
visible functionality

Coming up: Dynamic Systems Development Method 7
Dynamic Systems Development Method
Promoted by the DSDM Consortium (www.dsdm.org)
DSDMdistinguishing features
Similar in most respects to XP
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. (configuration management)
Requirements are baselined at a high level
Testing is integrated throughout the life-cycle.
DSDM
An agile approach
A focus on frequent delivery of products
deliver something "good enough" earlier is always better than to
deliver everything "perfectly" in the end
When should we not use it?
Cases where there is no good enough
ultradependable/safety critical software
What else?
These courseware materials are to be used in conjunction with Software Engineering: A Practitioners Approach, 6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 8
Coming up: Scrum 9
Scrum
Originally proposed by Schwaber and
Beedle
Scrumdistinguishing 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
Currently seems to have overtaken XP as most popular

Coming up: Others 10
Scrum
Agile Idea
Frequent idea: Fix time, not features
11
Functionality
Time

Resources Functionality
Time

Resources
Agile
Prescriptive
FIXED
VARIABLE

Criticisms
Lack of structure and necessary documentation
Only works with senior-level developers
Incorporates insufficient software design
Requires meetings at frequent intervals at enormous expense to customers
Requires too much cultural change to adopt
Can lead to more difficult contractual negotiations
Can be very inefficient maybe code things multiple times as they change if the
requirements for one area of code change through various iterations, the same
programming may need to be done several times over. Whereas if a plan were
there to be followed, a single area of code is expected to be written once.
Hard to develop realistic estimates of work effort because at the beginning of the
project no one knows the entire scope/requirements
Agile is feature driven, non-functional quality attributes are hard to be placed as
user stories
Can increase the risk of scope creep due to lack of detailed requirements
12
Source: Wikipedia

You might also like