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

What's hot

Going extreme-with-extreme-programming
Going extreme-with-extreme-programmingGoing extreme-with-extreme-programming
Going extreme-with-extreme-programming
Michael Green
 
Mca5020 advanced software engineering-de
Mca5020   advanced software engineering-deMca5020   advanced software engineering-de
Mca5020 advanced software engineering-desmumbahelp
 
optimizing code in compilers using parallel genetic algorithm
optimizing code in compilers using parallel genetic algorithm optimizing code in compilers using parallel genetic algorithm
optimizing code in compilers using parallel genetic algorithm
Fatemeh Karimi
 
ABC of Agile (Scrum & Extreme Programming)
ABC of Agile (Scrum & Extreme Programming)ABC of Agile (Scrum & Extreme Programming)
ABC of Agile (Scrum & Extreme Programming)
Amardeep Vishwakarma
 
Python: Design Patterns
Python: Design PatternsPython: Design Patterns
Python: Design Patterns
Damian T. Gordon
 
Python: Object-oriented Testing
Python: Object-oriented TestingPython: Object-oriented Testing
Python: Object-oriented Testing
Damian T. Gordon
 
Algorithms
AlgorithmsAlgorithms
Algorithms
AlgorithmsAlgorithms
Share Vision First Trip
Share Vision First TripShare Vision First Trip
Share Vision First Trip
Khou Suylong
 
Agile Development | Agile Process Models
Agile Development | Agile Process ModelsAgile Development | Agile Process Models
Agile Development | Agile Process Models
Ahsan Rahim
 
Xp Slideshow
Xp SlideshowXp Slideshow
Xp Slideshow
guest1c30ed5
 
Agile Model & Methodology
Agile Model & MethodologyAgile Model & Methodology
Agile Model & Methodology
yasirkhan_77
 
Hardware/Software Integration Testing
Hardware/Software Integration TestingHardware/Software Integration Testing
Hardware/Software Integration Testing
Johan Hoberg
 
Programming Theory
Programming TheoryProgramming Theory
Programming Theoryiarthur
 
Extreme & pair programming Slides ppt
Extreme & pair programming Slides pptExtreme & pair programming Slides ppt
Extreme & pair programming Slides ppt
Mr SMAK
 
Mi0033 software engineering
Mi0033  software engineeringMi0033  software engineering
Mi0033 software engineeringsmumbahelp
 
Introduction of Software Engineering
Introduction of Software EngineeringIntroduction of Software Engineering
Introduction of Software Engineering
MuhammadTalha436
 
The Apex Interactive Debugger
The Apex Interactive DebuggerThe Apex Interactive Debugger
The Apex Interactive Debugger
Salesforce Developers
 
How To Become A Good Agile Tester?
How To Become A Good Agile Tester?How To Become A Good Agile Tester?
How To Become A Good Agile Tester?
Kualitatem
 

What's hot (20)

Going extreme-with-extreme-programming
Going extreme-with-extreme-programmingGoing extreme-with-extreme-programming
Going extreme-with-extreme-programming
 
Mca5020 advanced software engineering-de
Mca5020   advanced software engineering-deMca5020   advanced software engineering-de
Mca5020 advanced software engineering-de
 
optimizing code in compilers using parallel genetic algorithm
optimizing code in compilers using parallel genetic algorithm optimizing code in compilers using parallel genetic algorithm
optimizing code in compilers using parallel genetic algorithm
 
ABC of Agile (Scrum & Extreme Programming)
ABC of Agile (Scrum & Extreme Programming)ABC of Agile (Scrum & Extreme Programming)
ABC of Agile (Scrum & Extreme Programming)
 
Python: Design Patterns
Python: Design PatternsPython: Design Patterns
Python: Design Patterns
 
Python: Object-oriented Testing
Python: Object-oriented TestingPython: Object-oriented Testing
Python: Object-oriented Testing
 
Algorithms
AlgorithmsAlgorithms
Algorithms
 
Algorithms
AlgorithmsAlgorithms
Algorithms
 
Share Vision First Trip
Share Vision First TripShare Vision First Trip
Share Vision First Trip
 
Agile Development | Agile Process Models
Agile Development | Agile Process ModelsAgile Development | Agile Process Models
Agile Development | Agile Process Models
 
Xp Slideshow
Xp SlideshowXp Slideshow
Xp Slideshow
 
Aditdem
AditdemAditdem
Aditdem
 
Agile Model & Methodology
Agile Model & MethodologyAgile Model & Methodology
Agile Model & Methodology
 
Hardware/Software Integration Testing
Hardware/Software Integration TestingHardware/Software Integration Testing
Hardware/Software Integration Testing
 
Programming Theory
Programming TheoryProgramming Theory
Programming Theory
 
Extreme & pair programming Slides ppt
Extreme & pair programming Slides pptExtreme & pair programming Slides ppt
Extreme & pair programming Slides ppt
 
Mi0033 software engineering
Mi0033  software engineeringMi0033  software engineering
Mi0033 software engineering
 
Introduction of Software Engineering
Introduction of Software EngineeringIntroduction of Software Engineering
Introduction of Software Engineering
 
The Apex Interactive Debugger
The Apex Interactive DebuggerThe Apex Interactive Debugger
The Apex Interactive Debugger
 
How To Become A Good Agile Tester?
How To Become A Good Agile Tester?How To Become A Good Agile Tester?
How To Become A Good Agile Tester?
 

Similar to Extreme programming

Extreme programming
Extreme programmingExtreme programming
Extreme programming
Chuu Htet Naing
 
Extreme Programming 1st.pdf
Extreme Programming 1st.pdfExtreme Programming 1st.pdf
Extreme Programming 1st.pdf
Bassam Kanber
 
Agile Values, Principles and Practices
Agile Values, Principles and PracticesAgile Values, Principles and Practices
Agile Values, Principles and Practices
jackcrews
 
Extreme programming (xp)
Extreme programming (xp)Extreme programming (xp)
Extreme programming (xp)
Mohamed Abdelrahman
 
03. Agile Development
03. Agile Development03. Agile Development
03. Agile Development
Ashis Kumar Chanda
 
Introduction to Agile
Introduction to AgileIntroduction to Agile
Agile software development
Agile software developmentAgile software development
Agile software development
pradeeppatelpmp
 
Extreme Programming (XP) as A Popular Agile methodology.
Extreme Programming (XP) as A Popular Agile methodology.Extreme Programming (XP) as A Popular Agile methodology.
Extreme Programming (XP) as A Popular Agile methodology.Ali Shaikh
 
Agiel sw development
Agiel sw developmentAgiel sw development
Agiel sw development
Noor Ul Hudda Memon
 
Agile software process
Agile software processAgile software process
Agile software process
Jennifer Polack
 
Agile Software Development Methodologies
Agile Software Development MethodologiesAgile Software Development Methodologies
Agile Software Development Methodologies
Pradeep Patel, PMP®
 
Chap 3 - Agile - XP.ppt
Chap 3 - Agile - XP.pptChap 3 - Agile - XP.ppt
Chap 3 - Agile - XP.ppt
Durga Prasad
 
Periodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and PracticesPeriodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and Practices
Jérôme Kehrli
 
Lect7
Lect7Lect7
Lect7
Lect7Lect7
What is xp
What is xpWhat is xp
What is xp
Simone Federici
 
Unit 6- Development Evolution model
Unit 6- Development Evolution model Unit 6- Development Evolution model
Unit 6- Development Evolution model
arvind pandey
 
Unit_1_Agile development.pdf about the script of software
Unit_1_Agile development.pdf about the script of softwareUnit_1_Agile development.pdf about the script of software
Unit_1_Agile development.pdf about the script of software
zeelp3114
 
Extreme programming
Extreme programmingExtreme programming
Extreme programmingMr SMAK
 

Similar to Extreme programming (20)

Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Extreme Programming 1st.pdf
Extreme Programming 1st.pdfExtreme Programming 1st.pdf
Extreme Programming 1st.pdf
 
Agile Values, Principles and Practices
Agile Values, Principles and PracticesAgile Values, Principles and Practices
Agile Values, Principles and Practices
 
Extreme programming (xp)
Extreme programming (xp)Extreme programming (xp)
Extreme programming (xp)
 
03. Agile Development
03. Agile Development03. Agile Development
03. Agile Development
 
Introduction to Agile
Introduction to AgileIntroduction to Agile
Introduction to Agile
 
Agile software development
Agile software developmentAgile software development
Agile software development
 
Extreme Programming (XP) as A Popular Agile methodology.
Extreme Programming (XP) as A Popular Agile methodology.Extreme Programming (XP) as A Popular Agile methodology.
Extreme Programming (XP) as A Popular Agile methodology.
 
Agiel sw development
Agiel sw developmentAgiel sw development
Agiel sw development
 
Agile software process
Agile software processAgile software process
Agile software process
 
Agile Software Development Methodologies
Agile Software Development MethodologiesAgile Software Development Methodologies
Agile Software Development Methodologies
 
Chap 3 - Agile - XP.ppt
Chap 3 - Agile - XP.pptChap 3 - Agile - XP.ppt
Chap 3 - Agile - XP.ppt
 
Periodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and PracticesPeriodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and Practices
 
Lect7
Lect7Lect7
Lect7
 
Lect7
Lect7Lect7
Lect7
 
What is xp
What is xpWhat is xp
What is xp
 
Unit 6- Development Evolution model
Unit 6- Development Evolution model Unit 6- Development Evolution model
Unit 6- Development Evolution model
 
Unit_1_Agile development.pdf about the script of software
Unit_1_Agile development.pdf about the script of softwareUnit_1_Agile development.pdf about the script of software
Unit_1_Agile development.pdf about the script of software
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Cu32604607
Cu32604607Cu32604607
Cu32604607
 

Recently uploaded

Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
e20449
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 

Recently uploaded (20)

Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 

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.