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: