Professional Documents
Culture Documents
Programming
Angelo Corsaro
corsaro@cs.wustl.edu
http://tao.doc.wustl.edu/~corsaro
Table of Contents
Software Development Life Cycle (SWDLC).
SWDLC Models.
Cost Of Change.
XP Introduction.
XP’s Values.
XP’s Principles.
XP’s Practices.
An XP Project Road-Map.
References. 2
A Brief Overview…
oftware Development Life Cycle
Requirements
Design
Coding
Unit Testing
Test
Integration
Acceptance Test
Maintenance
4
Generic Waterfall Model
development.
Unit Testing
Coding
Accptance Test Test and Integration.
both
System Enhancement
System Development
8
Other SWDLC Models
9
Cost of Change
One Universal Assumption of SW Engineering
is that the cost of changing a program rises
exponentially over time
One of the key assumption of XP is that the
cost of changing a program, can be kept
mostly constant over time.
This assumption is based on real-world
experience, and on the use of both better
Programming Practice
Programming Environments
XP is made of a collection of
Values
Rules/Principles
Practices
11
The Four Core Values of
XP
Communication.
XP Values
Simplicity.
Feedback.
Courage.
12
Communication
13
Simplicity
14
Feedback
16
Core XP Principles
Rapid Feedback.
XP Principles
Assume Simplicity.
Incremental Change.
Quality Work.
17
More XP Principles
Responsibility.
Small Initial
Investment. Local Adaptation.
Concrete Honest
Experiments. Measurement.
Coding Standards.
19
Putting it all Together 1/2
Planning Designing
User Stories Simplicity is the Key
Release Planning Choose a System
Release Plan Metaphor
Make Frequent Small CRC Cards
Releases Spike Solution
Project Velocity Never add Functionality
Iterative Development Early
Iteration Planning Refactor Mercilessly
Move People Around
Daily Stand Up Meeting
Fix XP When it Breaks
20
Putting it all Together 2/2
Coding Testing
On Site Customer Unit Tests
Coding Standard When a Bug is Found
Code Unit Then Test Acceptance Test
Pair Programming
Sequential Integration
Integrate Often
Collective Code
Ownership
Optimize Last
40 Hours a Week
21
XP Project
22
XP Project
23
XP Project
24
XP Project
25
References
http://www.extremeprogramming.org
http://www.xp2001.org
26