Transcript Steverson
Extreme Programming
Mark Steverson
What Is Extreme Programming?
●
●
●
●
Extreme Programming (XP) is a lightweight, agile
methodology developed by Kent Beck
Designed to work with projects that can be built by teams
of two to ten programmers,that aren't sharply constrained
by the existing computing environment, and where
executing tests can be done in a fraction of the day
XP contains four values at its core: Communication,
Simplicity, Feedback, and Courage
Five Basic Principles: Rapid Feedback, Assume
Simplicity, Incremental Change, Embracing Change,
Quality Work
Practices of Extreme
Programming
●
●
●
●
●
●
The Planning Game – Determine the scope of the next release
by looking at business priorities and technical estimates
Small Releases – Release simple versions of the system often
Metaphor – A story of how the system works, the architecture
Simple Design – System should be designed as simply as
possible at any given moment
Testing – Test constantly, all tests must run flawlessly to
continue development.
Refactoring – Programmers can restructure the system at any
time without changing behaviour to simplify, remove
duplication, or add flexibility
Practices Continued
●
●
●
●
●
●
Pair Programming – All code is written by two programmers
using one machine
Collective Ownership – Everyone owns the code and can
modify it at any time
Continuous Integration – Every time a task is completed it
should be integrated and tested, integration should take place
many times a day
40-Hour Week – Only work 40 hours a week, no overtime for
two weeks in a row
On-Site Customer – A person who will be using the system on
call at all time to answer questions.
Coding Standards - Code is written in a standard way by all
programmers to improve communication
Where Will XP not work?
●
●
●
●
Anytime you are using a technology with an inherently
exponential cost curve.
An environment where it takes a long time to gain
feedback
Any place where the physical environment is not suited
for communication
XP will not work well with a large amount of people