Agile Programin
Agile Programin
pair
programming
Release
sof t ware increment
unit t est
project v elocit y comput ed cont inuous int egrat ion
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