Wednesday, September 17, 2008

What do you mean by Extreme Programming (XP)?

Extreme Programming (XP) is a well-known agile method; it emphasizes collaboration, quick and early software creation, and skillful development practices. It is founded on four values:
1. Communication
One of the key factors of software development teams that are highly successful is their ability
to communicate effectively. Teams that communicate often in an open and honest environment
are able to make effective decisions and mitigate problems more quickly than teams
that don’t have that type of communication.
Communication comes in several forms: written, spoken, gestures, and body posture.
Traditionally, these types of communications can be executed in several fashions: formal documentation, e-mail, telephone, video conferencing, and face-to-face conversation. While all of
these forms of communication are useful, XP favors face-to-face communication.
2. Simplicity

Another key factor of software development teams that are highly successful is their ability to
make what they do as simple as possible. This includes the code they develop, the documentation
they produce, the processes they use, and the form of communication they choose.
Simplicity forces the team to build what is needed to satisfy requirements as they are defined
today, as opposed to building unnecessary features that may never be needed.
The result of keeping things simple is a reduction in code, processes, and documentation,
which, in turn, leaves additional time to incorporate more features into the system. After all,
the project stakeholders are paying for system features, not code with functionality they did
not request.
3. Feedback
Feedback is the XP value that helps the team members know if they are on the right track. This
is why feedback needs to be highly repetitive and frequent. In XP, feedback comes not only
from individuals and their interactions, but also from the automation of tests, the progress
charts that the tracker generates, and the successful acceptance of user stories.
Constant feedback keeps the development team from missing the project target. It ensures
that the software the team is developing is high quality and stable. Feedback also gives the project stakeholders the confidence that what they will receive is what they need and expect.
4. Courage.
It takes an enormous amount of courage to try something new. That is because individuals seem
to naturally resist change and fear the unknown. XP teams need courage when they encounter
resistance to what they are trying to do.
It also takes courage to expose your weaknesses. That is what developers are doing when
they pair-program.
It takes courage for the development team members to tell the project stakeholders that
they are not going to complete all of the user stories in a given iteration.

Extreme Programming, XP for short, is an Agile software development methodology that is
made up of a collection of core values, principles, and practices that provide a highly efficient
and effective means of developing software. At the core of XP is the desire to embrace the
change that naturally occurs when developing software. XP differs from other Agile methodologies because it defines an implementation strategy for practicing the above four core Agile values on a daily basis.

No comments: