SlideShare a Scribd company logo
Extreme Programming
Presented By:
Ayush Jain
141435
Advanced Software Engineering
Contents
● Introduction
● When Applicable
● Values
● Practices
● Relationship between XP Practices
● Pair Programming
● Roles in XP
Introduction
Extreme Programming (XP) is an agile software development framework that
aims to produce higher quality software, and higher quality of life for the
development team. XP is the most specific of the agile frameworks regarding
appropriate engineering practices for software development.
When Applicable
● Dynamically changing software requirements
● Risks caused by fixed time projects using new technology
● Small, co-located extended development team
Values
Communication: Software development is inherently a team sport that relies on
communication to transfer knowledge from one team member to everyone else on
the team.
Simplicity: Simplicity means the simplest thing that will work. The purpose of
this is to avoid waste and do only absolutely necessary things such as keep the
design of the system as simple as possible so that it is easier to maintain, support,
and revise.
Values
Feedback: Through constant feedback about their previous efforts, teams can
identify areas for improvement and revise their practices.
Courage: Courage is effective action in the face of fear. It is a preference for
action based on other principles so that the results aren’t harmful to the team.
Respect: The members of your team need to respect each other in order to
communicate with each other, provide and accept feedback that honors your
relationship, and to work together to identify simple designs and solutions.
Practices
Practices
1. The planning game: This focuses on planning the next release.
2. Small releases: A software system is developed iteratively with small releases
adding system features and allowing rapid feedback.
3. Simple design: Keep things as simple as possible but not simpler.
4. Testing: Unit tests and acceptance tests must be continually developed and the
code must pass unit tests for development to continue.
5. Refactoring: This involves improving the system (e.g., to aid simplicity)without
changing the functionality.
6. Pair programming: All code is developed by developers working in pairs (at a
single machine).
7. Collective ownership: Everyone owns all the code so anyone has the right to
change any of the code at any time in order to improve it.
8. Continuous integration: New code is integrated and the system rebuilt every
time a task is completed (which may be many times a day).
9. On-site customer: Have a real customer as part of the team, so that they are
always available to answer questions.
10. Coding standards: Have them and use them.
11. 40-hour week: Work no more than 40 hours a week so that the developers are
always fresh and ready for the challenges facing them.
12. System metaphor: Use the system metaphor to guide the whole
development. It is a metaphor for how the system operates (it is similar to the
architecture of the system but typically simpler).
Relation Between XP Practices
XP Project Life Cycle
Pair Programming
Pair programming is a style of programming in which two programmers work
side-by-side at one computer, sharing one screen, keyboard and mouse,
continuously collaborating on the same design, algorithm, code or test.
One programmer, termed as the driver, has control of the keyboard/mouse and
actively implements the code or writes a test. The other programmer, termed as
the navigator, continuously observes the work of the driver to identify defects and
also thinks strategically about the direction of the work.
Pair Programming – Advantages
● Many mistakes are detected at the time they are typed, rather than in QA
Testing or in the field.
● The end defect content is statistically lower.
● The designs are better and code length shorter.
● The team solves problems faster.
Pair Programming – Advantages
● People learn significantly more about the system and about software
development.
● The project ends up with multiple people understanding each piece of the
system.
● People learn to work together and talk more often together, giving better
information flow and team dynamics.
● People enjoy their work more.
Roles in Extreme Programming
The Roles that have been found effective in Extreme Programming are −
● Developer (also called Programmer by some teams)
● Customer
● Manager (also called tracker)
● Coach
Developer
The role of developer is the most important one in Extreme Programming.
Developer Rights
● You have the right to know what is needed, with clear declarations of priority.
● You have the right to produce quality work at all times.
Major responsibilities that you will be accountable for −
● Estimate stories
● Define tasks from stories
Developer Skills
● Pair Programming
● Communication – that is necessary and to the sufficient detail
Customer
The customer role is as crucial as the developer role as it is the customer who should know
what to program, while the developer should know how to program.
This triggers the necessity of certain skills for the customer role −
● Writing required stories to the necessary and sufficient detail.
● Developing an attitude for the success of the project.
Customer
The customer is required to be in constant communication with the team and speak as a
single voice to the team. This is required since −
● Customer could be multiple stakeholders.
● Customer could be a community.
● Customer is not always the PRINCIPAL (proxies).
● Customer can be a team with the following potential members − Product Managers,
Marketing, Sales, Business Analysts, End Users, their Manager, Business/System
Operations
Manager
In Extreme Programming, the major responsibilities of the manager are −
● Define the rules of planning game.
● Familiarize the team and the customer on the rules of the planning game.
● Monitor the planning game, fix any deviations, modify the rules if and when
required.
● Schedule and conduct release planning and iteration planning meetings.
Coach
Extreme Programming is the responsibility of everyone in the team. However, if
the team is new to Extreme Programming, the role of a coach is crucial.
The responsibilities of the coach are −
● Understand, in depth, the application of Extreme Programming to the project.
● Identify the Extreme Programming practices that help in case of any
problem.
● Remain calm even when everyone else is panicking.
Extreme programming

More Related Content

PPTX
Introduction to Software Engineering
PPTX
Xp(Xtreme Programming) presentation
PDF
Extreme programming
PPTX
PDF
eXtreme programming (XP) - An Overview
PPT
Extreme Programming (XP) Project Process Flow Chart
PPTX
Extreme programming - a quick and agile overview !
PPT
XP Explained
Introduction to Software Engineering
Xp(Xtreme Programming) presentation
Extreme programming
eXtreme programming (XP) - An Overview
Extreme Programming (XP) Project Process Flow Chart
Extreme programming - a quick and agile overview !
XP Explained

What's hot (20)

PPTX
Going extreme-with-extreme-programming
DOCX
Mca5020 advanced software engineering-de
PPTX
optimizing code in compilers using parallel genetic algorithm
PPT
ABC of Agile (Scrum & Extreme Programming)
PPTX
Python: Design Patterns
PPTX
Python: Object-oriented Testing
ODP
ODP
PPT
Share Vision First Trip
PPT
Agile Development | Agile Process Models
PPS
Xp Slideshow
PPT
Aditdem
PDF
Agile Model & Methodology
PPTX
Hardware/Software Integration Testing
PPT
Programming Theory
PPT
Extreme & pair programming Slides ppt
DOCX
Mi0033 software engineering
PPT
Introduction of Software Engineering
PDF
The Apex Interactive Debugger
PPTX
How To Become A Good Agile Tester?
Going extreme-with-extreme-programming
Mca5020 advanced software engineering-de
optimizing code in compilers using parallel genetic algorithm
ABC of Agile (Scrum & Extreme Programming)
Python: Design Patterns
Python: Object-oriented Testing
Share Vision First Trip
Agile Development | Agile Process Models
Xp Slideshow
Aditdem
Agile Model & Methodology
Hardware/Software Integration Testing
Programming Theory
Extreme & pair programming Slides ppt
Mi0033 software engineering
Introduction of Software Engineering
The Apex Interactive Debugger
How To Become A Good Agile Tester?
Ad

Similar to Extreme programming (20)

PPTX
The Extreme Programming (XP) Model
PPTX
Extreme Programming
DOC
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
PPTX
Extreme programming
PPTX
Extreme Programming
ODP
What is xp
PPTX
Lecture3.se.pptx
PPT
agility_principles.ppt
PPTX
Extreme programming (xp)
PPT
xp.ppt programming softwares engineering
PDF
Enhancing Collaboration and Code Quality using Pair Programming
PPT
Extreme programming
PDF
Extreme Programming 1st.pdf
PPT
Xp presentation 2003
PPTX
Agile Values, Principles and Practices
PPTX
Resource1 spm
PPTX
Resource1
PPS
Software Development in the Brave New world
PPS
3685807
PDF
Introduction to Extreme Programming
The Extreme Programming (XP) Model
Extreme Programming
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
Extreme programming
Extreme Programming
What is xp
Lecture3.se.pptx
agility_principles.ppt
Extreme programming (xp)
xp.ppt programming softwares engineering
Enhancing Collaboration and Code Quality using Pair Programming
Extreme programming
Extreme Programming 1st.pdf
Xp presentation 2003
Agile Values, Principles and Practices
Resource1 spm
Resource1
Software Development in the Brave New world
3685807
Introduction to Extreme Programming
Ad

Recently uploaded (20)

PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
System and Network Administration Chapter 2
PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PPTX
Introduction to Artificial Intelligence
PPT
Introduction Database Management System for Course Database
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
AI in Product Development-omnex systems
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
Softaken Excel to vCard Converter Software.pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
How to Migrate SBCGlobal Email to Yahoo Easily
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Design an Analysis of Algorithms II-SECS-1021-03
How to Choose the Right IT Partner for Your Business in Malaysia
System and Network Administration Chapter 2
Operating system designcfffgfgggggggvggggggggg
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
2025 Textile ERP Trends: SAP, Odoo & Oracle
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
VVF-Customer-Presentation2025-Ver1.9.pptx
Introduction to Artificial Intelligence
Introduction Database Management System for Course Database
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
AI in Product Development-omnex systems
Which alternative to Crystal Reports is best for small or large businesses.pdf

