Extreme Programming

Publish in

Documents

12 views

Please download to get full document.

View again

of 26
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Share
Description
XP. Extreme Programming. Goals for Presentation. Explain the basics of software development methodologies Explain basic XP elements Show the structure of an XP project Give a few simple examples. DESIRED. Customer Satsification. Our Hopes. DELIVERED. DESIRED. Customer
Transcript
XPExtreme ProgrammingGoals for Presentation
  • Explain the basics of software development methodologies
  • Explain basic XP elements
  • Show the structure of an XP project
  • Give a few simple examples
  • DESIREDCustomerSatsificationOur HopesDELIVEREDDESIREDCustomerSatsificationOur RealityDELIVEREDCommon BreakdownsProblem: We just had this great idea. Forget what we told you last time. . . Problem: Six months of meetings and we have nothing to show for it…Problem: When we went to install this, we found out this will need to be done in Perl. Is that a problem?Problem: This isn’t what I wanted….Software Methodologies Formally Address…
  • Requirement Analysis – Specifying what it needs to do
  • System Design – Specifying how it will do it
  • Implementation Techniques - Specifying when it will do it
  • Deployment strategies – Specifying where it will do it
  • … Providing techniques to accomplish each.DESIREDMaking this connection is requirement analysis. It is where most projects fail. It is the hardest job for most programmers. Methods for this are critical!THE QuestionFor software developersHow little can we do and still build great software?From XP Agile UniverseExtreme Programming
  • Evolutionary – Assumes customers will change their minds.
  • Light-weight – Minimizes excessive documentation
  • Fast – Produces tested software in 1 to 2 week cycles
  • Rapid Assessment - Customers are activity involved in all phases.
  • Hence, the term AgileFrom the web site http://www.extremeprogramming.org/ It is an excellent resource and I strongly recommend reviewing it.XP Element – User Story
  • They are a one to three sentence description of how the customer envisions using the system.
  • They are written by the customer.
  • They are written on 3” x 5” card.
  • The programmer assigns a time estimate to it in terms of ideal programmer weeks.
  • They are written in the language of the customer and not in programmer techno-jargon.
  • Note that no lengthy requirement document is produced.XP Element – User StorySome pages trigger the login mechanism and some don’t.The list of pages that do/don’t is dynamic.And the mechanism is triggered once per session.One dayTaken from Extreme Programming in PracticeBy Newkirk and MartinExampleXP Element – Acceptance Test
  • The customer must supply an acceptance test for each user story.
  • It is detailed scenario that will determine whether the user story is operational.
  • The customer is responsible for verifying accuracy.
  • All acceptance tests are run whenever the system is changed in any way. Hence they should be automated.
  • XP Element – Acceptance TestAutomated testing is facilitated through unit test software.Many packages to do this are on sourceforge.A nice summary is found at http://c2.com/cgi/wiki?TestingFrameworkExampleXP Element – Spike
  • A small, simple program written to resolve uncertainty.
  • Normally done to improve an time estimated associated with a user story.
  • Expect to throw the effort away.
  • Try not to spend much time doing it
  • User Story SummaryCustomerProgrammerWrites StoryProvides EstimateSpikeSpecifies AcceptanceTestVerifies AcceptanceTest XP Element - Velocity
  • The velocity of a set of user stories is the sum of the estimates, which is given in terms of ideal programmer weeks.
  • The velocity of an individual is the number of ideal days per real days. (For example, velocity = ½ means it takes two real days to do an ideal day.)
  • Project Structure
  • Each Project is subdivided into a series of Releases. Typically a release is of 1 to 3 months.
  • Each release is sub-divided into Iterations. Each iteration is 1 to 3 weeks.
  • Velocityis held constant.
  • XP Element – Release & IterationCustomerProgrammerDetermines User StoryPrioritiesDetermines Release DurationLimits number of user storiesDeterminesvelocitySelects user storiesWithin the constraintXP Element – Release & IterationIteration duration: 1 real weekRelease duration: 3 iterations or 3 real weeksIndividual velocity: 1/3 ideal days per real dayPair velocity: 2/3 ideal/real 15 real x 2/3 ideal/real = 10 ideal days allowed for the release roughly 3 ideal days for each iterationAlways work in pairsNo overtimeAllowed!ExampleXP Element - Task
  • The user stories selected for an iteration are broken down into programming tasks.
  • These tasks are written on index cards like user stories.
  • Tasks are written by programmers in the language of programmers.
  • Programmers are allowed to select their own tasks.
  • A time estimate in ideal days is assigned to each task by the programmer who selected it.
  • XP Element – Task Registration Servlet TaskPull data from HTML input.If e-mail present in database go to “forgot password” screen.Else Generate password. Insert user into database. E-mail password to e-mail then go to login screen.Jim 4 hoursTaken from Extreme Programming in PracticeBy Newkirk and MartinExampleXP Element –Iteration & TaskThere are two time estimates for an iteration: user story view & task viewCustomerProgrammerDetermines User StoryFor iterationDetermines Programming TasksEstimates iteration velocityEstimates time on taskMoves user stories toNext iteration, if neededWriting the Code
  • Unit tests are written first.
  • All programming is done in pairs. Two people work on a shared computer.
  • Only one pair integrates at a time.
  • No overtime!
  • Testing the code
  • All code must have unit tests based on the acceptance tests.
  • All code must pass unit tests before it can be released.
  • Errors lead to new unit tests.
  • Acceptance test scores are published.
  • From the web site http://www.extremeprogramming.org/ It is an excellent resource and I strongly recommend reviewing it.
    Related Search
    We Need Your Support
    Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

    Thanks to everyone for your continued support.

    No, Thanks