extreme programming n.
Skip this Video
Loading SlideShow in 5 Seconds..
Extreme Programming PowerPoint Presentation
Download Presentation
Extreme Programming

Loading in 2 Seconds...

play fullscreen
1 / 15

Extreme Programming - PowerPoint PPT Presentation

  • Uploaded on

Extreme Programming. Based on http://www.jera.com/techinfo/xpfaq.html and http://www.extremeprogramming.org/. What is XP?.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'Extreme Programming' - lucien

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
extreme programming

Extreme Programming

Based on

http://www.jera.com/techinfo/xpfaq.html and


what is xp
What is XP?
  • Extreme Programming (or XP) is a set of values, principles and practices for rapidly developing high-quality software that provides the highest value for the customer in the fastest, simplest way possible.
  • Fits into the “Agile” school of programming – lightweight methodologies
  • Developed by Kent Beck
  • Has been around about 6 years
what is simplest
What is “Simplest?”
  • The system (code plus tests) clearly communicates everything that needs to be communicated at the current instant in its development. This means that it runs every existing test, and that the source code clearly reveals the intention behind it to anyone who reads it.
simplest continued
Simplest, continued
  • The system contains no duplicate code, unless that would violate (1).
  • The system contains the minimum number of classes possible without violating (1) or (2).
  • The system contains the minimum number of methods possible, consistent with (1) (2) and (3).
core principles
Core Principles
  • Planning:
    • Customer describes features in User Stories – gives name, describes feature
    • Development estimates effort and how much of that can be done in one time period (iteration)
    • Customer prioritizes and decides how often and when each release will occur
core principles1
Core Principles
  • Small releases
    • Start with smallest, useful set of features
    • Release early and often
  • System metaphor
    • Provides naming scheme
  • Simple design
core principles2
Core Principles
  • Continuous testing
    • Add a feature, add a test
      • Unit tests – specified by developer
      • Acceptance tests – specified by customer
    • Run test suite again after each test is added
  • Refactoring
    • Get rid of duplicate code
core principles3
Core Principles
  • Pair Programming
    • All code is written with two programmers at a machine
    • Promotes review while writing
  • Collective Code Ownership
    • Everyone is able to work on all parts
  • Continuous Integration
    • Integrate daily and retest
core principles4
Core Principles
  • 40-Hour Work Week
  • On-site Customer
  • Coding Standards
  • Each lasts 1-3 weeks
  • Begins with planning meeting with customer
    • Determine tasks to be done in each iteration
    • Each developer signs up for what they will do and estimate effort
  • Programming/testing
    • Write tests first
    • Pair programming on all production code
  • Delivery
    • At end of iteration, customer is given a working, bug-free system
    • Final delivery is just the product of the last iteration
  • Overview - http://www.extremeprogramming.org/map/project.html
  • Project velocity
    • Measure of how much work is being done
    • Sum up estimates of user stories finished in iteration
    • In next iteration, customer can choose user stories/features equal to work done in previous
    • Increases if developers finish early and ask for more tasks
  • Spike Solution
    • Simple program to explore a potential solution for a narrow problem
    • Will probably be thrown away
    • “Write the smallest possible code that could be said to perform a function independent of existing mechanism. “

-- Ward Cunningham

areas of benefit from pair programming
Areas of Benefit from Pair Programming
  • Economics
  • Programmer Enjoyment
  • Design quality
  • Continuous Reviews
  • Problem solving
  • Learning
  • Team Building and Communication
  • Staff and Project Management
when is xp appropriate
When is XP Appropriate?
  • Projects where requirements change a lot
  • High-risk projects
  • Projects requiring 2-12 programmers
  • Projects where customers can be involved with team
  • Projects that can be tested