Extreme programming

  • 1. Extreme Programming Presented By: Ayush Jain 141435 Advanced Software Engineering
  • 2. Contents ● Introduction ● When Applicable ● Values ● Practices ● Relationship between XP Practices ● Pair Programming ● Roles in XP
  • 3. Introduction Extreme Programming (XP) is an agile software development framework that aims to produce higher quality software, and higher quality of life for the development team. XP is the most specific of the agile frameworks regarding appropriate engineering practices for software development.
  • 4. When Applicable ● Dynamically changing software requirements ● Risks caused by fixed time projects using new technology ● Small, co-located extended development team
  • 5. Values Communication: Software development is inherently a team sport that relies on communication to transfer knowledge from one team member to everyone else on the team. Simplicity: Simplicity means the simplest thing that will work. The purpose of this is to avoid waste and do only absolutely necessary things such as keep the design of the system as simple as possible so that it is easier to maintain, support, and revise.
  • 6. Values Feedback: Through constant feedback about their previous efforts, teams can identify areas for improvement and revise their practices. Courage: Courage is effective action in the face of fear. It is a preference for action based on other principles so that the results aren’t harmful to the team. Respect: The members of your team need to respect each other in order to communicate with each other, provide and accept feedback that honors your relationship, and to work together to identify simple designs and solutions.
  • 8. Practices 1. The planning game: This focuses on planning the next release. 2. Small releases: A software system is developed iteratively with small releases adding system features and allowing rapid feedback. 3. Simple design: Keep things as simple as possible but not simpler. 4. Testing: Unit tests and acceptance tests must be continually developed and the code must pass unit tests for development to continue. 5. Refactoring: This involves improving the system (e.g., to aid simplicity)without changing the functionality. 6. Pair programming: All code is developed by developers working in pairs (at a single machine).
  • 9. 7. Collective ownership: Everyone owns all the code so anyone has the right to change any of the code at any time in order to improve it. 8. Continuous integration: New code is integrated and the system rebuilt every time a task is completed (which may be many times a day). 9. On-site customer: Have a real customer as part of the team, so that they are always available to answer questions. 10. Coding standards: Have them and use them. 11. 40-hour week: Work no more than 40 hours a week so that the developers are always fresh and ready for the challenges facing them. 12. System metaphor: Use the system metaphor to guide the whole development. It is a metaphor for how the system operates (it is similar to the architecture of the system but typically simpler).
  • 10. Relation Between XP Practices
  • 12. Pair Programming Pair programming is a style of programming in which two programmers work side-by-side at one computer, sharing one screen, keyboard and mouse, continuously collaborating on the same design, algorithm, code or test. One programmer, termed as the driver, has control of the keyboard/mouse and actively implements the code or writes a test. The other programmer, termed as the navigator, continuously observes the work of the driver to identify defects and also thinks strategically about the direction of the work.
  • 13. Pair Programming – Advantages ● Many mistakes are detected at the time they are typed, rather than in QA Testing or in the field. ● The end defect content is statistically lower. ● The designs are better and code length shorter. ● The team solves problems faster.
  • 14. Pair Programming – Advantages ● People learn significantly more about the system and about software development. ● The project ends up with multiple people understanding each piece of the system. ● People learn to work together and talk more often together, giving better information flow and team dynamics. ● People enjoy their work more.
  • 15. Roles in Extreme Programming The Roles that have been found effective in Extreme Programming are − ● Developer (also called Programmer by some teams) ● Customer ● Manager (also called tracker) ● Coach
  • 16. Developer The role of developer is the most important one in Extreme Programming. Developer Rights ● You have the right to know what is needed, with clear declarations of priority. ● You have the right to produce quality work at all times. Major responsibilities that you will be accountable for − ● Estimate stories ● Define tasks from stories Developer Skills ● Pair Programming ● Communication – that is necessary and to the sufficient detail
  • 17. Customer The customer role is as crucial as the developer role as it is the customer who should know what to program, while the developer should know how to program. This triggers the necessity of certain skills for the customer role − ● Writing required stories to the necessary and sufficient detail. ● Developing an attitude for the success of the project.
  • 18. Customer The customer is required to be in constant communication with the team and speak as a single voice to the team. This is required since − ● Customer could be multiple stakeholders. ● Customer could be a community. ● Customer is not always the PRINCIPAL (proxies). ● Customer can be a team with the following potential members − Product Managers, Marketing, Sales, Business Analysts, End Users, their Manager, Business/System Operations
  • 19. Manager In Extreme Programming, the major responsibilities of the manager are − ● Define the rules of planning game. ● Familiarize the team and the customer on the rules of the planning game. ● Monitor the planning game, fix any deviations, modify the rules if and when required. ● Schedule and conduct release planning and iteration planning meetings.
  • 20. Coach Extreme Programming is the responsibility of everyone in the team. However, if the team is new to Extreme Programming, the role of a coach is crucial. The responsibilities of the coach are − ● Understand, in depth, the application of Extreme Programming to the project. ● Identify the Extreme Programming practices that help in case of any problem. ● Remain calm even when everyone else is panicking.