You are on page 1of 25

Chapter 3

Agile Process Models


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
Principles
 Satisfy customer through early and continuous delivery of
valuable software
 Welcome change in requirements, even late in development
 Deliver working software frequently.
 Business people and developers must together daily.
 Build projects around motivated individuals
 Have face-to face conversation
 Working software is the primary measure of progress
 Simplicity- the art of maximizing the amount of work not
done.
 Self organizing team
 At regular intervals performance tuning.
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
Extreme Programming (XP)
 XP has four Framework activities : planning, design,
coding, and testing.
 XP Planning
 Begins with the creation of a set of “user stories”
 The customer assigns a “value” to the story.
 Agile team assesses each story and assigns a cost- measured in
development weeks, if more than 3 then split.
 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

Extreme Programming (XP)
 XP Design
 Follows the KIS (keep it simple) principle
 Encourage the use of CRC (class-responsibility collaborator) cards
 For difficult design problems, suggests the creation of “spike solutions”—a design
prototype
 Encourages “refactoring”—an 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”- 2 people work together at one computer workstation
to create code for the story.
 XP Testing
 All unit tests are executed daily
 “Acceptance tests” are defined by the customer and executed to assess customer visible
functionality
spike solut ions
simple design
prot ot ypes
CRC cards
user st ories
values
accept ance t est crit eria
it erat ion plan

ref act oring

pair
programming

Release
sof t ware increment
unit t est
project v elocit y comput ed cont inuous int egrat ion

accept ance t est ing


Waterfall
Waterfall Iterative
Iterative XP
XP
Waterfall Iterative XP

Analysis

Design

Code

Test
XP Practices
 Planning game.
 Small releases.
 Simple design.
 Testing.
 Refactoring.
 Coding standards.
 Pair programming.
 Collective ownership.
 On-site customer.
 40-hour week.
 Open workspace.
 Continuous integration
Summary of testing
100% Unit
Tests Passed
Run all unit
tests
Failed
Create Pair End of Continuous
Task
Unit Test Programming Integration
Passed

Acceptance
Tests Passed
ExtremeProgramming.org
Adaptive Software Development
 A technique for complex software system.
 Focus on human collaboration and team self-organization
 ASD life cycle
 Speculation
 Collaboration
 Learning
adapt ive cycle planning Requirement s gat hering
uses mission st at ement JAD
project const raint s mini-specs
basic requirement s
t ime-boxed release plan

Release
sof t ware increment
adjust ment s f or subsequent cy cles
component s implement ed/ t est ed
f ocus groups f or f eedback
f ormal t echnical reviews
post mort ems
Dynamic Systems Development Method
 systems which meet tight time constraints –incremental
approach.
 Follows the 80 percent rule
 Only enough work is required for each increment for the movement
to next increment, the remaining details can be completed later
 Life cycle
 Feasibility study – basic requirement
 Business study – functional and informational requirement
 Provide buss.Value
 Defines appl arch.
 Functional Model iteration – f/b as they exercise prototypes
 Design and build iteration- revisits prototype to provide operational
buss.Value.
 Implementation – not 100% complete
Dynamic Systems Development Method
 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.
Scrum
 Principles
 Small working teams
 Max. comm.,
 Min. overhead
 Max. sharing of knowledge
 Process should be adaptable to both technical and business
changes
 Process yields frequent software increments
 Developers are partitioned into clean, low coupling partition
or packets.
 Constant testing and documentation
 Ability to declare a product done whenever possible.
Scrum
 Framework activities –
 Requirement
 Analysis
 Design
 Evolution
 Delivery

 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
 Backlog (prioritized list of requirements or features the
provide business value to customer, items can be added at any
time)
 Sprints (work units required to achieve one of the backlog
items, must fir into a predefined time-box, affected backlog
items frozen)
 Scrum meetings (15 minute daily meetings) addressing these
questions: What was done since last meeting? What obstacles
were encountered? What will be done by the next meeting?
 Demos (deliver software increment to customer for
evaluation)
Scrum Process Flow (used wit h permission)
Crystal
 Crystal—distinguishing features
 Actually a family of process models that allow
“maneuverability” based on problem characteristics
 Face-to-face communication is emphasized
 Suggests the use of “reflection workshops” to review the work
habits of the team
Crystal Principals
 Its always cheaper and faster to communicate face-to-face
 As projects grow in size, teams become larger and methodologies
become heavier
 As projects grow in criticality some degree of formality will need to be
introduced in parts of the methodology
 As feedback and communication become more efficient the need for
intermediate work products is reduced
 Discipline, skills, and understanding counter process, formality, and
documentation
 Team members not on the critical project path can spend their excess
time improving the product or helping people who are on the critical
path
 Incremental development strategy used with 1 to 3
month time lines
 Reflection workshops conducted before project begins,
during increment development activity, and after
increment is delivered
 Crystal methodologies
 Clear (small, low criticality projects)
 Orange (larger, moderately critical projects)
 Orange Web (typical e-business applications)
The following characteristics are notable for each of the
agile models discussed:
 XP— user stories, pair-programming, refactoring, and
continuous integration, incremental delivery
 ASD—adaptive cycle planning, time-boxing, risk-driven
planning, collaborative learning, self-organizing teams
 DSDM—operationalized prototyping
 Scrum—backlog, sprints, scrum meetings
 Crystal— a set of example agile processes, useful
principles

You might also like