Extreme Programming (XP) is an agile software development methodology that focuses on rapid feedback, simplicity, communication, and responsiveness to change. The key practices of XP include planning game, small releases, simple design, testing, pair programming, collective ownership, continuous integration, on-site customer, and coding standards. XP aims to improve quality and responsiveness through practices like test-driven development, frequent integration, and refactoring.
2. EXTREME PROGRAMMING
is a software development methodology which is intended
to improve software quality and responsiveness to changing
customer requirements.
XP is a lightweight, efficient, low-risk, flexible, predictable,
scientific, and fun way to develop software.
is one of the Agile software development methodologies. It
provides values and principles to guide the team behavior.
3. History
Extreme programming was created by Kent Beck during his
work on the Chrysler Comprehensive Compensation
System (C3) payroll project.[5] Beck became the C3 project
leader in March 1996 and began to refine the development
methodology used in the project and wrote a book on the
methodology (in October 1999, Extreme Programming
Explained was published)
4. XP Variables
Cost
-The amount of money to be spent. The resources (how many
developers, equipment etc.) available for the project are directly
related to this variable.
Time
-Determines when the system (release) should be done.
Quality
-The correctness of the system (as defined by the customer) and
how well tested it will be.
Scope
-Describes what and how much will be done (functionality).
5. Change-driven process
A risk is some “variable” that means a danger to the success of the project.
Typical risks are for instance
• Requirements change.
-The users needs change
-The problem changes
-The market changes
-The requirements are imprecise or not fully understood
XP explicitly deals with the first risk: “Embrace Change”.
6. XP Roles
Developer (also called Programmer by some teams)
- developer should know how to program.
Customer
- who should know what to program
tracker
- The job of the tracker is to gather whatever metrics are being tracked for the
project – at least the Load Factor and the Functional Test scores.
Coach
-is the responsibility of everyone in the team
Tester
-is really focused on the customer to help write test and runs them.
Consultant
- is to provide knowledge.
7. Values of XP
COMMUNICATION
- is one of the key factors necessary for the success of
software projects
SIMPLICITY
- strives for simple system
FEEDBACK
- feedback-driven process
COURAGE
-have a confidence to work quickly and redevelop as soon
and as often as necessary.
8. 12 Practices of XP
The Planning Game
-The XP planning process. Business gets to specify what the system needs to do.
Development specifies how much each feature costs and what budget is available per
day/week/month.
Small Releases
-Every release should be as small as possible, containing the most valuable business
requirements.
Metaphor
- is a simple evocative description of how the program works.
Simple Design
-. The system should be designed as simply as possible at any given moment
Testing
-Programmers develop software by writing tests first, and then code that fulfills the
requirements reflected in the tests. Customers provide acceptance tests that enable them to
be certain that the features they need are provided.
Refactoring
- XP Team Refactor out any duplicate code generated in a coding session
9. Pair Programming
-All production code is written by two programmers sitting at one machine, with one
keyboard and one mouse.
Collective Ownership
- the entire team takes responsibility for the whole of the system
Continuous Integration
- Code is integrated and tested many times a day, one set of changes at a time.
40-Hour week
- it emphasizes on the limited number of hours of work per week for every team
members,
On-site customer
- Development team has continuous access to the customer who will actually be using
the system.
Coding Standards
-Developers write all code in accordance with the rules emphasizing-
Communication through the code.
The least amount of work possible.
Consistent with the “once and only once” rule (no duplicate code).
Voluntary adoption by the whole team.
10. 5 Principle of XP
Rapid Feedback
- is to get the feedback, understand it, and put the learning back into the
system as quickly as possible.
Assume simplicity
-to treat every problem as if it can be solved with simplicity.
Incremental change
-solve problems with a series of small changes
Embracing Change
-The best strategy is the one that preserves the most options while
actually solving your most pressing problem.
Quality work
-emphasize test-first programming
12. XP Rules
Planning
- is also known as XP Planning Game
Designing
- The rule is ”always use the simplest possible design that gets the job
done”.
Coding
-Coding standards are to be followed.
Testing
-All codes must pass all unit tests before it is released.