Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
EXTREME PROGRAMMING
EXTREME PROGRAMMING
 is a software development methodology which is intended
to improve software quality and responsiveness to changing
customer requirements.
 XP is a lightweight, efficient, low-risk, flexible, predictable,
scientific, and fun way to develop software.
 is one of the Agile software development methodologies. It
provides values and principles to guide the team behavior.
History
 Extreme programming was created by Kent Beck during his
work on the Chrysler Comprehensive Compensation
System (C3) payroll project.[5] Beck became the C3 project
leader in March 1996 and began to refine the development
methodology used in the project and wrote a book on the
methodology (in October 1999, Extreme Programming
Explained was published)
XP Variables
 Cost
-The amount of money to be spent. The resources (how many
developers, equipment etc.) available for the project are directly
related to this variable.
 Time
-Determines when the system (release) should be done.
 Quality
-The correctness of the system (as defined by the customer) and
how well tested it will be.
 Scope
-Describes what and how much will be done (functionality).
Change-driven process
 A risk is some “variable” that means a danger to the success of the project.
Typical risks are for instance
• Requirements change.
-The users needs change
-The problem changes
-The market changes
-The requirements are imprecise or not fully understood
 XP explicitly deals with the first risk: “Embrace Change”.
XP Roles
 Developer (also called Programmer by some teams)
- developer should know how to program.
 Customer
- who should know what to program
 tracker
- The job of the tracker is to gather whatever metrics are being tracked for the
project – at least the Load Factor and the Functional Test scores.
 Coach
-is the responsibility of everyone in the team
 Tester
-is really focused on the customer to help write test and runs them.
 Consultant
- is to provide knowledge.
Values of XP
 COMMUNICATION
- is one of the key factors necessary for the success of
software projects
 SIMPLICITY
- strives for simple system
 FEEDBACK
- feedback-driven process
 COURAGE
-have a confidence to work quickly and redevelop as soon
and as often as necessary.
12 Practices of XP
 The Planning Game
-The XP planning process. Business gets to specify what the system needs to do.
Development specifies how much each feature costs and what budget is available per
day/week/month.
 Small Releases
-Every release should be as small as possible, containing the most valuable business
requirements.
 Metaphor
- is a simple evocative description of how the program works.
 Simple Design
-. The system should be designed as simply as possible at any given moment
 Testing
-Programmers develop software by writing tests first, and then code that fulfills the
requirements reflected in the tests. Customers provide acceptance tests that enable them to
be certain that the features they need are provided.
 Refactoring
- XP Team Refactor out any duplicate code generated in a coding session
 Pair Programming
-All production code is written by two programmers sitting at one machine, with one
keyboard and one mouse.
 Collective Ownership
- the entire team takes responsibility for the whole of the system
 Continuous Integration
- Code is integrated and tested many times a day, one set of changes at a time.
 40-Hour week
- it emphasizes on the limited number of hours of work per week for every team
members,
 On-site customer
- Development team has continuous access to the customer who will actually be using
the system.
 Coding Standards
-Developers write all code in accordance with the rules emphasizing-
Communication through the code.
The least amount of work possible.
Consistent with the “once and only once” rule (no duplicate code).
Voluntary adoption by the whole team.
5 Principle of XP
 Rapid Feedback
- is to get the feedback, understand it, and put the learning back into the
system as quickly as possible.
 Assume simplicity
-to treat every problem as if it can be solved with simplicity.
 Incremental change
-solve problems with a series of small changes
 Embracing Change
-The best strategy is the one that preserves the most options while
actually solving your most pressing problem.
 Quality work
-emphasize test-first programming
Extreme Programming
XP Rules
 Planning
- is also known as XP Planning Game
 Designing
- The rule is ”always use the simplest possible design that gets the job
done”.
 Coding
-Coding standards are to be followed.
 Testing
