SlideShare une entreprise Scribd logo
1  sur  51
EXTREME PROGRAMMING
An Agile Methodology
What is Agile?
Business Agility means
● A company is always in a position to
take account of the market changes.
In Software Development
● The ability to respond to changes –
changes from Requirements,
Technology and People.
Extreme Programming(XP) Based on
Respect
What is Extreme Programming?
Fun way to develop a
software
Embrace Change
The cost of changing a program can be held mostly constant over time
It can be achieved with
•Emphasis on continuous feedback from the customer
•Short iterations
•Design and redesign
•Coding and testing frequently
•Eliminating defects early, thus reducing costs
•Keeping the customer involved throughout the development
•Delivering working product to the customer
Extreme Programming in a Nutshell
communication
VALUES
simplicity
Feedback Courage
Respect
Communication
Communication plays a major role in the success of a project.
Extreme programming emphasizes continuous and constant communication
among the team members, managers and the customer.
Simplicity
Extreme programming believes in ‘it is better to do a single thing today and pay a
little more tomorrow to change it’ than ‘to do more complicated thing today that
may never be used anyway’.
Feedback
Every iteration commitment is taken seriously by delivering a working software.
Unit tests tell the developers the status of the system.
Thus, in Extreme Programming the feedback –
➢ Works as a catalyst for change
➢ Indicates progress
➢ Gives confidence to the developers that they are on the right track
Courage
➢Extreme Programming provides courage to the developers in the following way :
➢To focus on only what is required.
➢To communicate and accept feedback.
➢To throw the code away (prototypes).
Respect
➢Respect is a deep value, one that lies below the surface of the other four values in
Extreme Programming.
➢Everyone respects each other as a valued team member.
➢Developers respect the expertise of the customers and vice versa.
➢Management respects the right of the developers to accept the responsibility and
receive authority over their own work.
PRINCIPLES
Rapid Feedback
Assume Simplicity
Embracing Change
Quality
work
Incremental
change
Rapid Feedback
Rapid feedback is to get the feedback, understand it, and put the learning back into
the system as quickly as possible.
Assume Simplicity
‘Assume Simplicity’ means ‘do a good job of solving today's job today and trust your
ability to add complexity in the future where you need it.’
Incremental Change
In Extreme Programming, Incremental Change is applied in many ways.
The design, plan, team changes a little at a time.
Even the adoption of Extreme Programming must be taken in little steps.
Embracing Change
The best strategy is the one that preserves the most options while actually solving your
most pressing problem.
Quality Work
Everyone likes doing a good job. They try to produce the quality that they are proud
of. The team-
➢Works well
➢Enjoys the work
➢Feels good in producing a product of value
Roles in XP
- Developer (Extreme Programmer)
- Customer
- Manager
- Coach
- Tracker
- Tester
Roles in Extreme Programming
Developer (Extreme Programmer)
Just a programmer who follows the tenets of Extreme Programming.
Customer
Who should know what to programmer, while the developer know how to program.
Coach
Who watches everything.
Manager
Who schedules meetings
Tracker
Who goes around a time or two a week.
Tester
Who implements and runs Functional Tests.
Customer Vs Developer
Developer Rights
- right to know what is needed.
- right to produce quality work at all times.
- right to ask for and receive help.
- right to accept your responsibilities.
Major Responsibilities
- Estimate stories
- Define tasks from stories
- Estimate tasks
- Write unit tests
- Write code to pass the written tests
- Perform unit testing
- Integrate continuously
Developer skills
- Pair Programming
- Communication
- Maintain simplicity
Customer responsibilities
- Write user stories
- Write functional tests
- Set priorities on the stories
- Explain stories
Customer skill
- Writing required stories to the necessary and sufficient detail
- Influencing a project without being able to control it.
- Writing functional tests.
User Stories
Unit Test and Functional Test
- Unit Tests are written from a programmer’s perspective.
- Functional Tests are written from the user’s perspective.
The planning
game
PRACTICES
OF XP
Short
releases
Metaphor
Simple design
Testing Refactoring
Coding standards
On site
customer
Pair
Programming
Collective
Ownership
Continuous
integration
40 – Hour week
Planning Game
1.Planning Game
- The main planning process
- Is a meeting that occurs once per iteration
- It is too quickly determine the scope of the next release.
Release Planning Vs Iteration Planning
Release Planning: Determining what requirements are included in
which near-term releases.
Iteration Planning: Plans the activities and tasks.
2.Short Releases
- Deploy into production quickly.
- Release new versions in very short cycles.
- As small as possible.
Advantage
- Achievable in a short cycle
- Contains the most valuable requirements
- Frequent feedback
- A working system
3.Metaphor
Architecture of the system to be built that
It’s the story of how the whole system works.
The oral Architecture of the system to built, that is understandable by everyone
involved in the development.
Advantages:
A quick and easy way to explain the system.
Encourages the common set
4. Simple Design
Keep it simple but always adequate design.
Do as little as needed nothing more.
Delete duplicate logic
Simple design leads to sustain the development speed.
“Design in XP is all-the-time thing”
Advantages:
Easier to understand and adaptable to change.
Helps keep programmer on track.
Refactoring and collective ownership is made
possible.
5.Testing (Test driven development):
➢Unit testing is done before
coding.
➢After writing unit tests,
pass for the development to
continue.
➢The result is a system that
is capable of accepting
change.
Advantages
Provides testing Completeness.
It gives developers a goal.
6.Refactoring
➢Refactoring: “Improving the design
of Existing code”.
➢Removal of Duplication.
➢Increases ”Cohesion” of the code
and lowers the “coupling”.
➢XP practices support each other:
They are stronger together than
separately.
Advantages:
➢Increases the developer knowledge of the
system.
➢Helps developer to improve the whole product
proactively.
7.PAIR PROGRAMMING
➢ All code is written by two
programmers sitting at one
machine.
➢Pairing is dynamic.
➢The driver has control of
the keyboard and mouse
and creates the
implementation.
➢The navigator watches
the driver’s implementation .
ADVANTAGES
➢Pairs complete their tasks faster .
➢Pairs produce higher quality code .
➢Pairs are more focused towards their work .
➢Pairs feel more confident in their work and they can
answer any questions related to their approach .
8.COLLECTIVE OWNERSHIP
➢In Extreme Programming, the entire team takes responsibility for
the whole of the system. Not everyone knows every part equally
well, although everyone knows something about every part.
➢Any engineer can modify any code to produce better quality.
➢The entire team takes responsibility of the whole system.
ADVANTAGE
Promotes the developers to take responsibility for the
system as a whole rather than parts of the system.
9.CONTINUOUS INTEGRATION
➢The unit tests have to run 100% both before and after
integration.
➢A simple way to do this is to have a machine dedicated to
integration.
➢ Runs the tests until they pass (100% correct).
➢Continuous integration should happen more frequently
(once or twice a day) .
ADVANTAGES
➢Reduces the duration , which is otherwise lengthy .
➢Enables the short releases practice as the time required
before release is minimal .
10.40 – HOUR WEEK
➢Tired developers make more mistakes .
➢If you mess with people’s personal lives , in long run the project will
pay the consequences.
➢Highly skilled senior engineers always suffer of over time and high
pressure .
ADVANTAGE
➢Most developers lose effectiveness after 40 hours
11.On-site Customer
➢A live-user on the team who is available round the clock with the team.
➢A Product Manager is chosen as a representative for the customers.
➢Development Team should have continuous access to the customer representative.
➢Customer blends in with the development team to help and can also focus on other work too.
ADVANTAGES
•Customer representative prioritizes the functionalities to the team members.
•On-site Customer helps in rapid feedback of the working system.
•Customer makes sure that what is developed is what is actually asked for.
•Scope decisions for developers are laid out by the Customer.
•Customer answers questions regarding the development of working system.
12.Coding Standards
•Development Team follows a standard for coding and adopts it throughout the project.
•They emphasize on certain rules:
- Communication through code.
•Least amount of work possible.
- “Once and only once” rule i.e., no inclusion of duplicate code.
•Voluntary adoption by whole team.
•Emphasizes more on code familiarity than specifics of standards.
Advantages
•Coding standards reduces refactoring of others code, as the code in the system looks familiar to
all the team as though written by a single individual.
•Coding Standards helps in shared understanding between the team as they follow same standards.
•It gives the team a clear and unambiguous code.
•It helps in error detection easily.
Success in Industry
Rapid development.
Immediate responsiveness to the customer’s
changing requirements.
Focus on low defect rates.
System returning constant and consistent
value to the customer.
High customer satisfaction.
Reduced costs.
Team cohesion and employee satisfaction.
CONCLUSION
Thank You!
Extreme programming

Contenu connexe

Tendances

Introduction to Agile and Scrum
Introduction to Agile and ScrumIntroduction to Agile and Scrum
Introduction to Agile and Scrum
Operational Excellence Consulting
 

Tendances (20)

Agile software development
Agile software developmentAgile software development
Agile software development
 
Scrum 101: Introduction to Scrum
Scrum 101: Introduction to ScrumScrum 101: Introduction to Scrum
Scrum 101: Introduction to Scrum
 
Agile Methodology ppt
Agile Methodology pptAgile Methodology ppt
Agile Methodology ppt
 
Scrum
ScrumScrum
Scrum
 
Introduction to Agile and Scrum
Introduction to Agile and ScrumIntroduction to Agile and Scrum
Introduction to Agile and Scrum
 
Agile & SCRUM basics
Agile & SCRUM basicsAgile & SCRUM basics
Agile & SCRUM basics
 
Agile Fundamentals
Agile FundamentalsAgile Fundamentals
Agile Fundamentals
 
Agile Overview
Agile OverviewAgile Overview
Agile Overview
 
Agile scrum fundamentals
Agile scrum fundamentalsAgile scrum fundamentals
Agile scrum fundamentals
 
Scrum master basics
Scrum master basics Scrum master basics
Scrum master basics
 
Agile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme Programming
 
What is agile model?Working of agile model
What is agile model?Working of agile modelWhat is agile model?Working of agile model
What is agile model?Working of agile model
 
Scrum 101
Scrum 101 Scrum 101
Scrum 101
 
Agile Methodology
Agile MethodologyAgile Methodology
Agile Methodology
 
Agile Metrics V6
Agile Metrics V6Agile Metrics V6
Agile Metrics V6
 
Agile methodology
Agile methodologyAgile methodology
Agile methodology
 
Agile Methodology
Agile MethodologyAgile Methodology
Agile Methodology
 
Agile Methodology
Agile MethodologyAgile Methodology
Agile Methodology
 
What Is Agile Scrum
What Is Agile ScrumWhat Is Agile Scrum
What Is Agile Scrum
 
Software Engineering Process Models
Software Engineering Process Models Software Engineering Process Models
Software Engineering Process Models
 

En vedette

Introduction4 SQLite
Introduction4 SQLiteIntroduction4 SQLite
Introduction4 SQLite
Stanley Huang
 
AgileCamp'12 Нижний Новгород: Введение
AgileCamp'12 Нижний Новгород: Введение AgileCamp'12 Нижний Новгород: Введение
AgileCamp'12 Нижний Новгород: Введение
Anton Katkov
 

En vedette (20)

Extreme programming (xp) | David Tzemach
Extreme programming (xp) | David TzemachExtreme programming (xp) | David Tzemach
Extreme programming (xp) | David Tzemach
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Going extreme-with-extreme-programming
Going extreme-with-extreme-programmingGoing extreme-with-extreme-programming
Going extreme-with-extreme-programming
 
extreme Programming
extreme Programmingextreme Programming
extreme Programming
 
Face recognition
Face recognitionFace recognition
Face recognition
 
Ragam Model Proses Perangkat Lunak
Ragam Model Proses Perangkat LunakRagam Model Proses Perangkat Lunak
Ragam Model Proses Perangkat Lunak
 
Model Agile & eXtreme Programming (XP)
Model Agile & eXtreme Programming (XP)Model Agile & eXtreme Programming (XP)
Model Agile & eXtreme Programming (XP)
 
Introduction4 SQLite
Introduction4 SQLiteIntroduction4 SQLite
Introduction4 SQLite
 
Future4kist 1.4
Future4kist 1.4Future4kist 1.4
Future4kist 1.4
 
Scrum and XP in practice
Scrum and XP in practiceScrum and XP in practice
Scrum and XP in practice
 
AgileCamp'11 Новосибирск - введение в инженерные практики
AgileCamp'11 Новосибирск - введение в инженерные практикиAgileCamp'11 Новосибирск - введение в инженерные практики
AgileCamp'11 Новосибирск - введение в инженерные практики
 
Agile Testing Process
Agile Testing ProcessAgile Testing Process
Agile Testing Process
 
AgileCamp'12 Нижний Новгород: Введение
AgileCamp'12 Нижний Новгород: Введение AgileCamp'12 Нижний Новгород: Введение
AgileCamp'12 Нижний Новгород: Введение
 
Android Studio - Tips, Tricks & little known features
Android Studio - Tips, Tricks & little known features Android Studio - Tips, Tricks & little known features
Android Studio - Tips, Tricks & little known features
 
INSTALACIÓN ANDROID STUDIO 1
INSTALACIÓN ANDROID STUDIO 1INSTALACIÓN ANDROID STUDIO 1
INSTALACIÓN ANDROID STUDIO 1
 
HDMI
HDMIHDMI
HDMI
 
Андрій Кушнарьов «Agile планування проектів»
Андрій Кушнарьов «Agile планування проектів»Андрій Кушнарьов «Agile планування проектів»
Андрій Кушнарьов «Agile планування проектів»
 
Introduction to Agile
Introduction to AgileIntroduction to Agile
Introduction to Agile
 
eXtreme Programming
eXtreme ProgrammingeXtreme Programming
eXtreme Programming
 

Similaire à Extreme programming

Extreme Programming Talk Wise Consulting Www.Talkwiseconsulting
Extreme  Programming    Talk Wise  Consulting   Www.TalkwiseconsultingExtreme  Programming    Talk Wise  Consulting   Www.Talkwiseconsulting
Extreme Programming Talk Wise Consulting Www.Talkwiseconsulting
talkwiseone
 
Extreme programming talk wise consulting - www.talkwiseconsulting
Extreme programming   talk wise consulting - www.talkwiseconsultingExtreme programming   talk wise consulting - www.talkwiseconsulting
Extreme programming talk wise consulting - www.talkwiseconsulting
talkwiseone
 
Twelve practices of XP_Se lect5 btech
Twelve practices of XP_Se lect5 btechTwelve practices of XP_Se lect5 btech
Twelve practices of XP_Se lect5 btech
IIITA
 

Similaire à Extreme programming (20)

Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
module I.pptx
module I.pptxmodule I.pptx
module I.pptx
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Extreme Programming 1st.pdf
Extreme Programming 1st.pdfExtreme Programming 1st.pdf
Extreme Programming 1st.pdf
 
Extreme programming (xp)
Extreme programming (xp)Extreme programming (xp)
Extreme programming (xp)
 
Agile Values, Principles and Practices
Agile Values, Principles and PracticesAgile Values, Principles and Practices
Agile Values, Principles and Practices
 
Chap 3 - Agile - XP.ppt
Chap 3 - Agile - XP.pptChap 3 - Agile - XP.ppt
Chap 3 - Agile - XP.ppt
 
Lect7
Lect7Lect7
Lect7
 
Lect7
Lect7Lect7
Lect7
 
Lecture3.se.pptx
Lecture3.se.pptxLecture3.se.pptx
Lecture3.se.pptx
 
Introduction to Agile
Introduction to AgileIntroduction to Agile
Introduction to Agile
 
Extreme Programming Talk Wise Consulting Www.Talkwiseconsulting
Extreme  Programming    Talk Wise  Consulting   Www.TalkwiseconsultingExtreme  Programming    Talk Wise  Consulting   Www.Talkwiseconsulting
Extreme Programming Talk Wise Consulting Www.Talkwiseconsulting
 
Extreme programming talk wise consulting - www.talkwiseconsulting
Extreme programming   talk wise consulting - www.talkwiseconsultingExtreme programming   talk wise consulting - www.talkwiseconsulting
Extreme programming talk wise consulting - www.talkwiseconsulting
 
4. ch 3-agile process
4. ch 3-agile process4. ch 3-agile process
4. ch 3-agile process
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentation
 
Unit 6- Development Evolution model
Unit 6- Development Evolution model Unit 6- Development Evolution model
Unit 6- Development Evolution model
 
Week_03-Agile Developmnet.ppt
Week_03-Agile Developmnet.pptWeek_03-Agile Developmnet.ppt
Week_03-Agile Developmnet.ppt
 
Twelve practices of XP_Se lect5 btech
Twelve practices of XP_Se lect5 btechTwelve practices of XP_Se lect5 btech
Twelve practices of XP_Se lect5 btech
 
Agile software development
Agile software development Agile software development
Agile software development
 
SE chapter 4
SE chapter 4SE chapter 4
SE chapter 4
 

Dernier

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Dernier (20)

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 

Extreme programming

  • 2. What is Agile? Business Agility means ● A company is always in a position to take account of the market changes. In Software Development ● The ability to respond to changes – changes from Requirements, Technology and People.
  • 4. What is Extreme Programming? Fun way to develop a software
  • 5. Embrace Change The cost of changing a program can be held mostly constant over time It can be achieved with •Emphasis on continuous feedback from the customer •Short iterations •Design and redesign •Coding and testing frequently •Eliminating defects early, thus reducing costs •Keeping the customer involved throughout the development •Delivering working product to the customer
  • 8. Communication Communication plays a major role in the success of a project. Extreme programming emphasizes continuous and constant communication among the team members, managers and the customer. Simplicity Extreme programming believes in ‘it is better to do a single thing today and pay a little more tomorrow to change it’ than ‘to do more complicated thing today that may never be used anyway’.
  • 9. Feedback Every iteration commitment is taken seriously by delivering a working software. Unit tests tell the developers the status of the system. Thus, in Extreme Programming the feedback – ➢ Works as a catalyst for change ➢ Indicates progress ➢ Gives confidence to the developers that they are on the right track
  • 10. Courage ➢Extreme Programming provides courage to the developers in the following way : ➢To focus on only what is required. ➢To communicate and accept feedback. ➢To throw the code away (prototypes). Respect ➢Respect is a deep value, one that lies below the surface of the other four values in Extreme Programming. ➢Everyone respects each other as a valued team member. ➢Developers respect the expertise of the customers and vice versa. ➢Management respects the right of the developers to accept the responsibility and receive authority over their own work.
  • 11. PRINCIPLES Rapid Feedback Assume Simplicity Embracing Change Quality work Incremental change
  • 12. Rapid Feedback Rapid feedback is to get the feedback, understand it, and put the learning back into the system as quickly as possible. Assume Simplicity ‘Assume Simplicity’ means ‘do a good job of solving today's job today and trust your ability to add complexity in the future where you need it.’ Incremental Change In Extreme Programming, Incremental Change is applied in many ways. The design, plan, team changes a little at a time. Even the adoption of Extreme Programming must be taken in little steps.
  • 13. Embracing Change The best strategy is the one that preserves the most options while actually solving your most pressing problem. Quality Work Everyone likes doing a good job. They try to produce the quality that they are proud of. The team- ➢Works well ➢Enjoys the work ➢Feels good in producing a product of value
  • 15. - Developer (Extreme Programmer) - Customer - Manager - Coach - Tracker - Tester Roles in Extreme Programming
  • 16. Developer (Extreme Programmer) Just a programmer who follows the tenets of Extreme Programming. Customer Who should know what to programmer, while the developer know how to program. Coach Who watches everything. Manager Who schedules meetings Tracker Who goes around a time or two a week. Tester Who implements and runs Functional Tests.
  • 18. Developer Rights - right to know what is needed. - right to produce quality work at all times. - right to ask for and receive help. - right to accept your responsibilities.
  • 19. Major Responsibilities - Estimate stories - Define tasks from stories - Estimate tasks - Write unit tests - Write code to pass the written tests - Perform unit testing - Integrate continuously
  • 20. Developer skills - Pair Programming - Communication - Maintain simplicity
  • 21. Customer responsibilities - Write user stories - Write functional tests - Set priorities on the stories - Explain stories
  • 22. Customer skill - Writing required stories to the necessary and sufficient detail - Influencing a project without being able to control it. - Writing functional tests.
  • 24. Unit Test and Functional Test - Unit Tests are written from a programmer’s perspective. - Functional Tests are written from the user’s perspective.
  • 25. The planning game PRACTICES OF XP Short releases Metaphor Simple design Testing Refactoring Coding standards On site customer Pair Programming Collective Ownership Continuous integration 40 – Hour week
  • 27. 1.Planning Game - The main planning process - Is a meeting that occurs once per iteration - It is too quickly determine the scope of the next release.
  • 28. Release Planning Vs Iteration Planning Release Planning: Determining what requirements are included in which near-term releases. Iteration Planning: Plans the activities and tasks.
  • 29. 2.Short Releases - Deploy into production quickly. - Release new versions in very short cycles. - As small as possible.
  • 30. Advantage - Achievable in a short cycle - Contains the most valuable requirements - Frequent feedback - A working system
  • 31. 3.Metaphor Architecture of the system to be built that It’s the story of how the whole system works. The oral Architecture of the system to built, that is understandable by everyone involved in the development. Advantages: A quick and easy way to explain the system. Encourages the common set
  • 32. 4. Simple Design Keep it simple but always adequate design. Do as little as needed nothing more. Delete duplicate logic Simple design leads to sustain the development speed. “Design in XP is all-the-time thing”
  • 33. Advantages: Easier to understand and adaptable to change. Helps keep programmer on track. Refactoring and collective ownership is made possible.
  • 34. 5.Testing (Test driven development): ➢Unit testing is done before coding. ➢After writing unit tests, pass for the development to continue. ➢The result is a system that is capable of accepting change.
  • 36. 6.Refactoring ➢Refactoring: “Improving the design of Existing code”. ➢Removal of Duplication. ➢Increases ”Cohesion” of the code and lowers the “coupling”. ➢XP practices support each other: They are stronger together than separately.
  • 37. Advantages: ➢Increases the developer knowledge of the system. ➢Helps developer to improve the whole product proactively.
  • 38. 7.PAIR PROGRAMMING ➢ All code is written by two programmers sitting at one machine. ➢Pairing is dynamic. ➢The driver has control of the keyboard and mouse and creates the implementation. ➢The navigator watches the driver’s implementation .
  • 39. ADVANTAGES ➢Pairs complete their tasks faster . ➢Pairs produce higher quality code . ➢Pairs are more focused towards their work . ➢Pairs feel more confident in their work and they can answer any questions related to their approach .
  • 40. 8.COLLECTIVE OWNERSHIP ➢In Extreme Programming, the entire team takes responsibility for the whole of the system. Not everyone knows every part equally well, although everyone knows something about every part. ➢Any engineer can modify any code to produce better quality. ➢The entire team takes responsibility of the whole system.
  • 41. ADVANTAGE Promotes the developers to take responsibility for the system as a whole rather than parts of the system.
  • 42. 9.CONTINUOUS INTEGRATION ➢The unit tests have to run 100% both before and after integration. ➢A simple way to do this is to have a machine dedicated to integration. ➢ Runs the tests until they pass (100% correct). ➢Continuous integration should happen more frequently (once or twice a day) .
  • 43. ADVANTAGES ➢Reduces the duration , which is otherwise lengthy . ➢Enables the short releases practice as the time required before release is minimal .
  • 44. 10.40 – HOUR WEEK ➢Tired developers make more mistakes . ➢If you mess with people’s personal lives , in long run the project will pay the consequences. ➢Highly skilled senior engineers always suffer of over time and high pressure . ADVANTAGE ➢Most developers lose effectiveness after 40 hours
  • 45. 11.On-site Customer ➢A live-user on the team who is available round the clock with the team. ➢A Product Manager is chosen as a representative for the customers. ➢Development Team should have continuous access to the customer representative. ➢Customer blends in with the development team to help and can also focus on other work too.
  • 46. ADVANTAGES •Customer representative prioritizes the functionalities to the team members. •On-site Customer helps in rapid feedback of the working system. •Customer makes sure that what is developed is what is actually asked for. •Scope decisions for developers are laid out by the Customer. •Customer answers questions regarding the development of working system.
  • 47. 12.Coding Standards •Development Team follows a standard for coding and adopts it throughout the project. •They emphasize on certain rules: - Communication through code. •Least amount of work possible. - “Once and only once” rule i.e., no inclusion of duplicate code. •Voluntary adoption by whole team. •Emphasizes more on code familiarity than specifics of standards.
  • 48. Advantages •Coding standards reduces refactoring of others code, as the code in the system looks familiar to all the team as though written by a single individual. •Coding Standards helps in shared understanding between the team as they follow same standards. •It gives the team a clear and unambiguous code. •It helps in error detection easily.
  • 49. Success in Industry Rapid development. Immediate responsiveness to the customer’s changing requirements. Focus on low defect rates. System returning constant and consistent value to the customer. High customer satisfaction. Reduced costs. Team cohesion and employee satisfaction. CONCLUSION