eXtreme Programming (XP)
eXtreme Programming (XP) is a lightweight software
development method that, like
RDD , has its origins in the Smalltalk
community. XP was developed by Kent Beck, Ward Cunningham,
Martin Fowler, Ralph Johnson, Ron Jeffries, and others within
the XP community.
XP emphasizes the following
values:
Communication (verbal person-to-person
communication)
Simplicity (implementing “the simplest thing that could
possibly work”)
Feedback (from the system via a test case)
Courage (to refactor)
Respect (collective ownership)
XP recommends the following
principles:
Rapid Feedback (via automated testing of partial
executable application)
Incremental Change
Embrace Change
Quality Work
XP recommends the following
XP activities:
Coding
Testing
Listening
Designing
XP recommends the following
techniques:
The Planning Game
Frequent Releases
System Metaphor
Simple Design
Unit Tests and Function Tests
Refactor Mercilessly
Pair Programming
Collective Code Ownership
Continuous Integration
Fourty Hour Week
On-Site Customer
Coding Standards
OPF incorporates the following XP practices as OPF
techniques for performing tasks withing the following OPF
activities:
Project Management:
Requirements Engineering:
On-Site Customer (OPF Customer, User)
Use Case Cards for requirements elicitation
Collective Requirements Ownership
Design:
Refactoring
Collective Design Ownership
Implementation:
Coding Standards
Collective Code Ownership
Pair Programming
Refactoring
Integration:
Frequent Releases (builds)
Continuous Integration
Testing:
Collective Test Ownership
Unit Test and Function Tests (Testing First, Automated
Testing)
XP has the following weaknesses, some of which are quite
contraversial:
Very informal requirements
Very minimal and informal architecture
Lack of formal documentation
Weakness with regard to testing techniques
Heavy emphsis on making every developer a programmer who
is part of a pair programming team (i.e., there are very few
separate roles and teams).
Lack of defined process
Lack of support for reuse
Limited team size (less than 10 people per project)
Because XP is restricted to software development, it does
not address:
Systems developement
Application delivery
Business modeling (business, branding, and technology
strategy)
More information can be found at: