eXtreme Programming (XP)
is one of the
best-known agile processes. Created by Kent Beck,
by many to be "
hacking," but that is far from the case. XP is a disciplined
approach, requiring skilled people who are committed to adhering
closely to a
set of principles.
XP is a disciplined
approach, requiring skilled people adhering to a core set of
XP articulates five values to guide you in your
. Further, it prescribes a set of
practices to make these values concrete. Although it may be unclear
whether somebody really adheres to a value, you can easily tell
whether somebody adheres to the practice. XP practices are divided
. The primary practices are listed
helps you to communicate more effectively by being physically
collocated in the same room or office space.
talks about the importance of building a cohesive team with a
diverse set of skills required to complete the project.
you that if an outsider spends 15 seconds in
your workspace, he or she should be able to get a general idea of
how the project is going. What are the issues you are
items you are working on?
guides you in adjusting your work hours so that you function
effectively when working and avoid burnout.
tells you to write all production code in pairs,
with each person taking turns watching and assisting the other
programmer write code.
you to specify, in one or two sentences, capabilities that
typically take one or two days to implement. The customer
prioritizes which stories to implement and in what order.
means that at the beginning of each week you plan what should be
accomplished for that week by assessing status, prioritizing user
stories, and dividing
that programmers sign
allows you to step back and determine how to improve process,
remove bottlenecks, focus on the big picture of where to take the
projects, and do coarse-grained planning for the
in to the schedule as tasks that can be dropped or by assigning
certain time slots as slack time.
forces you to trim your automated build and automated
tests so that they take no more than 10 minutes.
aims at reducing the overall cost of integration
by forcing it to happen at least once every couple of hours.
tells you to write automated tests before
writing the code to be
guides you in doing a little bit of design every day,
but designing only for what you need today rather than for future
XP also articulates a set of fourteen principles
that function as the bridge between values and practices, guiding
you in how to apply the practices effectively in order to
the values. The principles are humanity, economics, mutual benefit,
, improvement, diversity, reflection, flow,
opportunity, redundancy, failure, quality, baby steps, and accepted