Extreme Programming (XP) has been an accepted form of software development for about eight years now. Many of the concepts found in this lightweight method of development have been implemented into the software shops without even the awareness that they were XP techniques. XP takes many of its fundamentals from other iterative development methodologies, including RAD and JAD. However, unlike those methodologies, which are more of a rapid prototyping approach, XP creates individual components that can be quickly developed and integrated into a larger software system. This article is written with the intent to help software developers understand the key concepts of this methodology and to provide a framework for implementing these processes into a business.
History
XP was created by Kent Beck and Ward Cunningham back in 1996, during a development project at Daimler Chrysler. Beck and Cunningham felt it was time for a better development process because the standard waterfall method left too many gaps and resulted in far too few successful implementations. The fundamental goals of XP were to increase communication, simplify the development process, and obtain feedback from the customer to ensure that requirements were met. XP was one of the first development processes that fell into the realm of iterative programming. This form of development changed the way developers think about the software life cycle because it provided a means to quickly demonstrate requirements with a functional application. Iterative programming both enables and requires modular design. This process can transform a large development effort into a smaller, task-oriented endeavor. This can be crucial when dealing with a project that must support changing customer requirements. The waterfall method typically requires too much time and results in a completed development project that is outdated by the time it is released. XP was created to give the customer a method by which to prioritize the requirements for software, thereby enabling the best bang-for-the-buck approach.
About Troy Holmes My name is Troy Holmes, I live in Northern Virginia. I have been working in the IT industry for 14 years currently working as a J2EE architect using Websphere 5.0. I have completed several large scale J2EE applications using both BEA and WebSphere. I am a certified Java Programmer, currently preparing for SCWCD and SCJA. I have been working in the java environment for 5 years. I am proficient in Java, C++, Power builder, VB, Unix Shell. I have more then 5 years experience in Oracle and 2 years experience in Informix. My professional background ranges from System Administrator to System Architect.
Dave Rooney wrote: First
off, I agree completely
with the comments that XP
wasn't "one of the first
iterative" processes.
For a good history of
iterative development,
have a look at the
article from Craig Larman
and Vic Basili at:
http://www2.umassd.edu/SW
PI/xp/articles/r6047.pdf
Secondly, my background
is in business systems
which likely has an
influence on my views
about agile development
and XP.
] In 1-2-3 how XP is
different from Rational
Unified Process (RUP)?
1) XP focuses on one main
artifact - the executable
software that actually
delivers business value
to the Customer.
2) Testing at all levels
is formalized into the
process, and various
frameworks are freely
available.
3) For the price of one
seat of Rational
Enterprise Suite, you can
buy a pretty big pile of
index cards! ;)
] So, IMHO, what XP
actually has int...
Infernoz wrote: Agreed
classic XP sucks.
As I think they say in XP
(ironically), if
something 'stinks' it
probably needs
refactoring e.g. pair
programming, frequent
unit testing *, frequent
refactoring, customer
representative on-site,
no real design etc...
* BTW how do you test the
test cases and is this
recursive? What about the
test case development
cost, including extra
test case costs, from
refactoring?
Consultants and business
analysts should damn well
do their jobs and get
workable specifications
from customers, it's
cheaper and more
maintainable overall to
develop a flexible, well
formed design than to
rush out brittle, naive
XP code and try to
understand/refactor the
mess, at much greater
cost later on.
I like pre-release
testing too, however I
prefer to input real user
data rather than
contrived data since re...
Jack C. Holt wrote: I
have chime in here:
Not knowing much about XP
up to a couple of days
ago when I read this
article, I was excited
but wary about its
principles. However, I
have new found a
wonderful and utterly
readable book that has
brought me back to my
senses. It is called
"Extreme Programming
Refactored: the Case
Against XP", by Matt
Stephens and Doug
Rosenberg from Apress (ht
tp://www.softwarereality.
com/ExtremeProgrammingRef
actored.jsp).
It does a wonderful job
of analyzing XP's
shortcomings and why they
are shortcomings. I am
an avid proponent of
automated testing and am
constantly searching for
ways to improve
customer/developer
communication and lessen
the onerous weight of
written design documents,
but almost anything to an
extreme can cause
problems. Even water will
kill if drunk constantly!
Deke G. wrote: The
Chrysler debacle is held
up by XP proponents as a
shining example of why XP
works. However, the
project was cancelled by
Chrysler in February 2000
because it wasn't
delivering - it was a
payroll system that was
only paying about 1/3 of
the employees. XP itself
says, "At the end of the
day, if the program
doesn't run and make
money for the client, you
haven't done anything."
Chrysler decided they
hadn't done anything.
Ask an XP proponent about
that failure, and you'll
get a lot of
spiritual-sounding
mumbo-jumbo and trite
phrases. One good one is
from Beck himself: "XP is
an emotional experience."
Thanks, but I have a
life outside work to
provide my emotional
experiences. I've read a
lot on XP from people on
both sides of the
argument, and I've
noticed that XP's
proponents use much more
spin a...
Gregory Smith wrote:
Mostly good article -
except ... "XP is one of
the few methodologies
that actually strives to
deliver high quality code
that meets the customer's
expectations"
I cannot think of one
software methodology that
makes a contrary claim.
Don't all methodologies
of note that strives to
deliver high quality code
and meet the customer's
expectations? Otherwise,
is it even a viable
methodology? Can anyone
name a serious
methodology that looks to
skip either quality or
customer satisfaction?
pat wrote: One more
thing: I am *not*
directing the comments
above to the author, but
rather to the editors who
chose to publish this
fine, if outdated
article.
pat wrote: Please, not
another article rehashing
the same, tired old XP
sales pitch. As one
commenter said, this
would have been novel
four years ago. What are
we going to have next,
another article about
JUnit? While this was
written well enough, it
does not provide a
balanced view of the pro
*and* the cons of XP and
where it is and is not
applicable. Anyway, XP
and JUnit seem to be two
topics that people write
about when they have
nothing else important to
say.
Steve wrote: I struggle
with XP. When it first
came out it rubbed me
completely the wrong way.
I read a number of
articles and Becks small
book entitled "Extreme
Programming Explained".
A few years later, and
based on my more
traditional view of
structured analysis and
development, I find one
thing true: do what
works for you. In my
humble but deadly
accurate opinion Use
Cases (and "Use" is not
short for "Usability" I
would like to clarrify)
and UML ar the most
helpful and misunderstood
tools of the trade today
and I highly recommend
that programmers just
slow down enough to strap
on those well honed
tools. Having said that,
the reason XP doesn't
really work is two
"reality based"
fundamentals:
1. Companies sponsoring
projects are looking to
contain cost. This is a
large downfall of XP
since based on it's vagu...
Sridhar Pandurangiah
wrote: Dave,
There is no harm in
developers writing user
stories but its better
the users write it
themselves, because this
helps them crystalise
their thoughts and
precisely state the
problem that needs to be
addressed.
Regards,
Sridhar Pandurangiah
Oleg Kirshon wrote:
Sridhar,
First, I'd like to thank
you for addressing
precisely what I was
asking. I appreciate your
digest, specific and
from what I know - full
answer.
From my observations on
how UML appeared and
matured as a methodology
(engineering culture) an
effort that RUP had
undertaken was to give a
perspective on how to use
UML in practice. RUP and
UML both have mutual
references and one
supports the other.
An Actor as a UML entity
is present to facilitate
the fact that Events in
the system being
initiated in a timeline.
Further, statefull
classes rely on Events as
a vehicle that drives
Class through it's
lifecycle from State to
State. Actor often
present in Sequence
diagrams.
Most importantly, RUP
introduced the concepts
of iteration and
incrementation as guiding
principles of the project
process.
O...
Sanmao wrote: The topic
is very limited, current
trends for software
engineering is towards
the 'Agile', but not 'why
XP'. XP is one of agile
ways. If you talk this
topic 4 years ago, might
be the perfect timing.
I'd rather read an
article 'Why Agile?'.
Lieven Doclo wrote: XP
discredited because of
Chrysler? One of the
examples of how XP could
be used to save a project
WAS Chrysler, or so I
have read...
http://www.xprogramming.c
om/publications/dc9810cs.
pdf
Deke G. wrote: I thought
XP had been thoroughly
discredited following the
Chrysler debacle. Around
my company, nobody
mentions XP if they want
to be taken seriously.
Eduard Lukschandl wrote:
I have been practising a
method I call RAPID
(RApid Prototyping and
Incremental Development)
since the early eighties
and as we used to write
the user“s manual one
step ahead of design and
coding we always
fulfilled the customer“s
expectations.
So, IMHO, what XP
actually has introduced
are 2 things:
-1- pair programming
-2- daily meetings
Both are social aspects,
and it was not possible
to convince anyone of
their benefits to the
development process.
I remember a study made
by IBM in the late
seventies about the
importance of the social
aspects when assigning a
team for a development
project. My conclusion
was, and later experience
confirmed, that it is not
easy to get a bunch of
notoriously
individualistic
programmers to work
together much more than
through interfaces.
(One could compare
pair-progr...
Dave Conner wrote: Good
and insightful summary -
thanks. I've read quite a
few articles on XP and
other modern
methodolgies, and yours
was among the best
organized...I was about
to cancel my subscription
to JDJ, but I might read
it again.
I had a quick question -
would you say that users
always write user
stories? We've had
projects where developers
wrote stories while
interviewing customers...
this technique seems to
work pretty well.
Sridhar Pandurangiah
wrote: Oleg,
To answer your question I
should first mention that
RUP the Rational Unified
Process is a product. It
is shipped along with the
Rational Suite and is a
set of process,artifacts
and guidelines based on
UP. It is UP or Unified
Process that is the
Process.
UP is different from XP
in several ways. I'll
mention a few of them
1. There are no daily
stand up meetings
2. The concept of actors
in UP is not found in XP
3. In XP code is written
to pass a pre defined set
of test cases. In UP you
write the code and then
test it.
4. There is no pair
programming in UP, XP
recommends pair
programming
Phases of XP
------------
Planning - User stories,
release plan, small
release, measure
velocity, iterate, plan
iteration, move people,
stand up meeting, Fix XP
Designing - System
metaphor, CRC cards,
Spike solut...
I took the advice of a
friend of mine and
steered clear of the
'normal' movie theaters
and went a little out of
the way to go to a DLP
movie theater. The
experience of comparing a
regular movie theater to
a DLP movie theater is
like comparing standard
def analog TV with a
1080i HDTV si
From Application
Virtualization to Xen, a
round-up of the
virtualization themes &
topics being discussed in
NYC June 23-24, 2008 by
the world-class speaker
faculty at the 3rd
International
Virtualization Conference
& Expo being held by
SYS-CON Events in The
Roosevelt Hotel, in
midtown
Verizon Wireless is
snubbing Google's
Linux-based Android
initiative to go with the
LiMo Foundation's mobile
Linux spec for its next
wave of mobile phones
expected next year. Along
with Verizon, Mozilla
signed up - giving the
consortium its first
major open source ISV -
and a key one f
Adaptec unveiled a new
family of entry-level
Unified Serial RAID
controllers. The new
low-profile Series 2 RAID
controllers, built on the
same Adaptec dual core
RAID-on-Chip (ROC)
architecture used in its
successful Series 5 RAID
controllers, provide
significant performance
enhancement
Sun's mule train has
finally pulled into
Indiana after three years
on the road. Indiana is
the Linux-friendly
Fedora-like OpenSolaris
project meant to move the
Solaris-shy Linux
community off Linux and
on to Solaris tempted by
Solaris widgetry like the
highly scalable,
rollback-easy, 1
Curl announced it has
released the availability
of an Ubuntu Installer
for the Curl Rich
Internet Application
(RIA) platform. Curl is a
Rich Internet Application
platform that competes
with Adobe AIR/Flex,
Silverlight, and Ajax.
Curl has been shipping
with Linux support for
RedHat 9, S
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS
SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
Click to Add our RSS Feeds to the Service of Your Choice: