SlideShare une entreprise Scribd logo
1  sur  24
Twelve practices of XP

•   1. Pair programming
•   2. Refactoring
•   3. Simple design
•   4. Collective code ownership
•   5. Continuous integration
•   6. On-site customer
•   7. Small releases
•   8. 40-hour week
•   9. Coding standard
•   10. System metaphor (Imagine)
•   11. The planning game
•   12. Testing
1. Pair programming

 • In XP, pairs of developers write all production code. This
   approach may sound inefficient.
 • Pair programming provides many benefits:
 • All design decisions involve at least two brains.
 • At least two people are familiar with every part of the
   system.
 • There is less chance of both people neglecting tests.
 • Changing pairs spreads knowledge throughout the team.
 • Code is always being reviewed by at least one more person.
 • Research also is showing that programming in pairs is
   actually more efficient than programming alone.
Pair Programming

 • All production code written with 2
   programmers at 1 machine
    – One tactical, one strategic

 • Pairing should be dynamic
    – Members in pair switch roles every 30-60
      minutes

    – Change pairs each task

 • Experiments showing effectivenes
University of Utah Experiment: Pairs spent 15% more
time on the program than individuals
University of Utah Experiment: Code written by pairs
passed more test cases than code written by
individuals
University of Utah Experiment: Pairs consistently
implemented the same functionality produced by
individuals in fewer lines of code
University of Utah Experiment: Learning how to
program in an environment where there are rapidly
tangible results is fun and allows one to learn faster
2. Refactoring

• Refactoring is the technique of improving code without changing
  functionality.

• Refactoring lets you incorporate that learning into your code
  without breaking the tests. That means it will survive longer.
3. Simple design
 • XP says design should not be done all at once. We always try to use the
   simplest design that could possibly work at any point, changing it as we
   go to reflect emerging reality.
 • What is the simplest design that could possibly work?
 • Runs all the tests
 • Contains no duplicate code
 • States the programmers' intent for all code clearly
 • Contains the fewest possible classes and methods
 • Don't include extra features that aren't being used. We call such things
   YAGNI, which stands for "You Aren't Going to Need It."
4. Collective code ownership

• Any person on the team should have the authority to make
  changes to the code to improve it.
• Everybody owns all the code, meaning everybody is responsible
  for it.
• Saying that everybody owns all the code isn't the same as saying
  that nobody owns it.
• XP says, "You break it, you fix it." We have unit tests that must
  run before and after each integration. If you break something,
  it's your responsibility to fix it.
5. Continuous integration
 • Frequent code integration helps you to avoid integration
   nightmares.
 • XP teams integrate their code several times a day, after they
   get all the unit tests for the system to run.
 • Traditional approaches tend to work like this: code a
   lot, do integration, then spend a significant amount of
   time fixing the problems.
 • When you integrate frequently, the cause of failure for any
   particular integration is more obvious.
 • Fixing is easier, takes less time, and keeps the team moving
   at maximum speed.
6. On-site customer

• An XP team needs to have a customer available on site to clarify
  stories and to make critical business decisions.
• Developers aren't allowed to do that alone. It eliminates wait for
  decisions.
• The idea is that communicating face to face minimizes the
  chances of misunderstanding, unlike writing all the requirements
  down in a static document.
• We have found that having the customer on site is the best
  possible situation. Atleast the customer must be available
  whenever needed to answer questions and to provide.
User Story #1


                                            Story 1

        A person registers with the agency by
           providing personal information,
        information,about the kind of person
         they are seeking, an alias to conceal
         Their true identity, and confidential
                    contact details.
7. Small releases

• Releases should be as small as possible while still delivering
  enough business value to make them worthwhile.
• This provides value to the customer as early as possible.
• Small releases also will provide concrete feedback to developers
  on what meets customer needs and what doesn't. The team then
  can include these lessons in its planning for the next release.
8. 40-hour week

• Kent Beck says that he wants to be "...fresh and eager every
  morning, and tired and satisfied every night."
• Tired developers make more mistakes, which will slow you down
  more in the long run than keeping a "normal" schedule will.
• Even if developers could function well for longer periods.
A Day In XP
9. Coding standard

• Without coding standards, it is harder to refactor code, harder to
  switch pairs as often as you should, and harder to go fast.
• The goal should be that no one on the team can recognize who
  wrote which piece of code.
• Make sure your code communicates clearly.
• Don't spend too much time. Create the simplest standard that
  could possibly work.
10. System metaphor (Imagine)

• A sort of map that lets developers see where new pieces will fit.
• The metaphor gives the team a consistent picture they can use to
  describe the way the existing system works, where new parts fit,
  and what form they should take.
• It is important to remember that having everyone understand
  how the system fits together.
11. The planning game
• The main idea behind this practice is to make a rough
  plan quickly and refine it as things become clearer.
The development team determines:
• Estimates of how long it will take to develop a
  module
• Cost implications of using various technology options
• Team organization
• The "risk" of each module
• Order of module development within an iteration
  (doing risky items first can ease risk)
11. The planning game

The customer determines:
• Scope
• Release dates
• Priority (which features get developed first, based on
  business value)
• Planning happens often. This provides frequent
  opportunity for either the customer or the developers to
  adjust the plan as they learn new things.
12. Testing
 Unit testing
 • Developers write the unit tests as they write code.
 • Unit tests tell developers whether the system "works" at any
   point in time.
 • Developers write unit tests for every method that could
   possibly break, before they write the code for those
   methods. Then they write just enough code to get the test to
   pass.
 • Unit tests give developers confidence that their code works.
   It leaves a trail for other developers to understand the
   original developer's intent.
 • Unit tests also give developers courage to refactor the code,
   because a test failure tells the developer immediately if
   something's broken.
 • Unit tests should be automated and give a clear
   pass/fail result.
Testing

Acceptance testing
• The customer writes acceptance tests after they define module.
• Acceptance tests tell the team whether the system does what
  users want it to do.
• Customers are responsible for making sure each story has
  acceptance tests to validate it. The customer can write the tests
  himself or recruit other members of his organization to write
  them, or combine the two approaches.
• Acceptance tests should ensure developers are not breaking any
  existing features as they implement new ones.
• Customers will need some help from the development team to
  write acceptance tests.
Advantages/Disadvantages
                        ADVANTAGES
• Customer focus increase the chance that the software
  produced will actually meet the needs of the users
• The focus on small, incremental release decreases the risk
  on your project:
   – by showing that your approach works and
   – by putting functionality in the hands of your users, enabling them to
     provide timely feedback regarding your work.
• Continuous testing and integration helps to increase the
  quality of your work
• XP is attractive to programmers who normally are unwilling
  to adopt a software process, enabling your organization to
  manage its software efforts better.
Advantages/Disadvantages
                          DISADVANTAGES
• XP is geared toward a single project, developed and
  maintained by a single team.
• XP is particularly vulnerable to "bad apple" developers who:
   – don't work well with others
   – who think they know it all, and/or
   – who are not willing to share their "superior” code
• XP will not work in an environment where a customer or
  manager insists on a complete specification or design before
  they begin programming.
• XP will not work in an environment where programmers are
  separated geographically.
• XP has not been proven to work with systems that have
  scalability issues (new applications must integrate into existing
  systems).

Contenu connexe

Tendances

Introduction To Extreme Programming
Introduction To Extreme ProgrammingIntroduction To Extreme Programming
Introduction To Extreme ProgrammingJoe Drumgoole
 
Agile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAniruddha Chakrabarti
 
Extreme programming - a quick and agile overview !
Extreme programming - a quick and agile overview !Extreme programming - a quick and agile overview !
Extreme programming - a quick and agile overview !Vinit Kumar Singh
 
eXtreme programming (XP) - An Overview
eXtreme programming (XP) - An OvervieweXtreme programming (XP) - An Overview
eXtreme programming (XP) - An OverviewGurtej Pal Singh
 
extreme Programming
extreme Programmingextreme Programming
extreme ProgrammingBilal Shah
 
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
 
Audrys Kažukauskas - Introduction into Extreme Programming
Audrys Kažukauskas - Introduction into Extreme ProgrammingAudrys Kažukauskas - Introduction into Extreme Programming
Audrys Kažukauskas - Introduction into Extreme ProgrammingAgile Lietuva
 
Xp exterme-programming-model
Xp exterme-programming-modelXp exterme-programming-model
Xp exterme-programming-modelAli MasudianPour
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationMuaazZubairi
 
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
 
Introduction to Extreme Programming
Introduction to Extreme ProgrammingIntroduction to Extreme Programming
Introduction to Extreme ProgrammingNaresh Jain
 
Extreme Programming (XP)
Extreme Programming (XP)Extreme Programming (XP)
Extreme Programming (XP)dcsunu
 
Pair Programming Presentation
Pair Programming PresentationPair Programming Presentation
Pair Programming PresentationThoughtWorks
 
Agile Talk 30 Jul 1o2
Agile Talk 30 Jul 1o2Agile Talk 30 Jul 1o2
Agile Talk 30 Jul 1o2Akhil Kumar
 

Tendances (20)

Introduction To Extreme Programming
Introduction To Extreme ProgrammingIntroduction To Extreme Programming
Introduction To Extreme Programming
 
Agile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme Programming
 
Extreme programming - a quick and agile overview !
Extreme programming - a quick and agile overview !Extreme programming - a quick and agile overview !
Extreme programming - a quick and agile overview !
 
eXtreme programming (XP) - An Overview
eXtreme programming (XP) - An OvervieweXtreme programming (XP) - An Overview
eXtreme programming (XP) - An Overview
 
extreme Programming
extreme Programmingextreme Programming
extreme Programming
 
ABC of Agile (Scrum & Extreme Programming)
ABC of Agile (Scrum & Extreme Programming)ABC of Agile (Scrum & Extreme Programming)
ABC of Agile (Scrum & Extreme Programming)
 
Audrys Kažukauskas - Introduction into Extreme Programming
Audrys Kažukauskas - Introduction into Extreme ProgrammingAudrys Kažukauskas - Introduction into Extreme Programming
Audrys Kažukauskas - Introduction into Extreme Programming
 
Xp exterme-programming-model
Xp exterme-programming-modelXp exterme-programming-model
Xp exterme-programming-model
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentation
 
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
 
Introduction to Extreme Programming
Introduction to Extreme ProgrammingIntroduction to Extreme Programming
Introduction to Extreme Programming
 
Extreme Programming (XP)
Extreme Programming (XP)Extreme Programming (XP)
Extreme Programming (XP)
 
Extreme Programming ppt
Extreme Programming pptExtreme Programming ppt
Extreme Programming ppt
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
extreme programming
extreme programmingextreme programming
extreme programming
 
Xtreme Programming
Xtreme ProgrammingXtreme Programming
Xtreme Programming
 
Xp Slideshow
Xp SlideshowXp Slideshow
Xp Slideshow
 
Pair Programming Presentation
Pair Programming PresentationPair Programming Presentation
Pair Programming Presentation
 
Agile Talk 30 Jul 1o2
Agile Talk 30 Jul 1o2Agile Talk 30 Jul 1o2
Agile Talk 30 Jul 1o2
 

En vedette

Spikes nad SCRUM_Se lect6 btech
Spikes nad SCRUM_Se lect6 btechSpikes nad SCRUM_Se lect6 btech
Spikes nad SCRUM_Se lect6 btechIIITA
 
Butler county commissioners office and fiber 10 a1 management improvements in...
Butler county commissioners office and fiber 10 a1 management improvements in...Butler county commissioners office and fiber 10 a1 management improvements in...
Butler county commissioners office and fiber 10 a1 management improvements in...SBC LLC
 
Bcrf 2014 one
Bcrf 2014 oneBcrf 2014 one
Bcrf 2014 oneSBC LLC
 
Center for Innovation and Entrepreneurship at UNCW
Center for Innovation and Entrepreneurship at UNCWCenter for Innovation and Entrepreneurship at UNCW
Center for Innovation and Entrepreneurship at UNCWSBC LLC
 
Se lect12 btech
Se lect12 btechSe lect12 btech
Se lect12 btechIIITA
 
Middletown and butler county port authority economic development strategy 201...
Middletown and butler county port authority economic development strategy 201...Middletown and butler county port authority economic development strategy 201...
Middletown and butler county port authority economic development strategy 201...SBC LLC
 
Butler county port authority 2011
Butler county port authority 2011Butler county port authority 2011
Butler county port authority 2011SBC LLC
 
Local government innovation fund
Local government innovation fundLocal government innovation fund
Local government innovation fundSBC LLC
 
JAVA GUI
JAVA GUIJAVA GUI
JAVA GUIIIITA
 
Software Evolution_Se lect3 btech
Software Evolution_Se lect3 btechSoftware Evolution_Se lect3 btech
Software Evolution_Se lect3 btechIIITA
 
Port authority financing for the future one
Port authority financing for the future onePort authority financing for the future one
Port authority financing for the future oneSBC LLC
 
Software Requirements_Se lect8 btech
Software Requirements_Se lect8 btechSoftware Requirements_Se lect8 btech
Software Requirements_Se lect8 btechIIITA
 
Mse august13 (2/3)
Mse august13 (2/3)Mse august13 (2/3)
Mse august13 (2/3)IIITA
 
5 ways to improve your presentation
5 ways to improve your presentation5 ways to improve your presentation
5 ways to improve your presentationSBC LLC
 
Se lect11 btech
Se lect11 btechSe lect11 btech
Se lect11 btechIIITA
 
Mountain and Coastal Pines
Mountain and Coastal PinesMountain and Coastal Pines
Mountain and Coastal PinesSBC LLC
 
Improve Your Presentation Skills and Techniques 2016
Improve Your Presentation Skills and Techniques 2016Improve Your Presentation Skills and Techniques 2016
Improve Your Presentation Skills and Techniques 2016SBC LLC
 

En vedette (18)

Spikes nad SCRUM_Se lect6 btech
Spikes nad SCRUM_Se lect6 btechSpikes nad SCRUM_Se lect6 btech
Spikes nad SCRUM_Se lect6 btech
 
Butler county commissioners office and fiber 10 a1 management improvements in...
Butler county commissioners office and fiber 10 a1 management improvements in...Butler county commissioners office and fiber 10 a1 management improvements in...
Butler county commissioners office and fiber 10 a1 management improvements in...
 
Images
ImagesImages
Images
 
Bcrf 2014 one
Bcrf 2014 oneBcrf 2014 one
Bcrf 2014 one
 
Center for Innovation and Entrepreneurship at UNCW
Center for Innovation and Entrepreneurship at UNCWCenter for Innovation and Entrepreneurship at UNCW
Center for Innovation and Entrepreneurship at UNCW
 
Se lect12 btech
Se lect12 btechSe lect12 btech
Se lect12 btech
 
Middletown and butler county port authority economic development strategy 201...
Middletown and butler county port authority economic development strategy 201...Middletown and butler county port authority economic development strategy 201...
Middletown and butler county port authority economic development strategy 201...
 
Butler county port authority 2011
Butler county port authority 2011Butler county port authority 2011
Butler county port authority 2011
 
Local government innovation fund
Local government innovation fundLocal government innovation fund
Local government innovation fund
 
JAVA GUI
JAVA GUIJAVA GUI
JAVA GUI
 
Software Evolution_Se lect3 btech
Software Evolution_Se lect3 btechSoftware Evolution_Se lect3 btech
Software Evolution_Se lect3 btech
 
Port authority financing for the future one
Port authority financing for the future onePort authority financing for the future one
Port authority financing for the future one
 
Software Requirements_Se lect8 btech
Software Requirements_Se lect8 btechSoftware Requirements_Se lect8 btech
Software Requirements_Se lect8 btech
 
Mse august13 (2/3)
Mse august13 (2/3)Mse august13 (2/3)
Mse august13 (2/3)
 
5 ways to improve your presentation
5 ways to improve your presentation5 ways to improve your presentation
5 ways to improve your presentation
 
Se lect11 btech
Se lect11 btechSe lect11 btech
Se lect11 btech
 
Mountain and Coastal Pines
Mountain and Coastal PinesMountain and Coastal Pines
Mountain and Coastal Pines
 
Improve Your Presentation Skills and Techniques 2016
Improve Your Presentation Skills and Techniques 2016Improve Your Presentation Skills and Techniques 2016
Improve Your Presentation Skills and Techniques 2016
 

Similaire à Twelve practices of XP_Se lect5 btech

Chap 3 - Agile - XP.ppt
Chap 3 - Agile - XP.pptChap 3 - Agile - XP.ppt
Chap 3 - Agile - XP.pptDurga Prasad
 
The Extreme Programming (XP) Model
The Extreme Programming (XP) ModelThe Extreme Programming (XP) Model
The Extreme Programming (XP) ModelDamian T. Gordon
 
Lecture3.se.pptx
Lecture3.se.pptxLecture3.se.pptx
Lecture3.se.pptxAmna Ch
 
Agile Values, Principles and Practices
Agile Values, Principles and PracticesAgile Values, Principles and Practices
Agile Values, Principles and Practicesjackcrews
 
Agile Development | Agile Process Models
Agile Development | Agile Process ModelsAgile Development | Agile Process Models
Agile Development | Agile Process ModelsAhsan Rahim
 
Agile_SDLC_Node.js@Paypal_ppt
Agile_SDLC_Node.js@Paypal_pptAgile_SDLC_Node.js@Paypal_ppt
Agile_SDLC_Node.js@Paypal_pptHitesh Kumar
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingUtkarsh Khare
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovSvetlin Nakov
 
Overview of Software Engineering Principles - SCPS311.pptx
Overview of Software Engineering Principles - SCPS311.pptxOverview of Software Engineering Principles - SCPS311.pptx
Overview of Software Engineering Principles - SCPS311.pptxBypassFrp
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software DevelopmentAhmet Bulut
 
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
 
Extreme Programming 1st.pdf
Extreme Programming 1st.pdfExtreme Programming 1st.pdf
Extreme Programming 1st.pdfBassam Kanber
 
agility_principles.ppt
agility_principles.pptagility_principles.ppt
agility_principles.pptAteeqaKokab1
 
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINALJun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINALAlex Tarra
 

Similaire à Twelve practices of XP_Se lect5 btech (20)

Chap 3 - Agile - XP.ppt
Chap 3 - Agile - XP.pptChap 3 - Agile - XP.ppt
Chap 3 - Agile - XP.ppt
 
What is xp
What is xpWhat is xp
What is xp
 
The Extreme Programming (XP) Model
The Extreme Programming (XP) ModelThe Extreme Programming (XP) Model
The Extreme Programming (XP) Model
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Extreme programming (xp)
Extreme programming (xp)Extreme programming (xp)
Extreme programming (xp)
 
Lecture3.se.pptx
Lecture3.se.pptxLecture3.se.pptx
Lecture3.se.pptx
 
Agile Values, Principles and Practices
Agile Values, Principles and PracticesAgile Values, Principles and Practices
Agile Values, Principles and Practices
 
Agile Development | Agile Process Models
Agile Development | Agile Process ModelsAgile Development | Agile Process Models
Agile Development | Agile Process Models
 
XP O.ppt
XP O.pptXP O.ppt
XP O.ppt
 
Agile_SDLC_Node.js@Paypal_ppt
Agile_SDLC_Node.js@Paypal_pptAgile_SDLC_Node.js@Paypal_ppt
Agile_SDLC_Node.js@Paypal_ppt
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
 
It's XP, Stupid
It's XP, StupidIt's XP, Stupid
It's XP, Stupid
 
Software testing
Software testingSoftware testing
Software testing
 
Overview of Software Engineering Principles - SCPS311.pptx
Overview of Software Engineering Principles - SCPS311.pptxOverview of Software Engineering Principles - SCPS311.pptx
Overview of Software Engineering Principles - SCPS311.pptx
 
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.
 
Extreme Programming 1st.pdf
Extreme Programming 1st.pdfExtreme Programming 1st.pdf
Extreme Programming 1st.pdf
 
agility_principles.ppt
agility_principles.pptagility_principles.ppt
agility_principles.ppt
 
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINALJun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
 

Dernier

Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management systemChristalin Nelson
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptxiammrhaywood
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4MiaBumagat1
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxAnupkumar Sharma
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxCarlos105
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designMIPLM
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...JhezDiaz1
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Celine George
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management SystemChristalin Nelson
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Celine George
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17Celine George
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxMaryGraceBautista27
 
Culture Uniformity or Diversity IN SOCIOLOGY.pptx
Culture Uniformity or Diversity IN SOCIOLOGY.pptxCulture Uniformity or Diversity IN SOCIOLOGY.pptx
Culture Uniformity or Diversity IN SOCIOLOGY.pptxPoojaSen20
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parentsnavabharathschool99
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Jisc
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxHumphrey A Beña
 

Dernier (20)

Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management system
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
 
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptxFINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-design
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17
 
Raw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptxRaw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptx
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management System
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptx
 
Culture Uniformity or Diversity IN SOCIOLOGY.pptx
Culture Uniformity or Diversity IN SOCIOLOGY.pptxCulture Uniformity or Diversity IN SOCIOLOGY.pptx
Culture Uniformity or Diversity IN SOCIOLOGY.pptx
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parents
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
 

Twelve practices of XP_Se lect5 btech

  • 1. Twelve practices of XP • 1. Pair programming • 2. Refactoring • 3. Simple design • 4. Collective code ownership • 5. Continuous integration • 6. On-site customer • 7. Small releases • 8. 40-hour week • 9. Coding standard • 10. System metaphor (Imagine) • 11. The planning game • 12. Testing
  • 2. 1. Pair programming • In XP, pairs of developers write all production code. This approach may sound inefficient. • Pair programming provides many benefits: • All design decisions involve at least two brains. • At least two people are familiar with every part of the system. • There is less chance of both people neglecting tests. • Changing pairs spreads knowledge throughout the team. • Code is always being reviewed by at least one more person. • Research also is showing that programming in pairs is actually more efficient than programming alone.
  • 3. Pair Programming • All production code written with 2 programmers at 1 machine – One tactical, one strategic • Pairing should be dynamic – Members in pair switch roles every 30-60 minutes – Change pairs each task • Experiments showing effectivenes
  • 4. University of Utah Experiment: Pairs spent 15% more time on the program than individuals
  • 5. University of Utah Experiment: Code written by pairs passed more test cases than code written by individuals
  • 6. University of Utah Experiment: Pairs consistently implemented the same functionality produced by individuals in fewer lines of code
  • 7. University of Utah Experiment: Learning how to program in an environment where there are rapidly tangible results is fun and allows one to learn faster
  • 8. 2. Refactoring • Refactoring is the technique of improving code without changing functionality. • Refactoring lets you incorporate that learning into your code without breaking the tests. That means it will survive longer.
  • 9. 3. Simple design • XP says design should not be done all at once. We always try to use the simplest design that could possibly work at any point, changing it as we go to reflect emerging reality. • What is the simplest design that could possibly work? • Runs all the tests • Contains no duplicate code • States the programmers' intent for all code clearly • Contains the fewest possible classes and methods • Don't include extra features that aren't being used. We call such things YAGNI, which stands for "You Aren't Going to Need It."
  • 10. 4. Collective code ownership • Any person on the team should have the authority to make changes to the code to improve it. • Everybody owns all the code, meaning everybody is responsible for it. • Saying that everybody owns all the code isn't the same as saying that nobody owns it. • XP says, "You break it, you fix it." We have unit tests that must run before and after each integration. If you break something, it's your responsibility to fix it.
  • 11. 5. Continuous integration • Frequent code integration helps you to avoid integration nightmares. • XP teams integrate their code several times a day, after they get all the unit tests for the system to run. • Traditional approaches tend to work like this: code a lot, do integration, then spend a significant amount of time fixing the problems. • When you integrate frequently, the cause of failure for any particular integration is more obvious. • Fixing is easier, takes less time, and keeps the team moving at maximum speed.
  • 12. 6. On-site customer • An XP team needs to have a customer available on site to clarify stories and to make critical business decisions. • Developers aren't allowed to do that alone. It eliminates wait for decisions. • The idea is that communicating face to face minimizes the chances of misunderstanding, unlike writing all the requirements down in a static document. • We have found that having the customer on site is the best possible situation. Atleast the customer must be available whenever needed to answer questions and to provide.
  • 13. User Story #1 Story 1 A person registers with the agency by providing personal information, information,about the kind of person they are seeking, an alias to conceal Their true identity, and confidential contact details.
  • 14. 7. Small releases • Releases should be as small as possible while still delivering enough business value to make them worthwhile. • This provides value to the customer as early as possible. • Small releases also will provide concrete feedback to developers on what meets customer needs and what doesn't. The team then can include these lessons in its planning for the next release.
  • 15. 8. 40-hour week • Kent Beck says that he wants to be "...fresh and eager every morning, and tired and satisfied every night." • Tired developers make more mistakes, which will slow you down more in the long run than keeping a "normal" schedule will. • Even if developers could function well for longer periods.
  • 16. A Day In XP
  • 17. 9. Coding standard • Without coding standards, it is harder to refactor code, harder to switch pairs as often as you should, and harder to go fast. • The goal should be that no one on the team can recognize who wrote which piece of code. • Make sure your code communicates clearly. • Don't spend too much time. Create the simplest standard that could possibly work.
  • 18. 10. System metaphor (Imagine) • A sort of map that lets developers see where new pieces will fit. • The metaphor gives the team a consistent picture they can use to describe the way the existing system works, where new parts fit, and what form they should take. • It is important to remember that having everyone understand how the system fits together.
  • 19. 11. The planning game • The main idea behind this practice is to make a rough plan quickly and refine it as things become clearer. The development team determines: • Estimates of how long it will take to develop a module • Cost implications of using various technology options • Team organization • The "risk" of each module • Order of module development within an iteration (doing risky items first can ease risk)
  • 20. 11. The planning game The customer determines: • Scope • Release dates • Priority (which features get developed first, based on business value) • Planning happens often. This provides frequent opportunity for either the customer or the developers to adjust the plan as they learn new things.
  • 21. 12. Testing Unit testing • Developers write the unit tests as they write code. • Unit tests tell developers whether the system "works" at any point in time. • Developers write unit tests for every method that could possibly break, before they write the code for those methods. Then they write just enough code to get the test to pass. • Unit tests give developers confidence that their code works. It leaves a trail for other developers to understand the original developer's intent. • Unit tests also give developers courage to refactor the code, because a test failure tells the developer immediately if something's broken. • Unit tests should be automated and give a clear pass/fail result.
  • 22. Testing Acceptance testing • The customer writes acceptance tests after they define module. • Acceptance tests tell the team whether the system does what users want it to do. • Customers are responsible for making sure each story has acceptance tests to validate it. The customer can write the tests himself or recruit other members of his organization to write them, or combine the two approaches. • Acceptance tests should ensure developers are not breaking any existing features as they implement new ones. • Customers will need some help from the development team to write acceptance tests.
  • 23. Advantages/Disadvantages ADVANTAGES • Customer focus increase the chance that the software produced will actually meet the needs of the users • The focus on small, incremental release decreases the risk on your project: – by showing that your approach works and – by putting functionality in the hands of your users, enabling them to provide timely feedback regarding your work. • Continuous testing and integration helps to increase the quality of your work • XP is attractive to programmers who normally are unwilling to adopt a software process, enabling your organization to manage its software efforts better.
  • 24. Advantages/Disadvantages DISADVANTAGES • XP is geared toward a single project, developed and maintained by a single team. • XP is particularly vulnerable to "bad apple" developers who: – don't work well with others – who think they know it all, and/or – who are not willing to share their "superior” code • XP will not work in an environment where a customer or manager insists on a complete specification or design before they begin programming. • XP will not work in an environment where programmers are separated geographically. • XP has not been proven to work with systems that have scalability issues (new applications must integrate into existing systems).