-All codes must pass all unit tests before it is released.
Advantages and Disadvantages of XP
Resources
 www.extreme_programming_tutorialpdf.com
 www.ExtremeProgramming(XP)Article.com
 www.ExtremeProgrammingpdf.com
 www.XP_Overviewpdf.com
Extreme Programming
Extreme Programming

More Related Content

Extreme Programming

  • 2. EXTREME PROGRAMMING  is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements.  XP is a lightweight, efficient, low-risk, flexible, predictable, scientific, and fun way to develop software.  is one of the Agile software development methodologies. It provides values and principles to guide the team behavior.
  • 3. History  Extreme programming was created by Kent Beck during his work on the Chrysler Comprehensive Compensation System (C3) payroll project.[5] Beck became the C3 project leader in March 1996 and began to refine the development methodology used in the project and wrote a book on the methodology (in October 1999, Extreme Programming Explained was published)
  • 4. XP Variables  Cost -The amount of money to be spent. The resources (how many developers, equipment etc.) available for the project are directly related to this variable.  Time -Determines when the system (release) should be done.  Quality -The correctness of the system (as defined by the customer) and how well tested it will be.  Scope -Describes what and how much will be done (functionality).
  • 5. Change-driven process  A risk is some “variable” that means a danger to the success of the project. Typical risks are for instance • Requirements change. -The users needs change -The problem changes -The market changes -The requirements are imprecise or not fully understood  XP explicitly deals with the first risk: “Embrace Change”.
  • 6. XP Roles  Developer (also called Programmer by some teams) - developer should know how to program.  Customer - who should know what to program  tracker - The job of the tracker is to gather whatever metrics are being tracked for the project – at least the Load Factor and the Functional Test scores.  Coach -is the responsibility of everyone in the team  Tester -is really focused on the customer to help write test and runs them.  Consultant - is to provide knowledge.
  • 7. Values of XP  COMMUNICATION - is one of the key factors necessary for the success of software projects  SIMPLICITY - strives for simple system  FEEDBACK - feedback-driven process  COURAGE -have a confidence to work quickly and redevelop as soon and as often as necessary.
  • 8. 12 Practices of XP  The Planning Game -The XP planning process. Business gets to specify what the system needs to do. Development specifies how much each feature costs and what budget is available per day/week/month.  Small Releases -Every release should be as small as possible, containing the most valuable business requirements.  Metaphor - is a simple evocative description of how the program works.  Simple Design -. The system should be designed as simply as possible at any given moment  Testing -Programmers develop software by writing tests first, and then code that fulfills the requirements reflected in the tests. Customers provide acceptance tests that enable them to be certain that the features they need are provided.  Refactoring - XP Team Refactor out any duplicate code generated in a coding session
  • 9.  Pair Programming -All production code is written by two programmers sitting at one machine, with one keyboard and one mouse.  Collective Ownership - the entire team takes responsibility for the whole of the system  Continuous Integration - Code is integrated and tested many times a day, one set of changes at a time.  40-Hour week - it emphasizes on the limited number of hours of work per week for every team members,  On-site customer - Development team has continuous access to the customer who will actually be using the system.  Coding Standards -Developers write all code in accordance with the rules emphasizing- Communication through the code. The least amount of work possible. Consistent with the “once and only once” rule (no duplicate code). Voluntary adoption by the whole team.
  • 10. 5 Principle of XP  Rapid Feedback - is to get the feedback, understand it, and put the learning back into the system as quickly as possible.  Assume simplicity -to treat every problem as if it can be solved with simplicity.  Incremental change -solve problems with a series of small changes  Embracing Change -The best strategy is the one that preserves the most options while actually solving your most pressing problem.  Quality work -emphasize test-first programming
  • 12. XP Rules  Planning - is also known as XP Planning Game  Designing - The rule is ”always use the simplest possible design that gets the job done”.  Coding -Coding standards are to be followed.  Testing -All codes must pass all unit tests before it is released.