Monday, August 14, 2006

Extreme Programming (XP) Summary

What is XP?

XP is a software engineering methodology, the most prominent of several agile software development methodologies. XP prescribes a set of day-to-day practices for developers and managers said to enable the development process to be more responsive to the customers needs. XP tends to trade predictability more for adaptability. Proponents believe XP's flexibility is more realistic than traditional methodologies.

XP Values
  • Simplicity - It is better to implement the simplest solution.
  • Communication - Increases cooperation, group productiveness, and decreases mistakes.
  • Feedback - Keeps the project on track. Feedback should be almost continuous.
  • Courage - Required to be able to throw code away when it is appropriate, or to refactor late in the design to increase system performance.
XP Principals
  • Pair programming - Ensures quality code. One programmer is thinking whether the approach will work, about testing, or ways to simplify the code while the other programmer writes the code. The roles of the two programmers may change often, and programmer pairs may change often.
  • Simple design - Keep the design as simple as possible for the moment and don't add features that are not needed for current functionality. The reasoning behind this is that if a feature is not valuable now, it is not worth the investment until it is valuable.
  • Small releases - There is a short time between versions.
  • Refactoring - The code is restructured as necessary to improve structure and performance. Refactoring is done before additional capabilities are added, not while they are being added to be sure the system is not broken during refactoring.
  • Testing - Tests are written first and must run for design to continue. Testing is done often. Customers may determine tests required to determine what features work.
  • Integration - Code is continuously integrated together.
  • Correct working hours - Generally limited to 40 hours per week with no overtime for more than one week at a time. This is to keep programmers alert so they do not make mistakes.
  • Customer availability - The customer is on site to answer questions or at least is readily accessible.
  • Standards of coding - There are group rules for code so all members can understand the code readily.
  • Group ownership of code - All members of the group can change any code at any time.
When to use XP?

XP is more suited to projects where the full requirements are simply not known up front, are vague, and are very likely to change. In these situations it can be better to get something out to the user quickly, to get feedback early and often.


References:

Text:

Agile Software Development, Alistair Cockburn; Addison-Wesley, 2002

Web:

http://en.wikipedia.org/wiki/Extreme_Programming

http://www.byte-vision.com/MovingToXPArticle.aspx

1 Comments:

Blogger winstonwolf said...

Nice re-design mate. Looking sharp.

12:34 am

 

Post a Comment

<< Home