Extreme Programming is a methodology in an Agile way for developing quality software or change stakeholder's requirements quickly by putting more focus on coding rather than design and continuous collaboration with the customer.
2. Outline
• What is a Methodology?
• What is Agile Method?
• What is XP?
• History
• Agile vs XP
• Activities in Extreme Programming
• 12 Key Practices of XP
• References
12/16/2019 2
3. What is a Methodology?
• A methodology is a formalized process for creating
software
–A set of rules you have to follow
–A set of conventions the organization decides to follow
–A systematical, engineering approach for organizing
software projects
12/16/2019 3
4. What is Agile Method?
• Code is important rather than the design.
• An iterative approach to software
development.
• Intended to deliver working software
quickly and evolve this quickly to meet
changing requirements.
• Involving constant collaboration with
stakeholders and continuous
improvement and iteration at every
stage.
12/16/2019 4
https://chercher.tech/jira/agile-methodology
5. What is Extreme Programming (XP)?
Extreme Programming (XP) is an agile Process model of
software development
Small to medium-sized teams,
Requirements change quickly.
Goal: Intend to decrease the cost of changes.
12/16/2019 5
6. History
• Kent Beck developed extreme programming during his
work in the Chrysler Comprehensive Compensation
System (C3) payroll project.
• His first book on this methodology published in 1999 and
the second version after five years.
• In the second edition he added more values and
practices.
12/16/2019 6
7. Agile vs XP
• XP is a set of practices that conform to the values and principles of Agile.
• XP is a discrete method, whereas Agile is a classification.
• Unlike other Agile approaches, XP has no intermediaries between the
customer and the team.
• Unlike other Agile approaches, XP has a solution if the knowledge is lost.
12/16/2019 7
9. 12 Key Practices of XP
1. The Planning Game
2. Small Releases
3. Metaphor
4. Simple Design
5. Test-Driven Development
6. Refactoring
7. Pair Programming
8. Collective Code Ownership
9. Continuous Integration
10.40-Hour Workweek
11.On-site Customer
12.Coding Standards
https://www.xpprogramming.com
12/16/2019 9
10. The Planning Game
• A result of a collaboration between the customer and the
developers.
• Planning for the upcoming iteration.
• Uses stories provided by the customer.
• Technical persons determine schedules, estimates,
costs, etc
12/16/2019 10
11. Small Releases
• Small in terms of functionality;
• Releases happen more frequently;
• Support the planning game.
12/16/2019 11
12. Metaphor
• The oral architecture of the system.
• A common set of terminology.
12/16/2019 12
13. Simple Design
• Do as little as needed, nothing more.
• Keep it simple, stupid
12/16/2019 13
14. Testing
• Testing is done throughout the entire process.
• All tests must run and pass with 100% before new
development.
• There are 2 types of tests that involve in this process:
– Test-Driven Development (TDD);
– Acceptance Tests.
12/16/2019 14
15. Refactoring
• Changing how the system does something but not what
is done.
• Improves the quality of the system in some way.
12/16/2019 15
16. Pair Programming
• Two programmers are working on the same computer to
complete a single task.
• Programmer 1 – responsible to write and implement the
code.
• Programmer 2 – watch the implementation and identifies
any code errors.
12/16/2019 16
17. Collective Code Ownership
• Any developer must have the ability to work on any part of
the code.
• No specific developer that responsible for a specific
component.
• A new code is reviewed by the entire team.
• Increase the responsibility of developers.
12/16/2019 17
18. Continuous Integration
• In xp developers must keep the system fully integrated at
all times.
• All unit tests must be run and pass with 100%.
12/16/2019 18
19. 40-Hour Week
• The work week should be limited to 40 hours.
• Regular overtime is a symptom of a problem and not a
long term solution.
12/16/2019 19
20. On-Site Customer
• Gives quick and continuous feedback to the development
team.
• The customer should lead the project (requirements,
priorities, and timelines).
• The customer should be available at all times (face to
face communication).
• The customer is one of the most important resources in
xp process.
12/16/2019 20
21. Coding Standards
• Coding standards will help to develop better code.
• Every developer should follow the code standards.
12/16/2019 21