Extreme Programming
· The most widely used approach to agile software development
· A variant of XP called Industrial XP (IXP) has been proposed to target process for large organizations
· It uses object oriented approach as its preferred development model
· Communication: To achieve effective communication, it emphasized close & informal (verbal) collaboration between customers and developers
· Simplicity: It restricts developers to design for immediate needs not for future needs
· Feedback: It is derived from three sources the implemented software, the customer and other software team members, it uses Unit testing as primary testing
· Courage: It demands courage (discipline), there is often significant pressure to design for future requirements, XP team must have the discipline (courage) to design for today
· Respect: XP team respect among members
· It considers four framework activities
1. Planning
2. Design
3. Coding
4. Testing
Planning
· User Stories
o Customers assigns value (priority)
o Developers assigns cost (number of development weeks)
· Project velocity
o Computed at the end of first release
o Number of stories implemented in first release
o Estimates for future release
o Guard against over-commitment
Design
· Keep-it-Simple (Design of extra functionality is discouraged)
· Preparation of CRC card is work project, CRC cards identify and organize object oriented classes
· Spike Solutions, Operational prototype intended to clear confusion
· Refactoring
· Modify internals of code, No observable change
Coding
· Develops a series of Unit test for stories included in current release
· Complete code perform unit-test to get immediate feedback
· XP recommend pair-programming, “Two heads are better than one”
· Integrate code with other team members, this “continuous integration” helps to avoid compatibility & interfacing problems, “smoke testing” environment to uncover errors early
Testing
· Unit test by developers & fix small problems
· Acceptance tests - Specified by customer